Почему спрайту необходимо установить переменную для импорта в пакет; спрайт-лист не

У меня есть две функции. Оба работают, однако я бы хотел, чтобы 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)

0 ответов

Другие вопросы по тегам