【问题标题】:How do I stop my python turtle from moving?如何阻止我的蟒蛇移动?
【发布时间】:2020-07-12 11:40:58
【问题描述】:

所以我正在用 python turtle 制作一个游戏,玩家通过按下相应的箭头键左右移动海龟。乌龟不能以任何方式上下移动。只有左和右。但是当我的乌龟达到某个 xcor 值时,我希望乌龟停止移动,即使我仍在按下那个箭头键。但仍然可以用另一个箭头键向相反方向移动。

def playerRight(): 
  player.goto(player.xcor() + 8,player.ycor())
  if player.xcor() >= 200:

def playerLeft():
  player.goto(player.xcor() - 8,player.ycor())
  if player.xcor() <= -200:

screen.onkey(playerRight,'Right')
screen.onkey(playerLeft,'Left')
screen.listen()

但我不知道在我的条件句中放什么。非常感谢您的回复!谢谢!

【问题讨论】:

  • 试试screen.onkeyrelease函数
  • 对不起。我不熟悉那个功能。我如何以及在哪里使用它?可以举个例子吗?
  • 您可以像使用 screen.onkey 一样使用它。例如,如果你停止海龟的方法是playerStop,你会想要screen.onkeyrelease(playerStop,'Right')screen.onkeyrelease(playerStop,'Left')
  • 我认为你没有理解我的问题 Minion Jim。一旦玩家达到某个 xcor 值,我希望海龟停止。不是当玩家释放箭头键时。我正在制作的游戏类似于太空入侵者。如果您玩过或看过该游戏,玩家会左右移动,如果他们向左或向右移动很远,就会有一道看不见的墙阻止玩家离开屏幕。
  • 好吧,从逻辑上考虑。当满足if 条件时,函数调用后player.xcor() 的值应该是什么

标签: python graphics controls conditional-statements turtle-graphics


【解决方案1】:

也许尝试改变你的代码,只在它不会走得太远的情况下移动海龟,就像这样。

def playerRight(): 
  if player.xcor() <= 192:
    player.goto(player.xcor() + 8,player.ycor())

现在它只会向右移动,前提是它不会让它走得很远。然后你对playerLeft() 函数做同样的事情

你也有你的不平等()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 2010-10-27
    • 1970-01-01
    • 2020-05-17
    • 2020-06-06
    相关资源
    最近更新 更多