6
6
from laser import Laser
7
7
8
8
class Game ():
9
- def __init__ (self , screen_width , screen_height ):
10
- self .screen_width = screen_width
11
- self .screen_height = screen_height
12
- self .spaceship = pygame .sprite .GroupSingle ()
13
- self .spaceship .add (Spaceship (screen_width , screen_height ))
14
- self .obstacle_1 = Obstacle (screen_width / 4 - 128 ,screen_height - 100 )
15
- self .obstacle_2 = Obstacle ((screen_width / 4 )* 2 - 128 ,screen_height - 100 )
16
- self .obstacle_3 = Obstacle ((screen_width / 4 )* 3 - 128 ,screen_height - 100 )
17
- self .obstacle_4 = Obstacle ((screen_width / 4 )* 4 - 128 ,screen_height - 100 )
18
- self .aliens = pygame .sprite .Group ()
19
- self .alien_lasers = pygame .sprite .Group ()
20
- self .mystery_ship = pygame .sprite .GroupSingle ()
21
- self .alien_direction = 1
22
- self .create_aliens ()
9
+ def __init__ (self , screen_width , screen_height , offset ):
10
+ self .screen_width = screen_width
11
+ self .screen_height = screen_height
12
+ self .offset = offset
13
+ self .spaceship = pygame .sprite .GroupSingle ()
14
+ self .spaceship .add (Spaceship (screen_width , screen_height , offset ))
15
+ self .obstacle_1 = Obstacle (screen_width / 4 - 128 ,screen_height - 100 )
16
+ self .obstacle_2 = Obstacle ((screen_width / 4 )* 2 - 128 ,screen_height - 100 )
17
+ self .obstacle_3 = Obstacle ((screen_width / 4 )* 3 - 128 ,screen_height - 100 )
18
+ self .obstacle_4 = Obstacle ((screen_width / 4 )* 4 - 128 ,screen_height - 100 )
19
+ self .aliens = pygame .sprite .Group ()
20
+ self .alien_lasers = pygame .sprite .Group ()
21
+ self .mystery_ship = pygame .sprite .GroupSingle ()
22
+ self .alien_direction = 1
23
+ self .create_aliens ()
23
24
24
- def create_mystery_ship (self ):
25
- self .mystery_ship .add (MysteryShip (self .screen_width ))
25
+ def create_mystery_ship (self ):
26
+ self .mystery_ship .add (MysteryShip (self .screen_width , self . offset ))
26
27
27
- def check_for_collisions (self ):
28
- if self . spaceship . sprite . lasers :
29
- for laser in self .spaceship .sprite .lasers :
30
- for obstacle in [ self .obstacle_1 , self . obstacle_2 , self . obstacle_3 , self . obstacle_4 ] :
31
- if pygame . sprite . spritecollide ( laser , obstacle . blocks , True ) :
32
- laser . kill ()
33
- print ( "Collision" )
28
+ def check_for_collisions (self ):
29
+ #Spaceship Laser
30
+ if self .spaceship .sprite .lasers :
31
+ for laser in self .spaceship . sprite . lasers :
32
+ for obstacle in [ self . obstacle_1 , self . obstacle_2 , self . obstacle_3 , self . obstacle_4 ] :
33
+ if pygame . sprite . spritecollide ( laser , obstacle . blocks , True ):
34
+ laser . kill ()
34
35
35
- def create_aliens (self ):
36
- for row in range (5 ):
37
- for column in range (11 ):
38
- x = column * 55
39
- y = row * 55
40
- if row == 0 :
41
- alien_sprite = Alien (3 , 75 + x , 80 + y )
42
- elif row == 1 or row == 2 :
43
- alien_sprite = Alien (2 , 75 + x , 80 + y )
44
- else :
45
- alien_sprite = Alien (1 , 75 + x , 80 + y )
46
- self .aliens .add (alien_sprite )
36
+ if pygame .sprite .spritecollide (laser , self .aliens , True ):
37
+ laser .kill ()
47
38
48
- def alien_position_checker (self ):
49
- alien_sprites = self .aliens .sprites ()
50
- for alien in alien_sprites :
51
- if alien .rect .right >= self .screen_width :
52
- self .alien_direction = - 1
53
- self .alien_move_down (2 )
54
- elif alien .rect .left <= 0 :
55
- self .alien_direction = 1
56
- self .alien_move_down (2 )
39
+ if pygame .sprite .spritecollide (laser , self .mystery_ship , True ):
40
+ laser .kill ()
57
41
58
- def alien_move_down (self , distance ):
59
- if self .aliens :
60
- for alien in self .aliens .sprites ():
61
- alien .rect .y += distance
42
+ #Aliens Laser
43
+ if self .alien_lasers :
44
+ for laser in self .alien_lasers :
45
+ for obstacle in [self .obstacle_1 , self .obstacle_2 , self .obstacle_3 , self .obstacle_4 ]:
46
+ if pygame .sprite .spritecollide (laser , obstacle .blocks , True ):
47
+ laser .kill ()
48
+ if pygame .sprite .spritecollide (laser , self .spaceship , False ):
49
+ print ("Game Over!" )
62
50
63
- def alien_shoot_laser (self ):
64
- if self .aliens .sprites ():
65
- random_alien = random .choice (self .aliens .sprites ())
66
- laser_sprite = Laser (random_alien .rect .center , - 6 , self .screen_height )
67
- self .alien_lasers .add (laser_sprite )
51
+ def create_aliens (self ):
52
+ for row in range (5 ):
53
+ for column in range (11 ):
54
+ x = column * 55
55
+ y = row * 55
56
+ if row == 0 :
57
+ alien_sprite = Alien (3 , 75 + x + self .offset / 2 , 80 + y + self .offset )
58
+ elif row == 1 or row == 2 :
59
+ alien_sprite = Alien (2 , 75 + x + self .offset / 2 , 80 + y + self .offset )
60
+ else :
61
+ alien_sprite = Alien (1 , 75 + x + self .offset / 2 , 80 + y + self .offset )
62
+ self .aliens .add (alien_sprite )
63
+
64
+ def alien_position_checker (self ):
65
+ alien_sprites = self .aliens .sprites ()
66
+ for alien in alien_sprites :
67
+ if alien .rect .right >= self .screen_width + self .offset / 2 :
68
+ self .alien_direction = - 1
69
+ self .alien_move_down (2 )
70
+ elif alien .rect .left <= self .offset / 2 :
71
+ self .alien_direction = 1
72
+ self .alien_move_down (2 )
73
+
74
+ def alien_move_down (self , distance ):
75
+ if self .aliens :
76
+ for alien in self .aliens .sprites ():
77
+ alien .rect .y += distance
78
+
79
+ def alien_shoot_laser (self ):
80
+ if self .aliens .sprites ():
81
+ random_alien = random .choice (self .aliens .sprites ())
82
+ laser_sprite = Laser (random_alien .rect .center , - 6 , self .screen_height )
83
+ self .alien_lasers .add (laser_sprite )
0 commit comments