66from laser import Laser
77
88class 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 ()
2324
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 ))
2627
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 ()
3435
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 ()
4738
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 ()
5741
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!" )
6250
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