我目前正处于一个介绍编码类,对于我的最终项目,我正在尝试学习pyglet模块来创建一个背景中带有图片的游戏,并在左侧有一个用户可以跳转的角色,以及然后以设定的速度从右侧跳跃,用户将跳过。我需要使用类进行赋值,并且我真的很难使用创建精灵类。继承了我目前的代码:
import pyglet
window = pyglet.window.Window(700,700)
image = pyglet.image.load('IMG_3315.jpg')#use 10x10 in. image
#image_2 = pyglet.image.load('IMG_3559.jpg')
main_batch = pyglet.graphics.Batch()
score_label = pyglet.text.Label(text="Score: 0", x=570, y=650, batch=main_batch)
the_jump = pyglet.image.load("jumpsi.png")
#horse = pyglet.sprite.Sprite(image_2, x = 50, y = 50)
# background_sound = pyglet.media.load(
# 'Documents/Leave The Night On.mp3',
# streaming=False)
class Jump(pyglet.sprite.Sprite):
def __init__(self, img, x=0, y=0, blend_src=770, blend_dest=771, batch=None, group=None, usage='dynamic', subpixel=False):
self.img = the_jump
self.x = 50
self.y = 50
def draw(self):
self.draw()
# verticle = Jump('verticle')
@window.event
def on_draw():
window.clear()
image.blit(0, 0)
main_batch.draw()
window = Jump()
#horse.draw()
#background_sound.play()
if __name__ == "__main__":
sprite = Jump()
pyglet.app.run()
我知道它可能是错的,但我尝试的其他一切(使用预先存在的游戏作为例子)也没有用。
我当前的错误消息是:
Traceback (most recent call last):
File "jumper.py", line 39, in <module>
sprite = Jump()
TypeError: __init__() takes at least 2 arguments (1 given)
我只是真的陷入困境,一直试图想出这个问题几个小时而没有任何回旋余地。我们将非常感谢您提供的任何帮助。非常感谢!
更新:我最近更改了代码,注意到Gustav指出的问题,并将结束调用更改为
if __name__ == "__main__":
sprite = Jump(the_jump)
pyglet.app.run()
但现在我收到了错误
Traceback (most recent call last):
File "jumper.py", line 39, in <module>
sprite = Jump(the_jump)
File "jumper.py", line 21, in __init__
self.x = 50
File "/Library/Python/2.7/site-packages/pyglet/sprite.py", line 459, in _set_x
self._update_position()
File "/Library/Python/2.7/site-packages/pyglet/sprite.py", line 393, in _update_position
img = self._texture
AttributeError: 'Jump' object has no attribute '_texture'
答案 0 :(得分:0)
错误消息告诉您错误所在的确切位置以及确切错误。您正在初始化Jump类而不传入所需参数img的参数。
您可以通过更改初始化方法或调用Jump()来解决此问题。