Skip to content

Commit 3cc24ed

Browse files
committed
v0.7
Starting UI
1 parent f35eaa1 commit 3cc24ed

File tree

7 files changed

+83
-65
lines changed

7 files changed

+83
-65
lines changed

__pycache__/alien.cpython-311.pyc

108 Bytes
Binary file not shown.

__pycache__/game.cpython-311.pyc

960 Bytes
Binary file not shown.

__pycache__/spaceship.cpython-311.pyc

21 Bytes
Binary file not shown.

alien.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,21 @@ def update(self, direction):
1111
self.rect.x += direction
1212

1313
class MysteryShip(pygame.sprite.Sprite):
14-
def __init__(self, screen_width):
14+
def __init__(self, screen_width, offset):
1515
super().__init__()
1616
self.screen_width = screen_width
17+
self.offset = offset
1718
self.image = pygame.image.load("Graphics/mystery.png")
1819
x = random.choice([0, screen_width - self.image.get_width()])
1920
if x == 0:
2021
self.speed = 3
2122
else:
2223
self.speed = -3
23-
self.rect = self.image.get_rect(topleft = (x, 20))
24+
self.rect = self.image.get_rect(topleft = (x, 50))
2425

2526
def update(self):
2627
self.rect.x += self.speed
27-
if self.rect.x > self.screen_width:
28+
if self.rect.right > self.screen_width + self.offset/2:
2829
self.kill()
29-
elif self.rect.x < - 200:
30+
elif self.rect.left < self.offset/2:
3031
self.kill()

game.py

Lines changed: 69 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -6,62 +6,78 @@
66
from laser import Laser
77

88
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()
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)

main.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,19 @@
1010
YELLOW = (243, 216, 63)
1111
SCREEN_WIDTH = 750
1212
SCREEN_HEIGHT = 700
13+
OFFSET = 50
1314

14-
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
15+
screen = pygame.display.set_mode((SCREEN_WIDTH + OFFSET, SCREEN_HEIGHT + 2*OFFSET))
1516
pygame.display.set_caption("Space Invaders")
1617

1718
clock = pygame.time.Clock()
1819
ALIENLASER = pygame.USEREVENT
1920
pygame.time.set_timer(ALIENLASER, 500)
2021

2122
MYSTERYSHIP = pygame.USEREVENT + 1
22-
pygame.time.set_timer(MYSTERYSHIP, random.randint(5000,10000))
23+
pygame.time.set_timer(MYSTERYSHIP, random.randint(10000,20000))
2324

24-
game = Game(SCREEN_WIDTH, SCREEN_HEIGHT)
25+
game = Game(SCREEN_WIDTH, SCREEN_HEIGHT, OFFSET)
2526

2627
while True:
2728
for event in pygame.event.get():
@@ -34,6 +35,8 @@
3435
game.create_mystery_ship()
3536

3637
screen.fill(GREY)
38+
pygame.draw.rect(screen, YELLOW, (10, 10 ,775, 775), 2, 0, 60, 60, 60, 60)
39+
pygame.draw.line(screen, YELLOW, (25, 800 - 70), (800 -25, 800 - 70), 3)
3740

3841
game.alien_lasers.update()
3942
game.spaceship.update()
@@ -52,8 +55,6 @@
5255
game.aliens.draw(screen)
5356
game.alien_lasers.draw(screen)
5457
game.mystery_ship.draw(screen)
55-
56-
#pygame.draw.rect(screen, YELLOW, (10, 10 ,780, 780), 2, 0, 60, 60, 60, 60)
57-
#pygame.draw.line(screen, YELLOW, (25, 800 - 70), (800 -25, 800 - 70), 3)
58+
5859
pygame.display.update()
5960
clock.tick(60)

spaceship.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33

44
class Spaceship(pygame.sprite.Sprite):
55

6-
def __init__(self, screen_width, screen_height):
6+
def __init__(self, screen_width, screen_height, offset):
77
super().__init__()
88
self.image = pygame.image.load("Graphics/ship.png")
9-
self.rect = self.image.get_rect(midbottom = (screen_width/2, screen_height))
9+
self.rect = self.image.get_rect(midbottom = ((screen_width+offset)/2, screen_height))
1010
self.speed = 5
1111
self.screen_width = screen_width
1212
self.screen_height = screen_height

0 commit comments

Comments
 (0)