【问题标题】:Make one Python turtle chase another turtle让一只蟒蛇追逐另一只乌龟
【发布时间】:2017-04-16 18:07:39
【问题描述】:

我正在创建一个游戏,用户使用键盘移动一只乌龟以避免另一只乌龟。这是我的代码:

import turtle
playGround = turtle.Screen()
playGround.screensize(500, 500)
playGround.title("Turtle Keys")

run = turtle.Turtle()
follow = turtle.Turtle()
run.shape("turtle")
follow.shape("turtle")
run.color("blue")
follow.color("red")
run.penup()
follow.penup()
run.st()

def k1():
    run.forward(45)
def k2():
    run.left(45)
def k3():
    run.right(45)
def k4():
    run.back(45)
def quitThis():
    playGround.bye()
playGround.onkey(k1, "Up")  # the up arrow key
playGround.onkey(k2, "Left") # the left arrow key
playGround.onkey(k3, "Right") # you get it!
playGround.onkey(k4, "Down")
playGround.onkey(quitThis,'q')
playGround.listen()

我想让红海龟追蓝海龟但是没用。

【问题讨论】:

  • 不知道为什么不赞成这个问题。
  • 你试过什么?为什么它不起作用?

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


【解决方案1】:

您缺少的是蓝色/跟随海龟的计算机控制运动。我们可以通过添加一个ontimer() 事件处理程序来做到这一点,该处理程序在towards() 上调用setheading() 以保持蓝色/跟随面向红色/运行。再加上蓝色/跟随的一点向前运动。像这样的:

from turtle import Turtle, Screen

playGround = Screen()
playGround.screensize(500, 500)
playGround.title("Turtle Keys")

run = Turtle("turtle")
run.speed("fastest")
run.color("blue")
run.penup()
run.setposition(250, 250)

follow = Turtle("turtle")
follow.speed("fastest")
follow.color("red")
follow.penup()
follow.setposition(-250, -250)

def k1():
    run.forward(10)

def k2():
    run.left(45)

def k3():
    run.right(45)

def k4():
    run.backward(10)

def quitThis():
    playGround.bye()

def follow_runner():
    follow.setheading(follow.towards(run))
    follow.forward(1)
    playGround.ontimer(follow_runner, 10)

playGround.onkey(k1, "Up")  # the up arrow key
playGround.onkey(k2, "Left")  # the left arrow key
playGround.onkey(k3, "Right")  # you get it!
playGround.onkey(k4, "Down")
playGround.onkey(quitThis, 'q')

playGround.listen()

follow_runner()

playGround.mainloop()

您可以通过在 forward() 语句中更改蓝色/跟随的移动量来调整其性能。一旦超过 1,您会惊讶于它以多快的速度赶上 red/run。

您需要添加代码来检测海龟何时发生碰撞以及随后发生的任何事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2022-12-09
    • 1970-01-01
    相关资源
    最近更新 更多