Почему спрайту необходимо установить переменную для импорта в пакет; спрайт-лист не
У меня есть две функции. Оба работают, однако я бы хотел, чтобы import_sprite не требовал от меня возврата объекта Sprite. Это должно работать как import_spritesheet. Однако, если я не установлю его в переменную, объект не будет отображаться в пакете.
def import_sprite(image, x, y, batch):
"""Import single image into batch."""
img = pyglet.resource.image(image)
sprite = pyglet.sprite.Sprite(img, x=x, y=y, batch=batch)
return sprite
def import_spritesheet(spritesheet, rows, cols, item_width, item_height, x, y, batch, anim_slice=slice(0, None, 1), anim_speed=.1, should_loop=True):
"""Produce sprite sheet animation."""
sprite_sheet = pyglet.resource.image(spritesheet)
sprite_sheet_seq = pyglet.image.ImageGrid(sprite_sheet, rows, cols, item_width=item_width, item_height=item_height)
sprite_sheet_texture = pyglet.image.TextureGrid(sprite_sheet_seq)
sprite_sheet_anim = pyglet.image.Animation.from_image_sequence(sprite_sheet_texture[anim_slice], anim_speed, loop=should_loop)
pyglet.sprite.Sprite(sprite_sheet_anim, x=x, y=y, batch=batch)
@screen.event
def on_draw():
"""Draw things as batch."""
screen.clear()
main_batch.draw()
s1 = import_sprite("sprite.png", 400, 300, main_batch)
import_spritesheet("sh-enemy.png", 1, 15, 100, 100, 400, 400, main_batch, slice(0, None, 1), .05, True)