コード例 #1
0
    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()
コード例 #2
0
 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
コード例 #3
0
ファイル: matrixrain.py プロジェクト: FirstKlaas/LEDWall
 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)]
コード例 #4
0
    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
コード例 #5
0
    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
コード例 #6
0
ファイル: tetris_app.py プロジェクト: FirstKlaas/LEDWall
    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))
コード例 #7
0
 def __init__(self):
     self.display = Display(7, 7)
     self.display.fill(HSVColor(0.7, 1.0, 0.4))
コード例 #8
0
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
コード例 #9
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()
コード例 #10
0
ファイル: colorwheel.py プロジェクト: FirstKlaas/LEDWall
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)

コード例 #11
0
ファイル: tetris-test.py プロジェクト: FirstKlaas/LEDWall
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 
コード例 #12
0
ファイル: tetris_app.py プロジェクト: FirstKlaas/LEDWall
 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
コード例 #13
0
ファイル: tetris_app.py プロジェクト: FirstKlaas/LEDWall
 def colorize_blocks_random(self):
     self.colorize_blocks(HSVColor(random.random()))