|
- import arcade
-
- 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()
-
- 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()
- self.all_sprites.draw()
-
- def on_mouse_press(self, x, y, button, key_modifiers):
- print("click", x, y)
- sprites = arcade.get_sprites_at_point([x, y], self.all_sprites)
- if len(sprites) == 1:
- print("selected: ", sprites[0].guid)
-
- def on_update(self, delta):
- self.all_sprites.update_animation()
-
-
- 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
|