|
Invité de passage
Étudiant Inscription : décembre 2012 Messages : 2 Détails du profil  Informations personnelles : Sexe :  Localisation : France, Hérault (Languedoc Roussillon) Informations professionnelles :
Activité : Étudiant Secteur : Aéronautique - Marine - Espace - Armement Informations forums :
Inscription : décembre 2012 Messages : 2 Points : 0 Points : 0
|
Problème de déplacement des rectangles
Bonjour à tous,
J'ai quelques petits problèmes, je suis en train de développer un Space Invaders sur Space Python.
J'avais fait un programme beaucoup trop redondant et répétitif au niveau du code.
Le professeur m'a donc demandé de simplifier le code et de faire un programme plus léger en modifiant les coordonnées avec "canvas.coords".
Pourtant ça ne marche pas.
Est ce que par hasard vous sauriez comment m'aider ?
Voici mon code (original) :
Citation:
# Créé par rdesplat, le 19/11/2012
from __future__ import division
from lycee import *
import Tkinter
fenetre = Tkinter.Tk()
fond=Tkinter.Canvas(fenetre, width=400, height=300, background='darkgray')
x = 0
y = 0
u = 340
v = 20
a = 350
b = 10
def createrectangle(u,v,a,b,c1,c2):
fond.create_rectangle(x+u,y+v,x+a,y+b,fill=c1,outline=c2)
fond.create_rectangle(x+u-3,y+v,x+a,y+b,fill=c1,outline=c2)
def createennemi():
fond.create_rectangle
fond.pack()
# LIGNE 1
# l1 h2 l2 h1
ca='dark green'
cb='gray'
"""
Il faut impérativement créer une fonction de dessin des aliens
pour éviter la redondance du code et pouvoir faire des modifs facilement
"""
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
#Ligne 2
x = 0
y = 0
u = 340
v = 20
a = 350
b = 10
# l1 h2 l2 h1
ca='dark green'
cb='gray'
v = v+20
b = b+20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
u = u-20
a = a-20
createrectangle(u,v,a,b,ca,cb)#deuxième 15
createrectangle(u-3,v+3,u,b+3,ca,cb)#gauche
createrectangle(a,v+3,a+3,b+3,ca,cb)#droite
#VAISSEAU DU HEROS
# l1 h2 l2 h1
fond.create_rectangle(185,280,190,260,fill='gray',outline='black')#Tireur gauche
fond.create_rectangle(210,280,215,260,fill='gray',outline='black')#Tireur droite
# xbas ybas xsommet ysommet xbasdroite y basdroite
fond.create_polygon(185, 280, 200, 250, 215, 280, fill="black", outline="gray")
# l1 h2 l2 h1
fond.create_oval(185,286,193,278,fill='yellow', outline="red")#Propulseur gauche
fond.create_oval(207,286,215,278,fill='yellow', outline="red")#Propulseur droit
fond.create_oval(192,292,208,278,fill='yellow', outline="red")#Effet vitesse
# x1 y1 x2 y2
fond.create_line(187,245,187,255, fill='red')#Tir gauche
fond.create_line(212,245,212,255, fill='red')#Tir droite
fenetre.mainloop()
|
Et celui que j'ai essayé de changer :
Citation:
# Créé par rdesplat, le 19/11/2012
from __future__ import division
from lycee import *
import Tkinter
fenetre = Tkinter.Tk()
fond=Tkinter.Canvas(fenetre, width=400, height=300, background='darkgray')
x = 0
y = 0
u = 340
v = 20
a = 350
b = 10
def createrectangle(u,v,a,b,c1,c2):
L=[]
L.append(fond.create_rectangle(x+u,y+v,x+a,y+b,fill=c1,outline=c2))
fond.create_rectangle(x+a,y+v+3,x+a+3,y+b+3,fill=c1,outline=c2)
return L
def deplacerect(L,):
fond.coords(L[0], u-20, a+20)
def brasgauche(u,v,a,b,c1,c2):
L=[]
fond.create_rectangle(x+u-3,y+v+3,x+u,y+b+3,fill=c1,outline=c2)
def coord():
fond.coords(createrectangle, u-20, a+20)
fond.pack()
ca='dark green'
cb='gray'
# LIGNE 1
# l1 h2 l2 h1
createrectangle(u,v,a,b,ca,cb)#deuxième 1
createrectangle(u,v,a,b,ca,cb)#deuxième 1
#VAISSEAU DU HEROS
# l1 h2 l2 h1
fond.create_rectangle(185,280,190,260,fill='gray',outline='black')#Tireur gauche
fond.create_rectangle(210,280,215,260,fill='gray',outline='black')#Tireur droite
# xbas ybas xsommet ysommet xbasdroite y basdroite
fond.create_polygon(185, 280, 200, 250, 215, 280, fill="black", outline="gray")
# l1 h2 l2 h1
fond.create_oval(185,286,193,278,fill='yellow', outline="red")#Propulseur gauche
fond.create_oval(207,286,215,278,fill='yellow', outline="red")#Propulseur droit
fond.create_oval(192,292,208,278,fill='yellow', outline="red")#Effet vitesse
# x1 y1 x2 y2
fond.create_line(187,245,187,255, fill='red')#Tir gauche
fond.create_line(212,245,212,255, fill='red')#Tir droite
fenetre.mainloop()
|
Merci à tout ceux qui pourront m'aider,
Cordialement,
cornufreud
Citation:
|
"La définition de l'éternité, c'est la jouissance infinie de l'existence" - Hugo Cornuel
|
|