bonjour, je m'appel pierre.
je debute et jai decider dallez plus loin que de faire calculatrice.
j'ai suivi quelque explication pour faire un jeux pong mais ma balle
ne bouge pas. je me suis dit que c'étais peut etre la vitesse de la
balle javais mis 1 au début mais meme a 5 ca ne marche pas plus ou est mon erreur et comment
je pourrais la réparé.
je me demande si jai pas oublier une ligne ou quelque chose
merci de vous plonger sur le probleme
les erreur fond apprendre comme on dit
voici le code que jai utilisé.
import turtle
# Création de la fenêtre du jeu
window = turtle.Screen()
window.title("Pong")
window.bgcolor("black")
window.setup(width=800, height=600)
window.tracer(0)
# Joueur 1
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize(stretch_wid=6, stretch_len=1)
paddle_a.penup()
paddle_a.goto(-350, 0)
# Joueur 2
paddle_b = turtle.Turtle()
paddle_b.speed(0)
paddle_b.shape("square")
paddle_b.color("white")
paddle_b.shapesize(stretch_wid=6, stretch_len=1)
paddle_b.penup()
paddle_b.goto(350, 0)
# Balle
ball = turtle.Turtle()
ball.speed(5) # Vitesse initiale de la balle
ball.shape("square")
ball.color("white")
ball.penup()
ball.goto(0, 0)
ball.dx = 2 # Déplacement horizontal initial de la balle
ball.dy = -2 # Déplacement vertical initial de la balle
# Fonctions de déplacement des raquettes
def paddle_a_up():
y = paddle_a.ycor()
if y < 250:
y += 20
paddle_a.sety(y)
def paddle_a_down():
y = paddle_a.ycor()
if y > -240:
y -= 20
paddle_a.sety(y)
def paddle_b_up():
y = paddle_b.ycor()
if y < 250:
y += 20
paddle_b.sety(y)
def paddle_b_down():
y = paddle_b.ycor()
if y > -240:
y -= 20
paddle_b.sety(y)
# Liaison des touches du clavier aux fonctions de déplacement
window.listen()
window.onkeypress(paddle_a_up, "w")
window.onkeypress(paddle_a_down, "s")
window.onkeypress(paddle_b_up, "Up")
window.onkeypress(paddle_b_down, "Down")
# Boucle principale du jeu
while True:
window.update()
# Déplacement de la balle
ball.setx(ball.xcor() + ball.dx)
ball.sety(ball.ycor() + ball.dy)
# Rebond de la balle sur les bords supérieur et inférieur
if ball.ycor() > 290:
ball.sety(290)
ball.dy *= -1
elif ball.ycor() < -290:
ball.sety(-290)
ball.dy *= -1
# Rebond de la balle sur les raquettes
if (ball.dx > 0) and (350 > ball.xcor() > 340) and (paddle_b.ycor() + 50 > ball.ycor() > paddle_b.ycor() - 50):
ball.color("green")
ball.setx(340)
ball.dx *= -1
elif (ball.dx < 0) and (-350 < ball.xcor() < -340) and (paddle_a.ycor() + 50 > ball.ycor() > paddle_a.ycor() - 50):
ball.color("green")
ball.setx(-
# Erreur de copier/coller ?
Posté par gUI (Mastodon) . Évalué à 4.
Bonjour,
Il me semble que le code que tu as donné n'est pas complet, la fin est un peu abrupte :)
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
# et pourtant, elle bouge
Posté par guitou . Évalué à 6.
Hello
J'ai teste rapidement la portion de code que tu as copiee (en completant la derniere partie).
Du coup, ma balle se perd sur la droite, mais je la vois bien se deplacer auparavant.
Je soupçonne donc que tu geres la fin de partie plus loin dans ton code et que la balle est simplement replacée au centre et mise a l'arret.
Astuce: avec un petit
time.sleep(0.01)
avant tonwindow.update()
tu verras mieux ce qui se passe++
Gi)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.