我在游戏中使用动画,但我发现了错误..你可以帮帮我吗?)
或者我是否需要添加所有代码?
class Animation:
def __init__(self, x, y, sprites=None, time=100):
self.x = x
self.y = y
self.sprites = sprites
self.time = time
self.work_time = 0
self.skip_frame = 0
self.frame = 0
def update(self, dt):
self.work_time += dt
self.skip_frame = self.work_time // self.time
if self.skip_frame > 0:
self.work_time = self.work_time % self.time
self.frame += self.skip_frame
if self.frame >= len(self.sprites):
self.frame = 0
def get_sprite(self):
return self.sprites[self.frame]
Traceback (most recent call last):
File "C:\Users\Zyzz\Desktop\game\bin.py", line 210, in <module>
target.update(dt)
File "C:\Users\Zyzz\Desktop\game\bin.py", line 98, in update
self.skip_frame = self.work_time // self.time
TypeError: unsupported operand type(s) for //: 'int' and 'module'
答案 0 :(得分:2)
我在代码中看到的内容与python2 / python3中的代码无关。
这里self.time = time
,时间似乎是导入的模块
您正在尝试self.skip_frame = self.work_time // self.time
self.work_time
中早期def __init__(...)
初始化为python-tools
它试图在int(0)和模块(时间)之间进行操作,这是不可接受的。
但是根据您的问题标题,如果您希望您的代码从python2.x迁移到python3.x兼容,那么可以使用一个包[{3}}
您可以使用$ 2to3 example.py
$ 2to3 -w example.py # -w for write the changes back to file
{{1}}