Python龟:旋转自定义光标图像

g6baxovj  于 2023-03-04  发布在  Python
关注(0)|答案(3)|浏览(206)

我们正在尝试一个坦克游戏在我的类。我可以加载坦克图像,但图像不旋转。我做了搜索,但无法找到一个解决方案(或一个简单的,如果它存在)。
这是我目前所知道的(非常基本的)。我希望有一个简单的解决方案来旋转图像向左/向右。

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

qhhrdooz1#

示例中不清楚的是,当使用tank.shape("turtle")时,可以看到海龟改变方向,但当使用tank.shape(tankImage)时,看不到任何移动,这在turtle documentation for addshape()中有介绍:
注意:当转动海龟时,图像形状不旋转,因此它们不显示海龟的方向!
简单的答案是你不能这样做。然而,如果你能用多边形绘制坦克,那么你可以定义一个正确旋转的光标。参见my answer to "Change appearance of turtle"坦克多边形的例子以及my answer to "Logic error in python turtle"解释了如何调整坦克绘图的方向以正确旋转。

roqulrg3

roqulrg32#

我知道这是一个老问题,但从技术上讲,我找到了一种方法,它是不可能的,是有多个图像的任何位置,你想要的(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)

这是动画的一个原则(为你想要的任何动作改变帧),它起作用了。

vxbzzdmp

vxbzzdmp3#

**turtle.settiltangle(angle)**帮助我解决了这个问题!但是,我使用了一个预置的“海龟”符号,而不是一个图像。我的“海龟”符号可以有几个方向。它只帮助我旋转了一次符号。

相关问题