From 98ff7fdbac32aa237d84f3b31595957276161da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D0=B0=D0=BF?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BA=D0=BE?= Date: Thu, 20 Jun 2024 23:08:37 +0300 Subject: [PATCH] d --- v5/Window.py | 96 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 37 deletions(-) diff --git a/v5/Window.py b/v5/Window.py index b195883..bf19eee 100644 --- a/v5/Window.py +++ b/v5/Window.py @@ -4,35 +4,47 @@ CELL = 25 HEIGHT = 600 WIDTH = 900 +images = [ + ["res/tiles_0.png", 0, 0, 75, 100], + ["res/tiles_0.png", 75, 0, 75, 100], + ["res/tiles_1.png", 0, 0, 75, 100], +] +positions = [ + [9, 1], + [14, 1], + [19, 1], + [24, 1], + + [9, 7], + [14, 7], + [19, 7], + [24, 7], + + [9, 13], + [14, 13], + [19, 13], + [24, 13], + + [9, 19], + [14, 19], + [19, 19], + [24, 19], +] +textures = None +deselected_tiles = [] +selected_tiles = [] + class Window(arcade.Window): def __init__(self): super().__init__(WIDTH, HEIGHT, "OGS Memory") arcade.set_background_color(arcade.color.WHITE) self.all_sprites = arcade.SpriteList() - positions = [ - [9, 1], - [14, 1], - [19, 1], - [24, 1], - - [9, 7], - [14, 7], - [19, 7], - [24, 7], - - [9, 13], - [14, 13], - [19, 13], - [24, 13], - - [9, 19], - [14, 19], - [19, 19], - [24, 19], - ] - - add_tiles(self.all_sprites, positions) + textures = load_textures(images) + deselected_tiles = create_deselected_tiles(positions, textures) + for t in deselected_tiles: + self.all_sprites.append(t) + #selected_tiles = create_selected_tiles(positions, textures) def on_draw(self): arcade.start_render() @@ -47,17 +59,27 @@ class Window(arcade.Window): def on_update(self, delta): self.all_sprites.update_animation() -def add_tiles(sprites, positions): - id = 0 - for p in positions: - tile = arcade.AnimatedTimeBasedSprite() - tile.guid = id - id += 1 - for i in range(2): - tex = arcade.load_texture("res/tiles_0.png", x = i*75, y = 0, width = 75, height = 100) - tile.append_texture(tex) - a = arcade.sprite.AnimationKeyframe(i, 700, tex) - tile.frames.append(a) - tile.center_x = CELL * 2 + p[0] * CELL - tile.center_y = HEIGHT - CELL * 2 - p[1] * CELL - sprites.append(tile) + +def load_textures(images): + ts = [] + for (id, img) in enumerate(images): + tex = arcade.load_texture(img[0], x = img[1], y = img[2], width = img[3], height = img[4]) + ts.append(tex) + return ts + +def create_deselected_tiles(positions, textures): + tiles = [] + for (id, p) in enumerate(positions): + tile = arcade.AnimatedTimeBasedSprite() + tiles.append(tile) + tile.guid = id + tile.texture = textures[0] + # Animation between two textures. + a1 = arcade.sprite.AnimationKeyframe(0, 700, textures[0]) + a2 = arcade.sprite.AnimationKeyframe(1, 700, textures[1]) + tile.frames.append(a1) + tile.frames.append(a2) + # Position. + tile.center_x = CELL * 2 + p[0] * CELL + tile.center_y = HEIGHT - CELL * 2 - p[1] * CELL + return tiles