-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPyGame.py
72 lines (59 loc) · 1.8 KB
/
PyGame.py
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
import pygame
import sys
import random
# Constantes
ANCHO = 800
ALTO = 600
color_rojo = (255, 0, 0)
color_negro = (0, 0, 0)
color_azul = (0, 0, 255)
# jugador
jugador_size = 50
jugador_pos = [ANCHO / 2, ALTO - jugador_size * 2]
# Enemigo(s)
enemigo_size = 50
enemigo_pos = [random.randint(0, ANCHO - enemigo_size), 0]
# ventana
ventana = pygame.display.set_mode((ANCHO, ALTO))
game_over = False
clock = pygame.time.Clock()
# Funciones
def detectar_colision(luchador_pos, malo_pos):
jx = luchador_pos[0]
jy = luchador_pos[1]
ex = malo_pos[0]
ey = malo_pos[1]
if (jx <= ex < (jx + jugador_size)) or (ex <= jx < (ex + enemigo_size)):
if (jy <= ey < (jy + jugador_size)) or (ey <= jy < (ey + enemigo_size)):
return True
return False
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
if event.type == pygame.KEYDOWN:
x = jugador_pos[0]
if event.key == pygame.K_LEFT:
x -= jugador_size
if event.key == pygame.K_RIGHT:
x += jugador_size
jugador_pos[0] = x
ventana.fill(color_negro)
if 0 <= enemigo_pos[1] < ALTO:
enemigo_pos[1] += 20
else:
enemigo_pos[0] = random.randint(0, ANCHO - enemigo_size)
enemigo_pos[1] = 0
# Colisiones
if detectar_colision(jugador_pos, enemigo_pos):
game_over = True
# Dibujar enemigo
pygame.draw.rect(ventana, color_azul,
(enemigo_pos[0], enemigo_pos[1],
enemigo_size, enemigo_size))
# Dibujar jugador
pygame.draw.rect(ventana, color_rojo,
(jugador_pos[0], jugador_pos[1],
jugador_size, jugador_size))
clock.tick(30)
pygame.display.update()