74 lines
2 KiB
Python
74 lines
2 KiB
Python
# SPDX-FileCopyrightText: 2019 Carter Nelson for Adafruit Industries
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
import board
|
|
import displayio
|
|
import adafruit_imageload
|
|
|
|
display = board.DISPLAY
|
|
|
|
# Load the sprite sheet (bitmap)
|
|
sprite_sheet, palette = adafruit_imageload.load("/castle_sprite_sheet.bmp",
|
|
bitmap=displayio.Bitmap,
|
|
palette=displayio.Palette)
|
|
|
|
# Create the sprite TileGrid
|
|
sprite = displayio.TileGrid(sprite_sheet, pixel_shader=palette,
|
|
width = 1,
|
|
height = 1,
|
|
tile_width = 16,
|
|
tile_height = 16,
|
|
default_tile = 0)
|
|
|
|
# Create the castle TileGrid
|
|
castle = displayio.TileGrid(sprite_sheet, pixel_shader=palette,
|
|
width = 6,
|
|
height = 5,
|
|
tile_width = 16,
|
|
tile_height = 16)
|
|
|
|
# Create a Group to hold the sprite and add it
|
|
sprite_group = displayio.Group()
|
|
sprite_group.append(sprite)
|
|
|
|
# Create a Group to hold the castle and add it
|
|
castle_group = displayio.Group(scale=3)
|
|
castle_group.append(castle)
|
|
|
|
# Create a Group to hold the sprite and castle
|
|
group = displayio.Group()
|
|
|
|
# Add the sprite and castle to the group
|
|
group.append(castle_group)
|
|
group.append(sprite_group)
|
|
|
|
# Castle tile assignments
|
|
# corners
|
|
castle[0, 0] = 3 # upper left
|
|
castle[5, 0] = 5 # upper right
|
|
castle[0, 4] = 9 # lower left
|
|
castle[5, 4] = 11 # lower right
|
|
# top / bottom walls
|
|
for x in range(1, 5):
|
|
castle[x, 0] = 4 # top
|
|
castle[x, 4] = 10 # bottom
|
|
# left/ right walls
|
|
for y in range(1, 4):
|
|
castle[0, y] = 6 # left
|
|
castle[5, y] = 8 # right
|
|
# floor
|
|
for x in range(1, 5):
|
|
for y in range(1, 4):
|
|
castle[x, y] = 7 # floor
|
|
|
|
# put the sprite somewhere in the castle
|
|
sprite.x = 110
|
|
sprite.y = 70
|
|
|
|
# Add the Group to the Display
|
|
display.root_group = group
|
|
|
|
# Loop forever so you can enjoy your image
|
|
while True:
|
|
pass
|