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

时间:2018-01-03 18:02:40

标签: image python-3.x turtle-graphics

我们正在课堂上尝试坦克游戏。我能够加载坦克图像,但图像不旋转。我做了一个搜索,但找不到解决方案(如果存在,则为简单的解决方案)。

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

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

2 个答案:

答案 0 :(得分:1)

我知道这是一个老问题,但从技术上讲,我发现无法解决这个问题,并且针对您想要的任何位置(face_left,faceing_right等)具有多个图像,并在Right / Left(等)上更新图像功能。

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)

这是动画的原理(可以根据需要移动任意帧),并且有效。

答案 1 :(得分:0)

您的示例中不清楚的是,当您使用tank.shape("turtle")时,您可以看到乌龟改变方向,但是当您使用tank.shape(tankImage)时,您看不到任何移动。 addshape()的{​​{3}}中包含此内容:

  

注意:转动乌龟时图像形状不会旋转,所以它们会这样做   不显示乌龟的标题!

简单的答案是你不能这样做。但是,如果您能够使用多边形绘制坦克,则可以定义正确旋转的光标。请参阅turtle documentation这是一个坦克多边形示例以及my answer to "Change appearance of turtle",它解释了如何确定坦克绘图的正确转向。