Im actuellement dans une classe de codage d'introduction et pour mon projet, je suis en train d'apprendre le module pyglet pour créer un jeu avec une image en arrière-plan, et ont un caractère sur la gauche qu'un utilisateur peut faire sauter, puis les sauts viennent de la droite à une vitesse définie que l'utilisateur va sauter par-dessus. J'ai besoin d'utiliser des classes pour l'affectation, et j'ai vraiment du mal à créer une classe d'image-objet. Heres mon code actuel:Création d'un jeu à l'aide pyglet (sprites en particulier)
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()
je sais qu'il ya probablement mal, mais tout ce que j'ai essayé (en utilisant des jeux pré-existante comme exemples) n'a pas fonctionné non plus.
mon message d'erreur actuel est:
Traceback (most recent call last):
File "jumper.py", line 39, in <module>
sprite = Jump()
TypeError: __init__() takes at least 2 arguments (1 given)
im vraiment coincé et ont essayé de comprendre cela pendant des heures et ne fait aucune marge de manœuvre. toute aide que vous pouvez offrir serait grandement appréciée. Merci beaucoup!
MISE À JOUR: i récemment changé le code, en remarquant le problème que Gustav a souligné, et changer l'appel final à
if __name__ == "__main__":
sprite = Jump(the_jump)
pyglet.app.run()
mais maintenant je reçois l'erreur
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'