def main(stdscr): display = interface.Interface(stdscr) load_sprites() current_scene = None def switch_scene(scene): current_scene = scene current_scene = StartScene(display) key = None while key != 'QUIT' and current_scene.game_over != True: key = display.get_input() current_scene.update(display, key) if current_scene.next_scene != None: current_scene = current_scene.next_scene display.__uninit__()
def __init__(self, position, sprite_key, name='entity', hp=100, max_hp=100): super(Entity, self).__init__() self.sprites = load_sprites() self.sprite = self.sprites[sprite_key] self.rect = pg.rect.Rect( position, (self.sprite.width * self.sprite.scale, self.sprite.height * self.sprite.scale)) self.name = name self.hp = hp self.max_hp = max_hp self.alive = True
def export_chr(chr_file, png_file, palette=palette, width=8): sprs = sprite.load_sprites(chr_file) spr_len = sprite.length(sprs) height = spr_len / width size = (width * 8, height * 8) img = Image.new('RGB', size) draw = ImageDraw.Draw(img) for s_index in range(spr_len): spr = sprite.get_sprite(s_index, sprs) dx = s_index % width dy = s_index / width for y in range(8): for x in range(8): color = spr[y][x] draw.point((x+(8*dx),y+(8*dy)), palette[color]) img.save(png_file, 'PNG')
def export_nametable(nametable_file, chr_file, png_file, palette=palette): nts = nametable.load_nametable(nametable_file) sprs = sprite.load_sprites(chr_file) nt = nametable.get_nametable(0, nts) size = (256, 256) img = Image.new('RGB', size) draw = ImageDraw.Draw(img) nt_index = 0 num_nt = nametable.length(nts) for y in range(32): for x in range(32): dx = nt_index / 32 dy = nt_index % 32 spr_index = nt[y][x] + 256 spr = sprite.get_sprite(spr_index, sprs) draw_sprite(spr, dx, dy, draw, palette) nt_index += 1 img.save(png_file, 'PNG')
def import_nametable(png_file, chr_file, nametable_file, palette=palette): image = Image.open(png_file) sprs = sprite.load_sprites(chr_file) nametable = read_nametable(image, sprs, palette) write_bin_code(nametable, nametable_file)