当我进入循环中时,它们似乎无法工作

时间:2019-11-09 22:13:31

标签: python python-3.x turtle-graphics

Video reference of the tutorial at the needed excercise

我一直在尝试按照乌龟指南进行乒乓球比赛。这真的很简单,我完全理解。失败的一件事是球的运动,先定义了球,然后定义了循环,当我进入循环时,我编写了相同的代码,而球却不动

似乎我在弄乱一个我不知道的角色,我只是问问是否有人可以帮我看看。我将切掉所有与对象相关的东西,只留下球

我已经下载了本教程的.py文件,并执行了它,并且效果很好。我复制了特定功能,但无法正常工作。

import turtle 
import os

#Aplication and screen setting
ventana = turtle.Screen()
ventana.title("A little pong game")
ventana.bgcolor("black")
ventana.setup(width=800, height=600)
ventana.tracer(0)

#This is the ball definition"
# pelota
pelota = turtle.Turtle()
pelota.speed(0)
pelota.shape("circle")
pelota.color("white")
pelota.penup()
pelota.goto(0, 0)
pelota.dx = 2
pelota.dy = 2


while True:
    ventana.update()

    # Move the ball (this should get the ball moving)
    pelota.setx(pelota.xcor() + pelota.dx)  #-> This isn't working for me
    pelota.sety(pelota.ycor() + pelota.dy)  #-> This isn't working for me

这是完整的工作代码(如果我复制粘贴,该代码将起作用)

import turtle
import os

wn = turtle.Screen()
wn.title("Pong")
wn.bgcolor("black")
wn.setup(width=800, height=600)
wn.tracer(0)


# Ball
ball = turtle.Turtle()
ball.speed(0)
ball.shape("circle")
ball.color("white")
ball.penup()
ball.goto(0, 0)
ball.dx = 0.2
ball.dy = 0.2

# Main game loop
while True:
    wn.update()

    # Move the ball
    ball.setx(ball.xcor() + ball.dx)
    ball.sety(ball.ycor() + ball.dy)

我希望球会移动,但是在我的代码中它不会开始移动。

1 个答案:

答案 0 :(得分:0)

感谢cdlane测试代码!它使我调试其他东西,然后找到了它。就是这样:

if pelota.xcor() > 390:
    pelota.goto(0, 0)
    pelota.dx *= -1

if pelota.xcor() > -390: # This little mistake was reseting the ball and I thought it wasn't moving at all
    pelota.goto(0, 0)
    pelota.dx *= -1