def __init__(self, framerate=15): s = SerialSender(port_name='/dev/ttyUSB0') super().__init__(s, framerate) self._red = { 'rect': (5, 1, 4, 4), 'color': HSVColor(0.0), } self._green = { 'rect': (5, 5, 4, 4), 'color': HSVColor(0.3), } self._orange = { 'rect': (1, 1, 4, 4), 'color': HSVColor(0.15), } self._blue = { 'rect': (1, 5, 4, 4), 'color': HSVColor(0.6), } self._fields = { 'r': self._red, 'g': self._green, 'o': self._orange, 'b': self._blue, } self._on = 1.0 self._off = 0.7 self.switch_off() self.register_action(Event.GAMEPAD, 'BTN_MODE', 1, self.new_game_pressed) self.register_action(Event.GAMEPAD, 'BTN_MODE', 0, self.new_game_released) self.play_buttons_actionmap = [ (Event.GAMEPAD, 'BTN_SOUTH', 1, self.field_green_pressed), (Event.GAMEPAD, 'BTN_SOUTH', 0, self.field_green_released), (Event.GAMEPAD, 'BTN_EAST', 1, self.field_red_pressed), (Event.GAMEPAD, 'BTN_EAST', 0, self.field_red_released), (Event.GAMEPAD, 'BTN_NORTH', 1, self.field_blue_pressed), (Event.GAMEPAD, 'BTN_NORTH', 0, self.field_blue_released), (Event.GAMEPAD, 'BTN_WEST', 1, self.field_orange_pressed), (Event.GAMEPAD, 'BTN_WEST', 0, self.field_orange_released), ] self._sequence = [] self._bullets = self.build_bullet_list() self._play_index = None self.register_play_buttons() self.paint_fields()
def paint(self, display: Display, bg_hue: float): for pixel in self.pixels: display.set_pixel(pixel[1], pixel[2], HSVColor(pixel[0], 1.0, 1.0)) self.update_hue() self.frame += 1 if self.frame == 200: self.create_pixel() self.frame = 0
def __init__(self, column, display): self._display = display if column >= display.columns: raise ValueError( "Column for drop too big. Out of range for given display.") self._column = column self._basecolor = HSVColor.fromIntValues(114., 92.8, 76.1) self._current_color = RGBColor(1.0, 1.0, 1.0) self._row = 0 self._drop_length = int(display.rows * 1.5) self._max_row = display.rows + self._drop_length + 1 self._color_values = [1. / v for v in range(1, self._drop_length + 1)]
def paint(self, display: Display, bg_hue: float): for pixel in self.pixels: display.set_pixel(pixel[1], pixel[2], HSVColor(pixel[0], 1.0, 1.0)) pixel[0] += 0.002 if pixel[0] > 1.0: pixel[0] = 0.0 if abs(pixel[0] - bg_hue) < 0.01: pixel[0] = bg_hue + 0.03 pixel[1] = random.randint(0, 7) pixel[2] = random.randint(0, 7) self.frame += 1
def game_over(self, clb=None): self.clear_play_buttons() red = HSVColor(0) self.switch_off() def paint(): self.display.fill(red) self.paint_fields() red.v -= 0.05 if (red.v < 0.06): self.paint_function = self.paint_fields self.paint_function = paint
def __init__(self, framerate=15): s = SerialSender(port_name='/dev/ttyACM0') #d = Display(10, 10, sender=s, mode=Display.MODE_ZIGZAG) super().__init__(s, framerate) self._board = Tetris(self.display) self.setup_game_controls() self.setup_xbox_controls() self.direction = TetrisGame.MOVE_NOT self.move_actions = { TetrisGame.MOVE_RIGHT: self.move_right, TetrisGame.MOVE_LEFT: self.move_left, TetrisGame.MOVE_UP: self.move_up, TetrisGame.MOVE_DOWN: self.move_down, } self.colorize_blocks(HSVColor(0.3))
def __init__(self): self.display = Display(7, 7) self.display.fill(HSVColor(0.7, 1.0, 0.4))
import sys sys.path.append('..') import random from ledwall.components import (HSVColor, Display, Color, SerialSender) s = SerialSender(port_name="/dev/ttyUSB0", baudrate=115400) d = Display(7, 7, s, framerate=60) hsv = HSVColor(0.0, 1.0, 1.0) class AnimOne: def __init__(self): self.create_pixel() self.frame = 0 def create_pixel(self): self.pixels = [[ random.random(), random.randint(0, 7), random.randint(0, 7) ] for x in range(20)] def update_hue(self): for pixel in self.pixels: pixel[0] += 0.0001 if pixel[0] > 1.0: pixel[0] = 0.0
from ledwall.components.event import (Event, EventDispatcher, FramerateEmitter, GamepadEmitter) import time from ledwall.util import TimeDelta #s = UDPSender(server='192.168.178.96') s = SerialSender(port_name='/dev/ttyACM0') d = Display(10, 10, sender=s, mode=WireMode.ZIGZAG) t = Tetris(d) t.update() hsv = HSVColor(1.0, 1.0, 1.0) def move_right(): p = t.piece if t.testOverflowX(p, dx=1) == Tetris.VALID_POSITION: p['x'] += 1 t.update() def move_left(): p = t.piece if t.testOverflowX(p, dx=-1) == Tetris.VALID_POSITION: p['x'] -= 1 t.update()
import sys sys.path.append('..') from ledwall.components import (SerialSender, HSVColor, Display) #s = UDPSender(server='192.168.178.96') s = SerialSender(port_name='/dev/ttyACM0') d = Display(10,10,s, framerate=30) color = HSVColor(0.,1.,1.) while True: for i in range(360): color._h = i / 360. d.fill(color,True)
from ledwall.components import (Display, UDPSender, HSVColor) from ledwall.games.tetris import Tetris display = Display(7,7,UDPSender(server='192.168.178.96')) game = Tetris(display) bg = HSVColor(0.0,1.0,0.4) hueDelta = 0.01 while True: display.fill(bg) game.drawPiece(game.get_new_piece()) display.update() bg._h += hueDelta
def __init__(self, row, duration=10, hue=0.0): super().__init__() self._row = row self._color = HSVColor(hue) self._tick = duration self._delta_value = 1.0 / duration
def colorize_blocks_random(self): self.colorize_blocks(HSVColor(random.random()))