【问题标题】:Create more than two turtles and moving them创建两个以上的海龟并移动它们
【发布时间】:2017-11-19 21:51:42
【问题描述】:

如何在一个屏幕中制作几只海龟并让它们同时移动一只?

【问题讨论】:

  • 谁能帮帮我?
  • 你可以创建下一个海龟turtle2 = turtle.Turtle()并使用它turtle2.goto(100, 100)

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


【解决方案1】:

您可以使用turtle.Turtle()创建许多海龟,然后您可以一个一个地使用它来进行小动作。海龟几乎同时移动。

import turtle

t1 = turtle.Turtle()
t2 = turtle.Turtle()

for x in range(36):
    # first turtle makes small move
    t1.left(10)  
    t1.forward(10)
    # second turtle makes small move
    t2.right(10)
    t2.forward(10)

turtle.done()

如果你想一直移动(同时做其他事情)
那么你可以使用ontimer()来做一些小动作。

import turtle

def move_t1():
    # first turtle makes small move
    t1.left(10)  
    t1.forward(10)

    # repeat after 100ms
    turtle.ontimer(move_t1, 100)

def move_t2():
    # second turtle makes small move
    t2.right(10)  
    t2.forward(10)

    # repeat after 100ms
    turtle.ontimer(move_t2, 100)

t1 = turtle.Turtle()
t2 = turtle.Turtle()

move_t1() # first turtle makes first move
move_t2() # second turtle makes first move

turtle.done()

【讨论】:

  • 好吧,问题是我需要为他们开设一堂课。我需要为 Moth 和灯光制作一个课程,并且需要跟踪灯光的位置。因此,只要飞蛾到达光的半径,它就会死亡。那么,我该怎么做呢?我需要强制具有以下功能:构造函数 init (self, initialPosition) • 方法 move(self, newPosition) • 方法 moveToLight(self, lightPosition) • 方法 getPosition(self)
  • 我在 GitHub main-3.py 上有第三个示例。它使用龟类。您可以使用鼠标左键在屏幕上添加更多海龟,使用鼠标右键停止/启动所有海龟。
  • 你的课应该和我的课差不多。 __init__ 应该是相似的,getPosition 应该很简单 - 它应该使用 t.position()。至于move()moveToLight 那么应该是相似的,他们应该使用ontimer 来移动海龟 - 或者他们应该将目标位置保留在变量中并运行使用该变量移动海龟的其他函数。
  • 但是如何设置灯光参数?
  • 您的意思是如何将光照位置发送给海龟还是什么?你可以创建函数来获取光照位置并发送给海龟,它使用ontimer 重复它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-28
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多