Source code for visualizer.bytesprites.exampleBS
import os
import random
import os
os.environ['PYGAME_HIDE_SUPPORT_PROMPT'] = "hide"
import pygame as pyg
from visualizer.bytesprites.bytesprite import ByteSprite
from game.utils.vector import Vector
from visualizer.bytesprites.bytesprite_factory import ByteSpriteFactory
[docs]class AvatarBytespriteFactoryExample(ByteSpriteFactory):
"""
`Avatar Bytesprite Factory Example Notes`:
This is a factory class that will produce Bytesprite objects of the Avatar.
"""
[docs] @staticmethod
def update(data: dict, layer: int, pos: Vector, spritesheets: list[list[pyg.Surface]]) -> list[pyg.Surface]:
"""
This method will select which spritesheet to select from the ``ExampleSpritesheet.png`` file. For example,
the first if statement will return the second row of sprites in the image if conditions are met.
:param data:
:param layer:
:param pos:
:param spritesheets:
:return: list[pyg.Surface]
"""
# Logic for selecting active animation
if data['inventory'][data['held_index']] is not None:
return spritesheets[1]
elif random.randint(1, 6) == 6:
return spritesheets[2]
elif random.randint(1, 4) == 4:
return spritesheets[3]
else:
return spritesheets[0]
[docs] @staticmethod
def create_bytesprite(screen: pyg.Surface) -> ByteSprite:
"""
This file will return a new ByteSprite object that is to be displayed on the screen.
:param screen: ByteSprite
:return:
"""
return ByteSprite(screen, os.path.join(os.getcwd(), 'visualizer/spritesheets/ExampleSpritesheet.png'), 4,
4, AvatarBytespriteFactoryExample.update, pyg.Color("#FBBBAD"))