Problème avec python pour les collisions avec un mur
Résolu
tkinter5555
-
trifou -
trifou -
Bonjour, je suis nouveaux sur ce site j'ai un projet a rendre avant samedi soir je sais ces un peu tard mais je suis dans une impasse merci beaucoup de votre aide. Le projet consiste en un labyrinthe avec un personne qui ne peut ce déplacer que sur les cases herbe et pas eau mon problème ces que j'ai réussie a placer le personnage aléatoirement sur une cases et a le déplacer sauf qu'il va sur l'eau et je n'arrive pas a lui interdire pourriez vous m'aider s'il-vous-plaît merci beaucoup.
voici mon code
from tkinter import *
from random import *
fenetre = Tk()
fenetre.title("Jeux")
plateau_jeux = [[0,0,1,0,0,0,1,0,1,0],
[0,0,1,0,0,0,1,0,1,0],
[1,1,1,1,1,0,1,0,1,1],
[0,1,0,0,1,1,1,0,1,0],
[0,1,1,1,1,0,1,0,1,0],
[0,1,0,0,1,0,1,1,1,0],
[1,1,1,0,1,1,1,0,1,1],
[0,0,1,0,0,0,1,0,1,0]]
coor_plateau=[[(40,40),(120,40),(200,40),(280,40),(360,40),(440,40),(520,40),(600,40),(680,40),(760,40)],
[(40,120),(120,120),(200,120),(280,120),(360,120),(440,120),(520,120),(600,120),(680,120),(760,120)],
[(40,200),(120,200),(200,200),(280,200),(360,200),(440,200),(520,200),(600,200),(680,200),(760,200)],
[(40,280),(120,280),(200,280),(280,280),(360,280),(440,280),(520,280),(600,280),(680,280),(760,280)],
[(40,360),(120,360),(200,360),(280,360),(360,360),(440,360),(520,360),(600,360),(680,360),(760,360)],
[(40,440),(120,440),(200,440),(280,440),(360,440),(440,440),(520,440),(600,440),(680,440),(760,440)],
[(40,520),(120,520),(200,520),(280,520),(360,520),(440,520),(520,520),(600,520),(680,520),(760,520)],
[(40,600),(120,600),(200,600),(280,600),(360,600),(440,600),(520,600),(600,600),(680,600),(760,600)]]
cor_herbe=[[200,40],[520,40],[680,40],[200,120],[520,120],[680,120],[40,200],[120,200],[200,200],[280,200],[360,200],[520,200],[680,200],[760,200],
[120,280],[360,280],[440,280],[520,280],[680,280],[120,360],[200,360],[280,360],[360,360],[520,360],[680,360],[120,440],[360,440],[520,440],
[600,440],[680,440],[40,520],[120,520],[200,520],[360,520],[440,520],[520,520],[680,520],[760,520],[200,600],[520,600],[680,600]]
EAU = 0
HERBE = 1
def afficher labyrinthe(plateau_jeux):
for L in range len(plateau_jeux[0]):
for H in range len(plateau_jeux)
L_plateau_jeux = len(plateau_jeux[0])
H_plateau_jeux = len(plateau_jeux)
im_eau = PhotoImage(file="Tuile_Eau.png")
im_herbe = PhotoImage(file="Tuile_Herbe.png")
im_perso = PhotoImage(file="Perso_Horn_Girl.png")
cor_he=choice(cor_herbe)
zone_g = Canvas(fenetre,width=800,height=640,bg="snow")
zone_g.create_image(40, 40, image=im_eau)
zone_g.create_image(120, 40, image=im_eau)
zone_g.create_image(200, 40, image=im_herbe)
zone_g.create_image(280, 40, image=im_eau)
zone_g.create_image(360, 40, image=im_eau)
zone_g.create_image(440, 40, image=im_eau)
zone_g.create_image(520, 40, image=im_herbe)
zone_g.create_image(600, 40, image=im_eau)
zone_g.create_image(680, 40, image=im_herbe)
zone_g.create_image(760, 40, image=im_eau)
zone_g.create_image(40, 120, image=im_eau)
zone_g.create_image(120, 120, image=im_eau)
zone_g.create_image(200, 120, image=im_herbe)
zone_g.create_image(280, 120, image=im_eau)
zone_g.create_image(360, 120, image=im_eau)
zone_g.create_image(440, 120, image=im_eau)
zone_g.create_image(520, 120, image=im_herbe)
zone_g.create_image(600, 120, image=im_eau)
zone_g.create_image(680, 120, image=im_herbe)
zone_g.create_image(760, 120, image=im_eau)
zone_g.create_image(40, 200, image=im_herbe)
zone_g.create_image(120, 200, image=im_herbe)
zone_g.create_image(200, 200, image=im_herbe)
zone_g.create_image(280, 200, image=im_herbe)
zone_g.create_image(360, 200, image=im_herbe)
zone_g.create_image(440, 200, image=im_eau)
zone_g.create_image(520, 200, image=im_herbe)
zone_g.create_image(600, 200, image=im_eau)
zone_g.create_image(680, 200, image=im_herbe)
zone_g.create_image(760, 200, image=im_herbe)
zone_g.create_image(40, 280, image=im_eau)
zone_g.create_image(120, 280, image=im_herbe)
zone_g.create_image(200, 280, image=im_eau)
zone_g.create_image(280, 280, image=im_eau)
zone_g.create_image(360, 280, image=im_herbe)
zone_g.create_image(440, 280, image=im_herbe)
zone_g.create_image(520, 280, image=im_herbe)
zone_g.create_image(600, 280, image=im_eau)
zone_g.create_image(680, 280, image=im_herbe)
zone_g.create_image(760, 280, image=im_eau)
zone_g.create_image(40, 360, image=im_eau)
zone_g.create_image(120, 360, image=im_herbe)
zone_g.create_image(200, 360, image=im_herbe)
zone_g.create_image(280, 360, image=im_herbe)
zone_g.create_image(360, 360, image=im_herbe)
zone_g.create_image(440, 360, image=im_eau)
zone_g.create_image(520, 360, image=im_herbe)
zone_g.create_image(600, 360, image=im_eau)
zone_g.create_image(680, 360, image=im_herbe)
zone_g.create_image(760, 360, image=im_eau)
zone_g.create_image(40, 440, image=im_eau)
zone_g.create_image(120, 440, image=im_herbe)
zone_g.create_image(200, 440, image=im_eau)
zone_g.create_image(280, 440, image=im_eau)
zone_g.create_image(360, 440, image=im_herbe)
zone_g.create_image(440, 440, image=im_eau)
zone_g.create_image(520, 440, image=im_herbe)
zone_g.create_image(600, 440, image=im_herbe)
zone_g.create_image(680, 440, image=im_herbe)
zone_g.create_image(760, 440, image=im_eau)
zone_g.create_image(40, 520, image=im_herbe)
zone_g.create_image(120, 520, image=im_herbe)
zone_g.create_image(200, 520, image=im_herbe)
zone_g.create_image(280, 520, image=im_eau)
zone_g.create_image(360, 520, image=im_herbe)
zone_g.create_image(440, 520, image=im_herbe)
zone_g.create_image(520, 520, image=im_herbe)
zone_g.create_image(600, 520, image=im_eau)
zone_g.create_image(680, 520, image=im_herbe)
zone_g.create_image(760, 520, image=im_herbe)
zone_g.create_image(40, 600, image=im_eau)
zone_g.create_image(120, 600, image=im_eau)
zone_g.create_image(200, 600, image=im_herbe)
zone_g.create_image(280, 600, image=im_eau)
zone_g.create_image(360, 600, image=im_eau)
zone_g.create_image(440, 600, image=im_eau)
zone_g.create_image(520, 600, image=im_herbe)
zone_g.create_image(600, 600, image=im_eau)
zone_g.create_image(680, 600, image=im_herbe)
zone_g.create_image(760, 600, image=im_eau)
perso=zone_g.create_image(cor_he, image=im_perso)
def deplace(evenement):
touche = evenement.char.upper()
if evenement.keysym == "Up":
if ???????:
cor_herbs = 0
cor_herb= -80
else:
cor_herb = 0
cor_herbs =0
elif evenement.keysym =="Down":
#if deplace == cor_herbe:
cor_herbs = 0
cor_herb= 80
#else:
# dx , dy = 0, 0
elif evenement.keysym =="Left":
# if deplace == cor_herbe:
cor_herbs= -80
cor_herb = 0
# else:
# dx , dy = 0, 0
elif evenement.keysym =="Right":
# if deplace == cor_herbe:
cor_herbs = 80
cor_herb = 0
# else:
# dx , dy = 0, 0
else:
cor_herb = 0
cor_herbs =0
zone_g.move(perso, cor_herbs, cor_herb)
fenetre.bind_all("<KeyPress>", deplace)
zone_g.pack()
fenetre.mainloop()
voici mon code
from tkinter import *
from random import *
fenetre = Tk()
fenetre.title("Jeux")
plateau_jeux = [[0,0,1,0,0,0,1,0,1,0],
[0,0,1,0,0,0,1,0,1,0],
[1,1,1,1,1,0,1,0,1,1],
[0,1,0,0,1,1,1,0,1,0],
[0,1,1,1,1,0,1,0,1,0],
[0,1,0,0,1,0,1,1,1,0],
[1,1,1,0,1,1,1,0,1,1],
[0,0,1,0,0,0,1,0,1,0]]
coor_plateau=[[(40,40),(120,40),(200,40),(280,40),(360,40),(440,40),(520,40),(600,40),(680,40),(760,40)],
[(40,120),(120,120),(200,120),(280,120),(360,120),(440,120),(520,120),(600,120),(680,120),(760,120)],
[(40,200),(120,200),(200,200),(280,200),(360,200),(440,200),(520,200),(600,200),(680,200),(760,200)],
[(40,280),(120,280),(200,280),(280,280),(360,280),(440,280),(520,280),(600,280),(680,280),(760,280)],
[(40,360),(120,360),(200,360),(280,360),(360,360),(440,360),(520,360),(600,360),(680,360),(760,360)],
[(40,440),(120,440),(200,440),(280,440),(360,440),(440,440),(520,440),(600,440),(680,440),(760,440)],
[(40,520),(120,520),(200,520),(280,520),(360,520),(440,520),(520,520),(600,520),(680,520),(760,520)],
[(40,600),(120,600),(200,600),(280,600),(360,600),(440,600),(520,600),(600,600),(680,600),(760,600)]]
cor_herbe=[[200,40],[520,40],[680,40],[200,120],[520,120],[680,120],[40,200],[120,200],[200,200],[280,200],[360,200],[520,200],[680,200],[760,200],
[120,280],[360,280],[440,280],[520,280],[680,280],[120,360],[200,360],[280,360],[360,360],[520,360],[680,360],[120,440],[360,440],[520,440],
[600,440],[680,440],[40,520],[120,520],[200,520],[360,520],[440,520],[520,520],[680,520],[760,520],[200,600],[520,600],[680,600]]
EAU = 0
HERBE = 1
def afficher labyrinthe(plateau_jeux):
for L in range len(plateau_jeux[0]):
for H in range len(plateau_jeux)
L_plateau_jeux = len(plateau_jeux[0])
H_plateau_jeux = len(plateau_jeux)
im_eau = PhotoImage(file="Tuile_Eau.png")
im_herbe = PhotoImage(file="Tuile_Herbe.png")
im_perso = PhotoImage(file="Perso_Horn_Girl.png")
cor_he=choice(cor_herbe)
zone_g = Canvas(fenetre,width=800,height=640,bg="snow")
zone_g.create_image(40, 40, image=im_eau)
zone_g.create_image(120, 40, image=im_eau)
zone_g.create_image(200, 40, image=im_herbe)
zone_g.create_image(280, 40, image=im_eau)
zone_g.create_image(360, 40, image=im_eau)
zone_g.create_image(440, 40, image=im_eau)
zone_g.create_image(520, 40, image=im_herbe)
zone_g.create_image(600, 40, image=im_eau)
zone_g.create_image(680, 40, image=im_herbe)
zone_g.create_image(760, 40, image=im_eau)
zone_g.create_image(40, 120, image=im_eau)
zone_g.create_image(120, 120, image=im_eau)
zone_g.create_image(200, 120, image=im_herbe)
zone_g.create_image(280, 120, image=im_eau)
zone_g.create_image(360, 120, image=im_eau)
zone_g.create_image(440, 120, image=im_eau)
zone_g.create_image(520, 120, image=im_herbe)
zone_g.create_image(600, 120, image=im_eau)
zone_g.create_image(680, 120, image=im_herbe)
zone_g.create_image(760, 120, image=im_eau)
zone_g.create_image(40, 200, image=im_herbe)
zone_g.create_image(120, 200, image=im_herbe)
zone_g.create_image(200, 200, image=im_herbe)
zone_g.create_image(280, 200, image=im_herbe)
zone_g.create_image(360, 200, image=im_herbe)
zone_g.create_image(440, 200, image=im_eau)
zone_g.create_image(520, 200, image=im_herbe)
zone_g.create_image(600, 200, image=im_eau)
zone_g.create_image(680, 200, image=im_herbe)
zone_g.create_image(760, 200, image=im_herbe)
zone_g.create_image(40, 280, image=im_eau)
zone_g.create_image(120, 280, image=im_herbe)
zone_g.create_image(200, 280, image=im_eau)
zone_g.create_image(280, 280, image=im_eau)
zone_g.create_image(360, 280, image=im_herbe)
zone_g.create_image(440, 280, image=im_herbe)
zone_g.create_image(520, 280, image=im_herbe)
zone_g.create_image(600, 280, image=im_eau)
zone_g.create_image(680, 280, image=im_herbe)
zone_g.create_image(760, 280, image=im_eau)
zone_g.create_image(40, 360, image=im_eau)
zone_g.create_image(120, 360, image=im_herbe)
zone_g.create_image(200, 360, image=im_herbe)
zone_g.create_image(280, 360, image=im_herbe)
zone_g.create_image(360, 360, image=im_herbe)
zone_g.create_image(440, 360, image=im_eau)
zone_g.create_image(520, 360, image=im_herbe)
zone_g.create_image(600, 360, image=im_eau)
zone_g.create_image(680, 360, image=im_herbe)
zone_g.create_image(760, 360, image=im_eau)
zone_g.create_image(40, 440, image=im_eau)
zone_g.create_image(120, 440, image=im_herbe)
zone_g.create_image(200, 440, image=im_eau)
zone_g.create_image(280, 440, image=im_eau)
zone_g.create_image(360, 440, image=im_herbe)
zone_g.create_image(440, 440, image=im_eau)
zone_g.create_image(520, 440, image=im_herbe)
zone_g.create_image(600, 440, image=im_herbe)
zone_g.create_image(680, 440, image=im_herbe)
zone_g.create_image(760, 440, image=im_eau)
zone_g.create_image(40, 520, image=im_herbe)
zone_g.create_image(120, 520, image=im_herbe)
zone_g.create_image(200, 520, image=im_herbe)
zone_g.create_image(280, 520, image=im_eau)
zone_g.create_image(360, 520, image=im_herbe)
zone_g.create_image(440, 520, image=im_herbe)
zone_g.create_image(520, 520, image=im_herbe)
zone_g.create_image(600, 520, image=im_eau)
zone_g.create_image(680, 520, image=im_herbe)
zone_g.create_image(760, 520, image=im_herbe)
zone_g.create_image(40, 600, image=im_eau)
zone_g.create_image(120, 600, image=im_eau)
zone_g.create_image(200, 600, image=im_herbe)
zone_g.create_image(280, 600, image=im_eau)
zone_g.create_image(360, 600, image=im_eau)
zone_g.create_image(440, 600, image=im_eau)
zone_g.create_image(520, 600, image=im_herbe)
zone_g.create_image(600, 600, image=im_eau)
zone_g.create_image(680, 600, image=im_herbe)
zone_g.create_image(760, 600, image=im_eau)
perso=zone_g.create_image(cor_he, image=im_perso)
def deplace(evenement):
touche = evenement.char.upper()
if evenement.keysym == "Up":
if ???????:
cor_herbs = 0
cor_herb= -80
else:
cor_herb = 0
cor_herbs =0
elif evenement.keysym =="Down":
#if deplace == cor_herbe:
cor_herbs = 0
cor_herb= 80
#else:
# dx , dy = 0, 0
elif evenement.keysym =="Left":
# if deplace == cor_herbe:
cor_herbs= -80
cor_herb = 0
# else:
# dx , dy = 0, 0
elif evenement.keysym =="Right":
# if deplace == cor_herbe:
cor_herbs = 80
cor_herb = 0
# else:
# dx , dy = 0, 0
else:
cor_herb = 0
cor_herbs =0
zone_g.move(perso, cor_herbs, cor_herb)
fenetre.bind_all("<KeyPress>", deplace)
zone_g.pack()
fenetre.mainloop()
Configuration: Windows / Firefox 72.0
A voir également:
- Problème avec python pour les collisions avec un mur
- Citizen code python avis - Accueil - Outils
- Mesurer un mur avec telephone - Guide
- Comment projeter une image sur un mur - Forum Matériel & Système
- Python pix ✓ - Forum Python
- Mot secret python pix ✓ - Forum Python
1 réponse
Bonjour,
Il faut voir à te servir de boucles pour générer les tuiles de ton plateau.
En ce qui concerne ton problème, réduis le au plus simple.
Le plateau
La position du personnage sur le plateau.
Comment déterminer si le personnage peut se déplacer en haut ? En bas ? A droite ? A gauche ?
C'est quelque chose de simple à résoudre.
Il faut voir à te servir de boucles pour générer les tuiles de ton plateau.
En ce qui concerne ton problème, réduis le au plus simple.
Le plateau
PLATEAU = ( (0,0,1,0,0,0,1,0,1,0), (0,0,1,0,0,0,1,0,1,0), (1,1,1,1,1,0,1,0,1,1), (0,1,0,0,1,1,1,0,1,0), (0,1,1,1,1,0,1,0,1,0), (0,1,0,0,1,0,1,1,1,0), (1,1,1,0,1,1,1,0,1,1), (0,0,1,0,0,0,1,0,1,0), )
La position du personnage sur le plateau.
perso_position = [6, 9]
Comment déterminer si le personnage peut se déplacer en haut ? En bas ? A droite ? A gauche ?
C'est quelque chose de simple à résoudre.