经过几周的尝试,我还没有找到解决这个问题的办法,一只乌龟完全停了下来,另一只乌龟则快了2-3倍。我怎样才能解决这个问题?你必须把他们两个都移动一点,才能遇到问题。网站上还有:复制你知道吗
我尝试过移动wn.listen()
命令,但只切换了哪个海龟停止了,哪个没有。我尝试过将forward()
命令切换到goto()
失败,我尝试过使用特定于方向的移动(也没有成功):
import turtle
import sys
player1 = turtle.Turtle()
player1.up()
player1.goto(0,350)
player1.right(90)
player1.down()
player2 = turtle.Turtle()
wn = turtle.Screen()
#preGame setup
player2.up()
player2.goto(0,-350)
player2.left(90)
player2.down()
player2.color("blue")
player1.color("red")
#main game loop
player1.speed(0)
player2.speed(0)
k = 0
def kr():
player1.left(90)
def kl():
player1.right(90)
wn.onkey(kr, "d")
wn.onkey(kl, "a")
def k1():
player2.right(90)
def k2():
player2.left(90)
wn.onkey(k1, "k")
wn.onkey(k2, "l")
wn.listen()
while True:
player1.forward(1)
player2.forward(1)
while player1.xcor() < (-350) or player1.xcor() > (350) or player1.ycor() > (350) or player1.ycor() < (-350):
player1.back(30)
while player2.xcor() < (-350) or player2.xcor() > (350) or player2.ycor() > (350) or player2.ycor() < (-350):
player2.back(30)
if player1.pos() == player2.pos():
print ("DONT CRASH INTO THE OTHER PLAYER")
sys.exit()
我原以为它们都会无限期地继续移动,但一个总是停下来,另一个的速度是原来的两倍。你知道吗
将keyListener移到你的循环外-将它们放在while循环内将重新附加它们,并始终重新定义函数,从而使你感到困惑。你知道吗
您需要设置它们一次而不是每隔几毫秒:
嵌套的
while
循环结构对您不利,并且对于像turtle这样的事件驱动环境无效。以下是您的程序的重做,以修复此问题并清理代码:看看这是否更符合你的期望/愿望。你知道吗
相关问题 更多 >
编程相关推荐