【问题标题】:How to make a turtle's shape an image in Python?如何在 Python 中使海龟的形状成为图像?
【发布时间】:2018-11-27 03:49:52
【问题描述】:

我想用我自己的形象为乌龟的形状制作一个小游戏。我已将程序和图像放在同一目录中。每当我运行代码时,它都会说:


文件“C:\Users\Nobody PC\Desktop\THE PROJECT.py”,第 51 行,在 p.shape('熊') 文件“C:\Users\Nobody\AppData\Local\Programs\Python\Python36-32\lib\turtle.py”,第 2777 行,形状 self.turtle._setshape(名称) 文件“C:\Users\Nobody\AppData\Local\Programs\Python\Python36-32\lib\turtle.py”,第 2493 行,在 _setshape 如果 self._type == "多边形" == screen._shapes[shapeIndex]._type: AttributeError: 'str' 对象没有属性 '_type'


我的代码不包含任何关于字符串的内容(我认为):


import turtle as t
bear =  "bear.png"
p = t.Turtle()
t.register_shape('beara',bear)
t.bgcolor('black')
p.shape('beara')

我做到了:

t.register_shape('beara',"bear.png")

但仍然有同样的错误。

【问题讨论】:

  • 根据the docs,这不是你使用该功能的方式。
  • 你的意思是我应该使用 gif 文件而不是 png 文件?
  • 是的,使用 gif 并将其设为第一个(也是唯一一个)参数。
  • 我想我在引入/制作形状和引入图像之间感到困惑。谢谢。

标签: python image turtle-graphics


【解决方案1】:

我不认为 turtle 模块接受 ,png 作为你必须使用 gif 图像的形状。在您的代码中,只需将图像替换为 gif 图像并希望它会起作用 看看这个....

import turtle

t = turtle.Turtle()
screen = turtle.Screen()

screen.addshape('shap1.gif')


t.shape('shap1.gif')
screen.mainloop()

【讨论】:

    【解决方案2】:

    除了使用 PNG 而不是 GIF 之外,您还没有正确调用 turtle 方法。我将强制使用 OOP 语法,而不是您使用的函数语法,以使方法所有权更清晰:

    from turtle import Turtle, Screen
    
    image = "bear.gif"
    
    screen = Screen()
    screen.bgcolor('black')
    screen.register_shape(image)
    
    turtle = Turtle(shape=image)
    
    # ...
    
    screen.mainloop()
    

    请注意,当使用图像作为光标时,文件的名称就是形状的名称,您不必为它定义自己的名称(与多边形不同。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 2014-03-18
      • 2016-04-29
      • 2020-05-11
      • 2017-09-10
      • 1970-01-01
      相关资源
      最近更新 更多