Website Statistics Bonjour voici un code que je dois rendre ce mardi qui est une représentation du premier niveau de jeu alexkid in miracle world le but est de rajouté des collisi

Bonjour voici un code que je dois rendre ce mardi qui est une représentation du premier niveau de jeu alexkid in miracle world le but est de rajouté des collisions, de la gravité et eventuellement une mécanique de saut et de coup de poings qui fait disparaitre seulement certains bloc (très optionnel) mais depuis je n'ai réussi qu'a empécher le personnage de s'envoler et resultat il ne peut meme plus bouger (je crois qu'il a des collisions meme avec les tuiles d'air) si vous pourriez m'aider je vous serez entièrement reconnaissant


import pyxel
from liste_tuiles import *

'''
Il y a 4 possibilités pour les tuiles :
- le personnage peut passer à travers : valeur 0
- le personnage peut monter dessus : valeur 1
- le personnage peut monter dessus mais également les détruire : valeur 2
- le personnage peut passer à travers mais elles sont alors censées disparaître (pensez aux bonus) : valeur 3

Compte-tenu de l'ordre dans lequel les tuiles sont stockées, qui est le même que celui dans lequel vous pouvez les voir dans l'image "sortie.png"
(de gauche à droite et de haut en bas), les valeurs successives à donner sont :
011122121110011301010112200012110000
'''

pyxel.init(256,256)
pyxel.load("alexkid.pyxres")
cote = 1 + int(len(tuiles)**0.5)
pos = {"x" : 18,
"y" : 111,
"w" : 16,
"h" : 24,
"vx" : 0,
"vy" : 0,
"orientation" : False,
"accr" : False,
"saut" : False,
"cg" : False,
"cd" : False,
"ch" : False,
"cb" : False,
"coup" : False}

def update():
#pos["vy"]+=1
kp = False
if pyxel.btnp(pyxel.KEY_A):
pyxel.quit()
if pyxel.btn(pyxel.KEY_DOWN):
pos["y"] += 1
if pyxel.btn(pyxel.KEY_UP):
pos["y"] -= 1
if pyxel.btn(pyxel.KEY_LEFT):
pos["x"] -= 1
pos["orientation"] = False
kp=True
if pyxel.btn(pyxel.KEY_RIGHT):
pos["x"] += 1
pos["orientation"] = True
kp=True

if kp == False:
pos["vx"]*=0.95
if abs(pos["vx"])<0.5:
pos["vx"]= 0

if pos["vx"]>5:
pos["vx"]=5
elif pos["vx"]<-5:
pos["vx"]=-5

if pos["saut"] == True:
pos["vy"] -= 1
if pos["vy"] < -5:
pos["vy"] = -5
pos["saut"] = False

# déplacement de la caméra de façon à ce que personnage soit à peu près centré
pyxel.camera(max(0,pos["x"]-128),max(0,pos["y"]-128))

# tests des collisions
for i in range(len(tuiles)):
for j in tuiles[i]:
a = contact([pos["x"],pos["y"],16,24],[j[0],j[1],16,16])
if a > 0:
print(f"contact {a} avec la tuile {j} de type {i}")
if a == 1:
pos["y"] -= 1
elif a == 2:
pos["y"] += 1
elif a == 3:
pos["x"] -= 1
elif a == 4:
pos["x"] += 1
elif i == 3 and a == 0:
pos["x"] += 1

def draw():
#effacement du terrain
pyxel.cls(0)

# dessin du niveau
for i in range(len(tuiles)):
for j in tuiles[i]:
pyxel.blt(j[0], j[1], 2, 16*(i%cote), 16*(i//cote), 16, 16)

# dessin du personnage
if pos["orientation"]:
pyxel.blt(pos["x"]-16, pos["y"]-24,0,32,0,16,24,7)
else:
pyxel.blt(pos["x"]-16, pos["y"]-24,0,0,0,16,24,7)


def contact(obj_1, obj_2):
"""
prend en entrée 2 hitbox [x, y, largeur,

Bonjour voici un code que je dois rendre ce mardi qui est une représentation du premier niveau de jeu alexkid in miracle world le but est de rajouté des collisi class=
Bonjour voici un code que je dois rendre ce mardi qui est une représentation du premier niveau de jeu alexkid in miracle world le but est de rajouté des collisi class=
Bonjour voici un code que je dois rendre ce mardi qui est une représentation du premier niveau de jeu alexkid in miracle world le but est de rajouté des collisi class=
Bonjour voici un code que je dois rendre ce mardi qui est une représentation du premier niveau de jeu alexkid in miracle world le but est de rajouté des collisi class=

Répondre :

D'autres questions