Python 碰撞检测程序赢得';不要在海龟身上工作

Python 碰撞检测程序赢得';不要在海龟身上工作,python,collision-detection,turtle-graphics,Python,Collision Detection,Turtle Graphics,当我运行程序时,它会冻结,无法工作。程序的要点是,当用户控制的海龟(由键绑定控制)的x和y位置坐标与其他海龟x和y位置坐标的距离小于10像素时,打印出一些内容 import turtle import random wn = turtle.Screen() wn.setup(width = 450, height = 450) player = turtle.Turtle() player2 = turtle.Turtle() def up(): y = player.ycor()

当我运行程序时,它会冻结,无法工作。程序的要点是,当用户控制的海龟(由键绑定控制)的x和y位置坐标与其他海龟x和y位置坐标的距离小于10像素时,打印出一些内容

import turtle
import random
wn = turtle.Screen()
wn.setup(width = 450, height = 450)
player = turtle.Turtle()
player2 = turtle.Turtle()

def up():

    y  = player.ycor()
    y = y + 5
    player.sety(y)
    if y>=310:
        player.sety(y-15)

def down():
    y = player.ycor()
    y = y - 5
    player.sety(y)
    if y<-310:
        player.sety(y+15)


def left():
    x = player.xcor()
    x = x - 5
    player.setx(x)
    if x<=-625:
        player.setx(x+15)


def right():
    x = player.xcor()
    x = x + 5
    player.setx(x)
    if x>=625:
        player.setx(x-15)

player.penup()
player.setpos(0,0)
player.showturtle()
player.shape("square")
wn.bgcolor("green")
player2.shape("square")
player2.penup()
player2.setpos(300,300)
player2.showturtle()

turtle.listen()
turtle.onkeypress(up,"Up")

turtle.onkeypress(left,"Left")

turtle.onkeypress(right,"Right")

turtle.onkeypress(down, "Down")


def checkcollision(player,player2):
        if abs(player.xcor() - player2.xcor()) < 10 and abs(player.ycor() - player2.ycor()) < 10:
            player.write("collision")


while True:
    checkcollision(player,player2)
导入海龟
随机输入
wn=tutle.Screen()
wn.设置(宽度=450,高度=450)
玩家=乌龟。乌龟()
player2=海龟。海龟()
def up():
y=player.ycor()
y=y+5
球员赛蒂(y)
如果y>=310:
球员赛蒂(y-15)
def down():
y=player.ycor()
y=y-5
球员赛蒂(y)

如果y我认为它冻结是因为代码中的循环:

为True时:
检查碰撞(玩家,玩家2)

它总是检查碰撞,将代码移动到移动功能
向上
向下
等,然后在移动后调用它

好问题。有一件事:当你运行它时,实际会发生什么?正如你所说,我把checkcollision放在击键函数中,效果很好,现在checkcollision工作了,但是现在我想以一定的速度移动第二只乌龟,但是乌龟没有移动,如图所示:player.penup()player.setpos(0,0)player.showturtle()player.shape(“square”)wn.bgcolor(“绿色”)player2.shape(“海龟”)player2.penup()player2.setpos(300300)player2.showturtle()player2.setheading(-100)player2.speed(2)唯一更改的代码是航向和速度。谢谢!别忘了接受解决你问题的答案。至于你的下一期,你将不得不问另一个问题,因为你不能在一个线程中组合它们。