首页 > 解决方案 > 当它撞到一个圆圈时如何让乌龟重置?

问题描述

代码没有错误,我只需要添加一些东西。这是海龟的代码:

#move is the spaceship


move = turtle.Turtle()

showturtle()
turtle.hideturtle()
move.setposition(-500,0)
move.pencolor('cyan')
move.fillcolor("blue")
move.penup()
move.speed()
move.shapesize(3,3,3)



def k1():
   move.forward(25)

     

def k2():
   move.left(30)


def k3():
   move.right(30)

   
def k4():
   move.backward(15)





wn.onkey(k1, "Up")
wn.onkey(k2, "Left")
wn.onkey(k3, "Right")
wn.onkey(k4, "Down")

这是圆圈:

asteroid = Turtle()

if move.distance(asteroid)<5:
    move.goto(0,0)
asteroid.pencolor('grey')
asteroid.fillcolor('grey')
asteroid.begin_fill()
asteroid.hideturtle()
asteroid.penup()
asteroid.speed(15)
asteroid.setposition(randint(-400,400), randint(-400,400))
asteroid.pendown()
asteroid.circle(35)
asteroid.end_fill()

当“移动”击中“小行星”时,我需要程序重新启动游戏。该程序运行良好,但我只需要添加它。谢谢你。

标签: pythonturtle-graphicspython-turtle

解决方案


您需要跟踪对象的位置并定期比较它们。

该函数.pos为您提供对象的当前位置。

您应该创建一个循环来检查对象的位置是否相同。

if move.pos() == asteroid.pos():
   print("Collision!")

您还必须将对象的大小添加到这些值中(例如,move_size = move.pos() + your_shape_size对不起,我从未使用过海龟),因为两条边可能会相互碰撞,这也是一种碰撞。


推荐阅读