コード例 #1
0
class FlipTile(Tile):
    '''
    Abstract widget class for one Tile. We also have the ability
    to completely invert whatever the concrete subclass chooses
    to do.
    '''

    def __init__(self, interval=10, limit=10):
        Tile.__init__(self, interval, limit)
        b = Block(8, 8).fill(LampState.FLIP)

        self.__masterFrame = Frame()
        self.__masterFrame.add(self.getFrame(), 0, 0).add(b, 0, 0).hide(b)
        self.__flipped = False
        self.__flipper = b

    def recyclable(self): return True

    def getMasterFrame(self):
        'Return the master frame for display'
        return self.__masterFrame

    def prepare(self):
        if self.__flipped:
            self.__masterFrame.hide(self.__flipper)
        else:
            self.__masterFrame.show(self.__flipper)

        self.__flipped = not self.__flipped
コード例 #2
0
ファイル: Migrate.py プロジェクト: cassiel/net.loadbang.shado
from net.loadbang.shado import Frame, Block
from net.loadbang.shado.types import LampState
from config import renderer

outer = Block(4, 4).fill(LampState.ON)
inner = Block(2, 2).fill(LampState.FLIP)

def posGenerator():
    while True:
        for i in range(8): yield i

pos = posGenerator()
n = pos.next()
frame = Frame().add(outer, 2, 2).add(inner, n, n)

frame.hide(outer)

count = 0

def bang():
    global count
    count += 1
    if count % 10 == 0: doit()

def press(x, y, n):
    if n == 1:
        frame.show(outer)
    else:
        frame.hide(outer)

    draw()