我正在尝试使用乌龟图形编写python游戏,但我遇到了一些障碍。当我运行我的代码时,它允许我引导乌龟,然后一大堆点开始出现,然后它有递归深度错误。
我遇到问题的代码部分是:
def move():
colormode(255)
global turtle
global moving
x = randomColor()
if moving:
for i in range(1):
turtle.penup()
turtle.shape('turtle')
turtle.shapesize(.5, .5, .5)
turtle.color(x)
turtle.forward(5)
ontimer(move, 10 // FRAMES_PER_SECOND)
x = randrange(-250, 250)
y = randrange(-250, 250)
pen1 = Pen()
pen1.hideturtle()
pen1.penup()
pen1.goto(x, y)
pen1.dot(10, "red")
if turtle.pos() == pen1.pos():
pen1.clear()
pen1.goto(x, y)
我该如何解决这个问题?我希望当乌龟越过它时点会消失,然后生成一个新的随机点,一次只能产生一个点。
答案 0 :(得分:0)
如果相同,请在背景颜色相同的位置绘制一个点(白色我认为)。
3.1。然后创建新的随机x,y并重绘红点。
答案 1 :(得分:0)
我要做的就是定义一只具有食物形状和颜色的第二只乌龟。然后盖上那只乌龟来生成食物,保留stamp()
电话的结果,这样你以后就可以打电话给clearstamp(stamp)
。我已经在下面设置了很多食物,乌龟追逐它们直到它们全部消失:
from turtle import Turtle, Screen
from random import randrange
WIDTH, HEIGHT = 500, 500
FRAMES_PER_SECOND = 24
TARGET_SIZE = 10
POSITION, STAMP = 0, 1
def move():
global meal
x, y = meal[POSITION]
tx, ty = turtle.position()
if x - TARGET_SIZE // 2 < tx < x + TARGET_SIZE // 2 and y - TARGET_SIZE // 2 < ty < y + TARGET_SIZE // 2:
food.clearstamp(meal[STAMP])
if meals:
meal = meals.pop()
else:
meal = None
if meal:
turtle.setheading(turtle.towards(meal[POSITION]))
turtle.forward(turtle.speed())
screen.ontimer(move, 1000 // FRAMES_PER_SECOND)
screen = Screen()
screen.setup(int(WIDTH * 1.1), int(HEIGHT * 1.1)) # size window but leave a border
turtle = Turtle(shape='turtle')
turtle.speed("fast")
turtle.penup()
food = Turtle(shape="circle", visible=False)
food.shapesize(0.5, 0.5)
food.color("red")
food.penup()
meals = []
for _ in range(10):
x = randrange(-WIDTH // 2, WIDTH // 2)
y = randrange(-HEIGHT // 2, HEIGHT // 2)
food.goto(x, y)
meals.append(((x, y), food.stamp()))
meal = meals.pop()
screen.ontimer(move, 1000 // FRAMES_PER_SECOND)
screen.exitonclick()
这只乌龟只是追逐一点食物,你可以修改代码,让他去最近的食物(因为你有他们的位置的食物清单)或自己控制乌龟。
答案 2 :(得分:0)
执行: (名).UP() (名称)的.forward(10000)