Михаил Капелько 1 week ago
parent
commit
027682b9aa
1 changed files with 57 additions and 32 deletions
  1. +57
    -32
      v5/Window.py

+ 57
- 32
v5/Window.py View File

@@ -4,47 +4,54 @@ 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],
class Context:
def __init__(self):
self.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],
]

self.positions = [
[9, 1],
[14, 1],
[19, 1],
[24, 1],

[9, 7],
[14, 7],
[19, 7],
[24, 7],
[9, 7],
[14, 7],
[19, 7],
[24, 7],

[9, 13],
[14, 13],
[19, 13],
[24, 13],
[9, 13],
[14, 13],
[19, 13],
[24, 13],

[9, 19],
[14, 19],
[19, 19],
[24, 19],
]
textures = None
deselected_tiles = []
selected_tiles = []
[9, 19],
[14, 19],
[19, 19],
[24, 19],
]
self.textures = None
self.deselected_tiles = None
self.selected_tiles = None

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()
self.c = Context()
c = self.c

textures = load_textures(images)
deselected_tiles = create_deselected_tiles(positions, textures)
for t in deselected_tiles:
c.textures = load_textures(c.images)
c.deselected_tiles = create_deselected_tiles(c.positions, c.textures)
for t in c.deselected_tiles:
self.all_sprites.append(t)
c.selected_tiles = create_selected_tiles(c.positions, c.textures)
for t in c.selected_tiles:
self.all_sprites.append(t)
#selected_tiles = create_selected_tiles(positions, textures)

def on_draw(self):
arcade.start_render()
@@ -53,8 +60,12 @@ class Window(arcade.Window):
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)
id = sprites[0].guid
print("selected id: ", id)
#print("deselected_tiles: ", self.c.deselected_tiles)
#print("selected_tiles: ", self.c.selected_tiles)
self.c.deselected_tiles[id].visible = False
self.c.selected_tiles[id].visible = True

def on_update(self, delta):
self.all_sprites.update_animation()
@@ -83,3 +94,17 @@ def create_deselected_tiles(positions, textures):
tile.center_x = CELL * 2 + p[0] * CELL
tile.center_y = HEIGHT - CELL * 2 - p[1] * CELL
return tiles

def create_selected_tiles(positions, textures):
tiles = []
for (id, p) in enumerate(positions):
tile = arcade.Sprite()
tiles.append(tile)
tile.guid = id
tile.texture = textures[2]
# Position.
tile.center_x = CELL * 2 + p[0] * CELL
tile.center_y = HEIGHT - CELL * 2 - p[1] * CELL
# Invisible by default.
tile.visible = False
return tiles

Loading…
Cancel
Save