让海龟改变它的形象

getting turtle to change its image

我有一些代码,但一直出现此错误

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\turtle.py", line 686, in eventfun
    fun()
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\RPG.py", line 21, in up
    combat()
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\RPG.py", line 58, in combat
    enemy.shape(image)
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\turtle.py", line 2777, in shape
    self.turtle._setshape(name)
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\turtle.py", line 2506, in _setshape
    self._item = screen._createimage(screen._shapes["blank"]._data)
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\turtle.py", line 723, in _createimage
    return self.cv.create_image(0, 0, image=image)
  File "<string>", line 1, in create_image
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 2483, in create_image
    return self._create('image', args, kw)
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 2474, in _create
    *(args + self._options(cnf, kw))))
_tkinter.TclError: image "pyimage1" doesn't exist
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\turtle.py", line 686, in eventfun
    fun()
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\RPG.py", line 21, in up
    combat()
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\RPG.py", line 58, in combat
    enemy.shape(image)
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\turtle.py", line 2777, in shape
    self.turtle._setshape(name)
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\turtle.py", line 2506, in _setshape
    self._item = screen._createimage(screen._shapes["blank"]._data)
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\turtle.py", line 723, in _createimage
    return self.cv.create_image(0, 0, image=image)
  File "<string>", line 1, in create_image
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 2483, in create_image
    return self._create('image', args, kw)
  File "C:\Users\Travi\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 2474, in _create
    *(args + self._options(cnf, kw))))
_tkinter.TclError: image "pyimage1" doesn't exist

我的代码最简单是

import os
from turtle import Turtle,Screen
print(os.getcwd())
os.chdir('C:\Users\Travi\Downloads')
print(os.getcwd())
screen.register_shape("Crawfish_attack.gif")
Turtle.shape("Crawfish_attack.gif")

这样试试:

import os
from turtle import Turtle, Screen

print(os.getcwd())
os.chdir('C:\Users\Travi\Downloads')
print(os.getcwd())

screen = Screen()
screen.register_shape('Crawfish_attack.gif')

crawfish = Turtle()
crawfish.shape('Crawfish_attack.gif')

screen.exitonclick()

您正在对尚未创建的实例调用方法,并在 class 上调用实例方法。如果以上方法适合你,你应该也可以结合这些:

crawfish = Turtle()
crawfish.shape('Crawfish_attack.gif')

进入:

crawfish = Turtle('Crawfish_attack.gif')