Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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.
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-
ifself.spaceship.sprite.lasers:
29-
forlaserin self.spaceship.sprite.lasers:
30-
for obstacle in [self.obstacle_1, self.obstacle_2, self.obstacle_3, self.obstacle_4]:
31-
ifpygame.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+
forobstaclein [self.obstacle_1, self.obstacle_2, self.obstacle_3, self.obstacle_4]:
33+
ifpygame.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)

AltStyle によって変換されたページ (->オリジナル) /