蟒蛇龟:旋转自定义光标图像



我们正在尝试在我的班级中玩坦克游戏。我可以加载坦克图像,但是图像不会旋转。我进行了搜索,但找不到解决方案(或简单的解决方案,如果存在(。

这是我到目前为止所拥有的(非常基本的(。我希望有一个简单的解决方案来旋转图像以向左/向右转动。

import turtle
screen = turtle.Screen()
tankImage = "tank.gif"
screen.addshape(tankImage)
tank = turtle.Turtle()
tank.shape("turtle")
def left():
    tank.left(20)
def right():
    tank.right(20)
screen.listen()
screen.onkey(left, "Left")
screen.onkey(right, "Right")
turtle.mainloop()

在你的例子中不清楚的是,当你使用tank.shape("turtle")时,你可以看到改变方向,但当你使用tank.shape(tankImage)时,你看不到任何运动。 这在addshape()的海龟文档中有所介绍:

注意:转动时图像形状不会旋转,因此它们会旋转 不显示的标题!

简单的答案是你不能那样做。 但是,如果您能够使用多边形绘制坦克,则可以定义正确旋转的光标。 请参阅我对"更改海龟的外观"的回答,这是一个坦克多边形示例,以及我对"蟒蛇龟中的逻辑错误"的回答,该答案解释了如何定位坦克图纸以正确转动。

我知道

这是一个老问题,但从技术上讲,我找到了一种解决方法,并且为您想要的任何位置(facing_left、facing_right 等(提供多个图像并更新右/左(等(功能上的图像。

tank = turtle.Turtle()
tank.shape("tank_up.gif")
def left():
    tank.shape("tank_left.gif")
    tank.left(20)
def right():
    tank.shape("tank_right.gif")
    tank.right(20)

这是动画的原理(随心所欲地更改帧(,并且它奏效了。

turtle.settiltangle(angle( 帮助我解决了这个问题!但是,我使用了预先构建的"符号,而不是图像。我的"符号可以有多个方向。它帮助我只旋转了一次符号。

最新更新