-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.py
More file actions
105 lines (96 loc) · 3.64 KB
/
test.py
File metadata and controls
105 lines (96 loc) · 3.64 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
from entitylib2 import *
mur = Static("default", (128, 16), "bmp")
class obs(Obstacle):
live=100
size=(32, 32)
class ent(Entity):
dmg=2
xp=10
size=(32, 32)
class Zombie(IA):
img_format = (4,4,"png")
dmg=2
xp = 10
delay = 12000
size=(16, 32)
sound="blast.wav"
class arrow(Fired):
size=(16, 16)
pcoll=False
speed=10
delay=50
dmg=2
class speed(effect):
name = "speed boost"
def init_effect(self, entity):
"action when effect given"
entity.speed = entity.__class__.speed*(1+self.level/2)
active_effect=NoWeapon # NoWeapon represent passive function with 2 args
def end_effect(self, entity):
"action when effect disappear"
entity.speed = entity.__class__.speed # règle la vitesse de l'entité sur la vitesse de base de cet entité
init((arrow, obs, ent, Zombie), (256*3, 256*2))
mur.append((12, 52), (0, -1))
obs((54, 80), (1, 0))
#ent((randint(0, 255), randint(0, 255)), (randint(-2, 2), randint(-2, 2)))
for a in range(0, 4): # --> faire 4 fois
Zombie((randint(0, 255), randint(0, 255)), (randint(-2, 2), randint(-2, 2)))
Player.weapon = arrow # Le joueur lance des projectiles 'arrow'
Player.apply(speed, 300, 1) # applique l'effet 'speed' pour une durée de 300/20 s au niveau 1
Player.atk_freq=5 # 5/20 s de délai d'attaque pour le joueur
continuer=True
while continuer:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
Player.move[0] = 1
Player.dir = 0
elif event.key == pygame.K_LEFT:
Player.move[0] = -1
Player.dir = 2
elif event.key == pygame.K_DOWN:
Player.move[1] = 1
Player.dir = 1
elif event.key == pygame.K_UP:
Player.move[1] = -1
Player.dir = 3
elif event.key == pygame.K_SPACE:tir()
elif event.key == pygame.K_F11:fullscreen()
elif event.key == pygame.K_F12:screenshoot()
elif event.key == pygame.K_c:
try:exec(input("Command : "))
except:print("Commande inconnue")
elif event.type == pygame.KEYUP:
if event.key == pygame.K_RIGHT:
if Player.move[0] == 1:
Player.move[0] = 0
if Player.move[1]:
Player.dir = Player.move[1]%4
elif event.key == pygame.K_LEFT:
if Player.move[0] == -1:
Player.move[0] = 0
if Player.move[1]:
Player.dir = Player.move[1]%4
elif event.key == pygame.K_DOWN:
if Player.move[1] == 1:
Player.move[1] = 0
if Player.move[0]:
Player.dir = (Player.move[0]-1)%4
elif event.key == pygame.K_UP:
if Player.move[1] == -1:
Player.move[1] = 0
if Player.move[0]:
Player.dir = (Player.move[0]-1)%4
elif event.type == pygame.QUIT: # On clique sur la croix pour quitter
continuer=False
Refresh()
if Player.live <= 0:
pygame.display.quit() # Ferme la fenêtre pygame
break
if continuer: # On est mort ou c'est juste que l'on a quitté le jeu ?
# Actions à effectuer après la mort du joueur :
print("Game Over")
else:
# Actions à effectuer après avoir quitté le jeu
pygame.display.quit()
print("À bientôt :)")