-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgame.py
More file actions
109 lines (72 loc) · 2.54 KB
/
game.py
File metadata and controls
109 lines (72 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import pygame
import sys
import random
from pygame.time import delay
pygame.init()
clock = pygame.time.Clock()
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
SPEED = 30
framerate = SPEED * 1/4
RED = [255, 0, 0]
BLACK = [0, 0, 0]
WHITE = [255, 255, 255]
player_size = 50
player_pos = [SCREEN_WIDTH/2, SCREEN_HEIGHT-player_size*3/2]
enemy_size = 50
enemy_pos = [random.randint(0,SCREEN_WIDTH - enemy_size), 0]
enemy_list = []
enemy_number = 8
game_over = False
font = pygame.font.SysFont('arial', 20)
score = 0
score_text = "Score: " + str(score)
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
def draw_enemies(enemy_list):
for enemy_pos in enemy_list :
pygame.draw.rect(screen, WHITE, (enemy_pos[0], enemy_pos[1], enemy_size, enemy_size))
def enemies(enemy_list):
delay = random.random()
if len(enemy_list) < enemy_number and delay <0.2:
enemy_pos[0] = random.randint(0,SCREEN_WIDTH - enemy_size)
enemy_list.append([enemy_pos[0], 0])
def enemy_fall(enemy_list,score):
for enemy_pos in enemy_list:
if enemy_pos[1] < SCREEN_HEIGHT:
enemy_pos[1] += SPEED
else:
enemy_pos[0] = random.randint(0,SCREEN_WIDTH - enemy_size)
enemy_pos[1] = 0
score += 1
def collision(player_pos, enemy_list):
for enemy_pos in enemy_list:
if (enemy_pos[1] >= player_pos[1]) and (enemy_pos[1] <= player_pos[1] + player_size*3/2):
if (enemy_pos[0] + player_size > player_pos[0]) and (enemy_pos[0] < player_pos[0] + player_size):
return True
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
if event.type == pygame.KEYDOWN:
x = player_pos[0]
y = player_pos[1]
if x < SCREEN_WIDTH - player_size:
if event.key == pygame.K_RIGHT:
x += player_size
if x > 0 :
if event.key == pygame.K_LEFT:
x -= player_size
player_pos = [x, y]
screen.fill(BLACK)
pygame.draw.rect(screen, RED, (player_pos[0], player_pos[1], player_size, player_size))
enemy_fall(enemy_list, score)
enemies(enemy_list)
draw_enemies(enemy_list)
if collision(player_pos, enemy_list):
game_over = True
break
time_passed = str(pygame.time.get_ticks())
text = font.render(time_passed, 1, (255, 255, 255))
clock.tick(framerate)
screen.blit(text, [100, 100])
pygame.display.update()