2017-04-16 118 views
-1

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

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() 

我想要做的红龟追逐蓝色的龟,但它无法正常工作。任何帮助将非常感激!

+0

不能说出为什么downvote这个问题。 – Kevman

+0

你有什么尝试?为什么它不起作用? – tburrows13

回答

1

你失踪的是计算机控制的蓝色运动/跟随乌龟。我们可以通过添加一个ontimer()事件处理程序来调用setheading()以保持蓝色/后面是红色/运行。再加上一点蓝色/后跟的前进动作。事情是这样的:通过改变在其forward()语句将量

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() 

你可以调整蓝色的性能/跟进。一旦你达到1以上,你会惊讶它赶上红/跑。

您需要添加代码来检测海龟碰撞时的相关情况。