Merge pull request #3034 from FoamyGuy/tilepalettemapper_api_update
Tilepalettemapper api update
This commit is contained in:
commit
0b7aa5dfcb
4 changed files with 52 additions and 18 deletions
|
|
@ -14,9 +14,12 @@ import displayio
|
|||
import supervisor
|
||||
from displayio import Group, TileGrid
|
||||
from tilepalettemapper import TilePaletteMapper
|
||||
from adafruit_fruitjam.peripherals import request_display_config
|
||||
import adafruit_imageload
|
||||
|
||||
|
||||
# use the built-in HSTX display
|
||||
request_display_config(320, 240)
|
||||
display = supervisor.runtime.display
|
||||
|
||||
# screen size in tiles, tiles are 16x16
|
||||
|
|
@ -64,7 +67,12 @@ for i in range(0, len(COLORS)):
|
|||
shader_palette[i + 1] = COLORS[i]
|
||||
|
||||
# mapper to change colors of tiles within the grid
|
||||
grid_color_shader = TilePaletteMapper(shader_palette, 2, SCREEN_WIDTH, SCREEN_HEIGHT)
|
||||
if sys.implementation.version[0] == 9:
|
||||
grid_color_shader = TilePaletteMapper(
|
||||
shader_palette, 2, SCREEN_WIDTH, SCREEN_HEIGHT
|
||||
)
|
||||
elif sys.implementation.version[0] >= 10:
|
||||
grid_color_shader = TilePaletteMapper(shader_palette, 2)
|
||||
|
||||
# load the spritesheet
|
||||
katakana_bmp, katakana_pixelshader = adafruit_imageload.load("matrix_characters.bmp")
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import array
|
|||
import atexit
|
||||
import io
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
import board
|
||||
|
|
@ -217,9 +218,11 @@ for i in range(2):
|
|||
|
||||
# create tile palette mappers
|
||||
for i in range(2):
|
||||
palette_mapper = TilePaletteMapper(remap_palette, 3, 1, 1)
|
||||
# remap index 2 to each of the colors in mouse colors list
|
||||
palette_mapper[0] = [0, 1, i + 3]
|
||||
if sys.implementation.version[0] == 9:
|
||||
palette_mapper = TilePaletteMapper(remap_palette, 3, 1, 1)
|
||||
elif sys.implementation.version[0] >= 10:
|
||||
palette_mapper = TilePaletteMapper(remap_palette, 3)
|
||||
|
||||
palette_mappers.append(palette_mapper)
|
||||
|
||||
# create tilegrid for each mouse
|
||||
|
|
@ -228,6 +231,9 @@ for i in range(2):
|
|||
mouse_tg.y = display.height // scale_factor // 2
|
||||
mouse_tgs.append(mouse_tg)
|
||||
|
||||
# remap index 2 to each of the colors in mouse colors list
|
||||
palette_mapper[0] = [0, 1, i + 3]
|
||||
|
||||
# USB info lists
|
||||
mouse_interface_indexes = []
|
||||
mouse_endpoint_addresses = []
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
import os
|
||||
import random
|
||||
import sys
|
||||
import time
|
||||
from io import BytesIO
|
||||
|
||||
|
|
@ -133,7 +134,10 @@ class Match3Card(Group):
|
|||
|
||||
def __init__(self, card_tuple, **kwargs):
|
||||
# tile palette mapper to color the card
|
||||
self._mapper = TilePaletteMapper(kwargs["pixel_shader"], 5, 1, 1)
|
||||
if sys.implementation.version[0] == 9:
|
||||
self._mapper = TilePaletteMapper(kwargs["pixel_shader"], 5, 1, 1)
|
||||
elif sys.implementation.version[0] >= 10:
|
||||
self._mapper = TilePaletteMapper(kwargs["pixel_shader"], 5)
|
||||
kwargs["pixel_shader"] = self._mapper
|
||||
# tile grid to for the visible sprite
|
||||
self._tilegrid = TileGrid(**kwargs)
|
||||
|
|
@ -580,9 +584,11 @@ class Match3Game(Group):
|
|||
# if 3 cards have been clicked
|
||||
if len(self.clicked_cards) == 3:
|
||||
# check if the 3 cards make a valid set
|
||||
valid_set = validate_set(self.clicked_cards[0],
|
||||
self.clicked_cards[1],
|
||||
self.clicked_cards[2])
|
||||
valid_set = validate_set(
|
||||
self.clicked_cards[0],
|
||||
self.clicked_cards[1],
|
||||
self.clicked_cards[2],
|
||||
)
|
||||
|
||||
# if they are a valid set
|
||||
if valid_set:
|
||||
|
|
@ -660,7 +666,7 @@ class Match3Game(Group):
|
|||
# load the game from the given game state
|
||||
self.load_from_game_state(self.game_state)
|
||||
# hide the title screen
|
||||
self.title_screen.hidden = True # pylint: disable=attribute-defined-outside-init
|
||||
self.title_screen.hidden = True
|
||||
# set the current state to open play
|
||||
self.cur_state = STATE_PLAYING_OPEN
|
||||
|
||||
|
|
@ -676,7 +682,7 @@ class Match3Game(Group):
|
|||
# initialize a new game
|
||||
self.init_new_game()
|
||||
# hide the title screen
|
||||
self.title_screen.hidden = True # pylint: disable=attribute-defined-outside-init
|
||||
self.title_screen.hidden = True
|
||||
# set the current state to open play
|
||||
self.cur_state = STATE_PLAYING_OPEN
|
||||
|
||||
|
|
@ -727,6 +733,7 @@ class Match3TitleScreen(Group):
|
|||
|
||||
def __init__(self, display_size):
|
||||
super().__init__()
|
||||
self.hidden = False
|
||||
self.display_size = display_size
|
||||
# background bitmap color
|
||||
bg_bmp = Bitmap(display_size[0] // 10, display_size[1] // 10, 1)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# SPDX-FileCopyrightText: Copyright (c) 2025 Tim Cocks for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
import sys
|
||||
|
||||
import supervisor
|
||||
from displayio import Group, OnDiskBitmap, TileGrid
|
||||
|
|
@ -20,16 +21,28 @@ display.root_group = main_group
|
|||
spritesheet_bmp = OnDiskBitmap("match3_cards_spritesheet.bmp")
|
||||
|
||||
# create a TilePaletteMapper
|
||||
tile_palette_mapper = TilePaletteMapper(
|
||||
spritesheet_bmp.pixel_shader, # input pixel_shader
|
||||
5, # input color count
|
||||
3, # grid width
|
||||
1 # grid height
|
||||
)
|
||||
if sys.implementation.version[0] == 9:
|
||||
tile_palette_mapper = TilePaletteMapper(
|
||||
spritesheet_bmp.pixel_shader, # input pixel_shader
|
||||
5, # input color count
|
||||
3, # grid width
|
||||
1, # grid height
|
||||
)
|
||||
elif sys.implementation.version[0] >= 10:
|
||||
tile_palette_mapper = TilePaletteMapper(
|
||||
spritesheet_bmp.pixel_shader, # input pixel_shader
|
||||
5, # input color count
|
||||
)
|
||||
|
||||
# create a TileGrid to show some cards
|
||||
cards_tilegrid = TileGrid(spritesheet_bmp, pixel_shader=tile_palette_mapper,
|
||||
width=3, height=1, tile_width=24, tile_height=32)
|
||||
cards_tilegrid = TileGrid(
|
||||
spritesheet_bmp,
|
||||
pixel_shader=tile_palette_mapper,
|
||||
width=3,
|
||||
height=1,
|
||||
tile_width=24,
|
||||
tile_height=32,
|
||||
)
|
||||
|
||||
# set each tile in the grid to a different sprite index
|
||||
cards_tilegrid[0, 0] = 10
|
||||
|
|
|
|||
Loading…
Reference in a new issue