Beispiel #1
0
 def _get_chosen_option_from_menu(self):
     pad = psp2d.Controller()
     while not pad.start:
         self._react_to_pad_event_in_menu(pad)
         sleep(0.02)  # ta wartosc wplywa na threshold w klasie logic
         self._draw_menu()
         pad = psp2d.Controller()
Beispiel #2
0
 def _get_input_by_else_false(self, viewing_time):
     local_time = Time()
     local_time.save_current_time()
     pad = psp2d.Controller()
     pressed_button = self._check_input(pad)
     while not pressed_button:
         if local_time.get_difference() > viewing_time:
             return False
         pad = psp2d.Controller()
         pressed_button = self._check_input(pad)
     return pressed_button
Beispiel #3
0
 def high_score(self):
     self._clear_screen()
     x, y = 0, 30
     self.font.drawText(self.screen, x, 0, 'High scores')
     for k, v in self.database.iteritems():
         self.font.drawText(self.screen, x, y, k + "-" * (29 - len(k)) + v)
         y += 30
     self.screen.swap()
     pad = psp2d.Controller()
     while not pad.select and not pad.start:
         sleep(0.2)
         pad = psp2d.Controller()
Beispiel #4
0
def main():
    scr = psp2d.Screen()
    img = psp2d.Image('background.png')

    simg1 = psp2d.Image(160, 272)
    simg1.blit(0, 0, 160, 272, img, 0, 0)

    simg2 = psp2d.Image(160, 272)
    simg2.blit(320, 0, 160, 272, img, 0, 0)

    tr = psp2d.Transform(psp2d.TR_PLUS, 20.0)
    tr.apply(simg1)
    img.blit(0, 0, 160, 272, simg1, 0, 0)

    tr = psp2d.Transform(psp2d.TR_MULT, 0.5)
    tr.apply(simg2)
    img.blit(0, 0, 160, 272, simg2, 320, 0)

    scr.blit(0, 0, img.width, img.height, img, 0, 0)
    scr.swap()

    while True:
        pad = psp2d.Controller()
        if pad.circle:
            break
Beispiel #5
0
 def _get_nick(self):
     global screen
     global fnt
     val = ''
     screen = psp2d.Screen()
     danzeff_load()
     danzeff_moveTo(220, 20)
     while (True):
         # Prepare background
         screen.blit(self.image)
         # ptDanzeff PyOSK: Render OSK on screen
         danzeff_render()
         # ptDanzeff PyOSK: Returns OSK input as an integer
         cha = danzeff_readInput(psp2d.Controller())
         # Now Evaluate return value and take proper action
         if (cha != 0 and cha != 1 and cha != 2):
             if (cha == 8):
                 val = val[0:len(val) - 1]
             elif (cha == 13):
                 val = ""
             elif (cha == 4):
                 return val
             else:
                 val = val + chr(cha)
         # Print current input string
         fnt.drawText(screen, 5, 230, val)
         # Refresh screen
         screen.swap()
     danzeff_free()
     return val
Beispiel #6
0
def main():
    screen = psp2d.Screen()
    font = psp2d.Font('font.png')
    bgimg = psp2d.Image('background.png')

    screen.blit(bgimg)
    font.drawText(screen, 0, 0, 'Connecting...')
    screen.swap()

    def cb(s):
        screen.blit(bgimg)
        if s >= 0:
            font.drawText(screen, 0, 0, 'State: %d/4' % s)
        else:
            font.drawText(screen, 0, 0, 'Connected. IP: %s' % pspnet.getIP())
        screen.swap()

    pspnet.connectToAPCTL(1, cb)

    a = Acceptor()
    a.create_socket(socket.AF_INET, socket.SOCK_STREAM)
    a.bind(('', 23))
    a.listen(5)

    thr = threading.Thread(target=runloop)
    thr.setDaemon(True)
    thr.start()

    while True:
        pad = psp2d.Controller()
        if pad.circle:
            break
Beispiel #7
0
def main():
    scr = psp2d.Screen()

    fnt = psp2d.Font('font_small.png')
    dy = fnt.textHeight('') + 5

    while True:
        pad = psp2d.Controller()

        img = psp2d.Image(480, 272)
        img.clear(psp2d.Color(0, 0, 0))

        fnt.drawText(img, 0, 0, 'Analog X: %d' % pad.analogX)
        fnt.drawText(img, 0, dy, 'Analog Y: %d' % pad.analogY)
        fnt.drawText(img, 0, 2 * dy, 'Square: %d' % int(pad.square))
        fnt.drawText(img, 0, 3 * dy, 'Circle: %d' % int(pad.circle))
        fnt.drawText(img, 0, 4 * dy, 'Cross: %d' % int(pad.cross))
        fnt.drawText(img, 0, 5 * dy, 'Triangle: %d' % int(pad.triangle))
        fnt.drawText(img, 0, 6 * dy, 'Left: %d' % int(pad.left))
        fnt.drawText(img, 0, 7 * dy, 'Right: %d' % int(pad.right))
        fnt.drawText(img, 0, 8 * dy, 'Up: %d' % int(pad.up))
        fnt.drawText(img, 0, 9 * dy, 'Down: %d' % int(pad.down))
        fnt.drawText(img, 0, 10 * dy, 'Left trigger: %d' % int(pad.l))
        fnt.drawText(img, 0, 11 * dy, 'Right trigger: %d' % int(pad.r))

        scr.blit(img)
        scr.swap()
Beispiel #8
0
    def SET_BUTTON_PRESSED(self, NAME, PRESSED=1, PAD=psp2d.Controller()):
        DPAD = self.BUTTONS_STATE["DPAD"]
        ANALOG = self.BUTTONS_STATE["ANALOG"]

        DPAD["x"] = DPAD["y"] = 0

        if PAD.left: DPAD["x"] -= 1
        if PAD.right: DPAD["x"] += 1
        if PAD.up: DPAD["y"] -= 1
        if PAD.down: DPAD["y"] += 1
        DPAD["pressed"] = PAD.left or PAD.right or PAD.up or PAD.down
        DPAD["length"] = get_vec2_length(DPAD["x"], DPAD["y"])
        DPAD["length_c"] = get_vec2_length(DPAD["x"], DPAD["y"])

        ANALOG["x"] = PAD.analogX
        ANALOG["y"] = PAD.analogY
        ANALOG["length"] = get_vec2_length(PAD.analogX, PAD.analogY)

        if self.BUTTONS_STATE["PRESSED"][NAME] and not PRESSED:
            self.BUTTONS_STATE["PRESSED"][NAME] = False
            self.ON_PAD_RELEASED(NAME, PAD, DPAD, ANALOG)
        if not self.BUTTONS_STATE["PRESSED"][NAME] and PRESSED:
            self.BUTTONS_STATE["PRESSED"][NAME] = True
            self.ON_PAD_PRESSED(NAME, PAD, DPAD, ANALOG)

        return True
Beispiel #9
0
def main():
    screen = psp2d.Screen()
    font = psp2d.Font('font.png')
    bgimg = psp2d.Image('background.png')

    screen.blit(bgimg)
    font.drawText(screen, 0, 0, 'Connecting...')
    screen.swap()

    def cb(s):
        screen.blit(bgimg)
        if s >= 0:
            font.drawText(screen, 0, 0, 'State: %d/4' % s)
        else:
            font.drawText(screen, 0, 0, 'Connected. IP: %s' % pspnet.getIP())
        screen.swap()

    pspnet.connectToAPCTL(1, cb)

    srv = MSServer(('', 80), MSHandler)
    thr = threading.Thread(target=srv.serve_forever)
    thr.setDaemon(True)
    thr.start()

    while True:
        pad = psp2d.Controller()
        if pad.circle:
            break

    pspnet.disconnectAPCTL()
Beispiel #10
0
 def _did_quit_evt_appear_while_waiting_for(self, time):
     quantum_time = time / 35
     local_time = Time()
     local_time.save_current_time()
     while local_time.get_difference() < time:
         sleep(quantum_time)
         pad = psp2d.Controller()
         if pad.select:
             return True
     return False
Beispiel #11
0
def main():
    img = psp2d.Image('sprite.png')
    sprites = [Sprite(img) for unused in xrange(30)]
    screen = psp2d.Screen()

    batch = psp2d.BlitBatch()
    for sprite in sprites:
        batch.add(sprite)

    batching = False

    while True:
        if batching:
            while True:
                screen.clear(psp2d.Color(0, 0, 0))

                for sprite in sprites:
                    sprite.nextFrame()
                batch.blit()

                screen.swap()

                pad = psp2d.Controller()
                if pad.cross:
                    batching = False
                    time.sleep(0.2)
                    break
        else:
            while True:
                screen.clear(psp2d.Color(0, 0, 0))

                for sprite in sprites:
                    sprite.nextFrame()
                    img, x, y = sprite.data
                    screen.blit(img, dx=x, dy=y, blend=True)

                screen.swap()

                pad = psp2d.Controller()
                if pad.cross:
                    batching = True
                    time.sleep(0.2)
                    break
Beispiel #12
0
def pobierz_stan_przyciskow():
    parser = PSPParser()
    pad = psp2d.Controller()
    rtn = parser.uzupelnij_dane_do_dlugosci(pad.analogX, dlugosc=4)
    rtn += parser.uzupelnij_dane_do_dlugosci(pad.analogY, dlugosc=4)
    stan_przyciskow = [pad.up, pad.right, pad.down, pad.left, pad.triangle,
                       pad.circle, pad.cross, pad.square, pad.l, pad.r, pad.start, pad.select]
    for stan in stan_przyciskow:
        rtn += to_string(stan)

    return rtn
Beispiel #13
0
def main():
    screen = psp2d.Screen()

    screen.fillRect(10, 10, 60, 30, psp2d.Color(255, 0, 0))
    screen.drawText(15, 45, 'Hello, world!', psp2d.Color(0, 0, 255))
    screen.drawLine(0, 200, 200, 0, psp2d.Color(0, 255, 0))

    screen.swap()

    while True:
        pad = psp2d.Controller()
        if pad.circle:
            break
Beispiel #14
0
def main(msg='Hello, world!'):
    screen = psp2d.Screen()
    bgimg = psp2d.Image('background.png')
    font = psp2d.Font('font.png')

    ##     pspsnd.setMusicVolume(128)
    ##     music = pspsnd.Music('stranglehold.xm', loop = True)
    ##     music.start()

    widths = []
    totalw = 0
    for c in msg:
        widths.append(font.textWidth(c))
        totalw += font.textWidth(c)

    y = (272 - font.textHeight(msg)) / 2
    x = (480 - totalw) / 2

    angle = 0.0

    menu = Menu(10, 10)

    amplitude = FloatMenuItem(20, 0.5, 'Amplitude')
    step = FloatMenuItem(0.2, 0.02, 'Step')
    slope = FloatMenuItem(0.2, 0.02, 'Slope')

    menu.addItem(amplitude)
    menu.addItem(step)
    menu.addItem(slope)

    menu.realize(font)

    while True:
        screen.blit(bgimg)
        menu.draw(font, screen)

        dx = 0
        for idx, c in enumerate(msg):
            font.drawText(
                screen, x + dx,
                y + amplitude.value * math.sin(angle + slope.value * idx), c)
            dx += widths[idx]

        screen.swap()
        angle += step.value

        pad = psp2d.Controller()
        if pad.circle:
            break

        menu.update(pad)
Beispiel #15
0
def main():
    bg = psp2d.Image('background.png')
    img = psp2d.Image('sprite.png')

    scr = psp2d.Screen()
    scr.blit(img, dx=0, dy=0, blend=True)
    scr.blit(img, dx=240, dy=136, dw=128, dh=128, blend=True)
    scr.blit(img, dx=0, dy=136, dw=32, blend=True)
    scr.swap()

    while True:
        pad = psp2d.Controller()
        if pad.circle:
            break
Beispiel #16
0
    def fire(self):
        scr = psp2d.Screen()

        scr.clear(psp2d.Color(0, 0, 0))
        scr.blit(self.img, dx = self.x, dy = self.y, blend = True)

        scr.swap()

        self.x += self.u
        if self.x <= 0 or self.x + self.img.width >= 480:
            self.u = -self.u

        pad = psp2d.Controller()
        return not pad.circle
Beispiel #17
0
 def ON_TICK(self, DELTA=1):
     if self.PAD_BUTTON_OBSERVER_ENABLED:
         PAD = psp2d.Controller()
         self.SET_BUTTON_PRESSED("cross", PAD.cross, PAD)
         self.SET_BUTTON_PRESSED("triangle", PAD.triangle, PAD)
         self.SET_BUTTON_PRESSED("circle", PAD.circle, PAD)
         self.SET_BUTTON_PRESSED("square", PAD.square, PAD)
         self.SET_BUTTON_PRESSED("down", PAD.down, PAD)
         self.SET_BUTTON_PRESSED("up", PAD.up, PAD)
         self.SET_BUTTON_PRESSED("left", PAD.left, PAD)
         self.SET_BUTTON_PRESSED("right", PAD.right, PAD)
         self.SET_BUTTON_PRESSED("start", PAD.start, PAD)
         self.SET_BUTTON_PRESSED("select", PAD.select, PAD)
         self.SET_BUTTON_PRESSED("l", PAD.l, PAD)
         self.SET_BUTTON_PRESSED("r", PAD.r, PAD)
Beispiel #18
0
def main():
    scr = psp2d.Screen()

    img = psp2d.Image('background.png')
    scr.blit(img)

    font = psp2d.Font('font.png')
    msg = 'Hello, world!'
    font.drawText(scr, (480 - font.textWidth(msg)) / 2, 20, msg)

    scr.swap()

    while True:
        pad = psp2d.Controller()
        if pad.circle:
            break
Beispiel #19
0
def main():
    scr = psp2d.Screen()

    img = psp2d.Image('background.png')

    img2 = psp2d.Image(200, 200)
    img2.clear(psp2d.Color(255, 0, 0, 128))
    img.blit(img2, dx = 30, dy = 30, blend = True)

    scr.blit(img)
    scr.swap()

    while True:
        pad = psp2d.Controller()
        if pad.circle:
            break
Beispiel #20
0
def main(msgs):
    screen = psp2d.Screen()
    bgimg = psp2d.Image('background.png')
    font = psp2d.Font('font.png')

    widths = []
    totalw = []
    for msg in msgs:
        widths.append([])
        totalw.append(0)
        for c in msg:
            widths[-1].append(font.textWidth(c))
            totalw[-1] += font.textWidth(c)

    y = (272 - font.textHeight('')) / 2
    xs = []
    for tw in totalw:
        xs.append((480 - tw) / 2)

    angle = 0.0

    while True:
        screen.blit(bgimg)
        dy = 0
        for i, msg in enumerate(msgs):
            dx = 0
            for idx, c in enumerate(msg):
                font.drawText(screen, xs[i] + dx,
                              y + dy + 20 * math.sin(angle + 0.2 * idx), c)
                dx += widths[i][idx]
            dy += font.textHeight('') + 20

        screen.swap()
        angle += 0.2

        pad = psp2d.Controller()
        if pad.circle:
            break
Beispiel #21
0
def main():
    scr = psp2d.Screen()
    img = psp2d.Image('background.png')

    def change(x, y, color):
        color.red = min(255, color.red + 20)
        color.green = min(255, color.green + 20)
        color.blue = min(255, color.blue + 20)

        return True

    simg = psp2d.Image(20, 20)
    simg.blit(100, 100, 20, 20, img, 0, 0)
    tr = psp2d.Transform(change)
    tr.apply(simg)
    img.blit(0, 0, 20, 20, simg, 100, 100)

    scr.blit(0, 0, img.width, img.height, img, 0, 0)
    scr.swap()

    while True:
        pad = psp2d.Controller()
        if pad.circle:
            break
Beispiel #22
0
def main():
    bgimg = psp2d.Image('background.png')

    choice = ChoiceCtrl(height=10)
    description = TextCtrl()
    btn = ButtonCtrl(label='Quit', bitmap=psp2d.Image('quit.png'))

    def updateDescription(obj):
        description.text = obj.getDescription()

    def launchDemo(obj):
        obj.main()

    def quit():
        raise KeyboardInterrupt('quit')

    choice.connect('SelectionChanged', updateDescription)
    choice.connect('Activated', launchDemo)
    btn.connect('Activated', quit)

    class ModuleProxy(object):
        def __init__(self, mdl):
            self.mdl = mdl

        def __str__(self):
            return self.mdl.getName()

        def getDescription(self):
            return self.mdl.getDescription()

        def main(self):
            self.mdl.main()

    names = os.listdir('.')
    names.sort()
    for name in names:
        if name.endswith('.py') and name != 'script.py':
            mdl = loadModule(os.path.abspath(name))

            if hasattr(mdl, 'getName'):
                choice.Append(ModuleProxy(mdl))

    vsz = BoxSizer(direction=VERTICAL, border=5)
    vsz.Add(choice)
    vsz.Add(btn, 1, vsz.EXPAND)

    hsz = BoxSizer(direction=HORIZONTAL, border=5)
    hsz.Add(vsz, 0, hsz.EXPAND)
    hsz.Add(description, 1, hsz.EXPAND)

    screen = psp2d.Screen()

    oldpad = psp2d.Controller()
    while True:
        screen.blit(bgimg)
        hsz.Paint(screen, 0, 0, 480, 272, True)
        screen.swap()

        pad = psp2d.Controller()
        if pad != oldpad:
            hsz.OnKey(pad)
            oldpad = pad
Beispiel #23
0
# surface_draw(p)			# Draw surface

# ptDanzeff PyOSK requires that screen variable is set to psp2d.Screen()

import math
import psp2d

DANZEFF_LEFT = 1  # Left button return value
DANZEFF_RIGHT = 2  # Right button return value
DANZEFF_SELECT = 3  # Select button return value
DANZEFF_START = 4  # Start button return value

# ptDanzeff PyOSK requires that screen variable is set to psp2d.Screen()
# screen	= psp2d.Screen()	# required by python adaptation
# holding	= False			# not used by python adaptation
prevctrl = psp2d.Controller()  # python adaptation # previous controls data
dirty = True  # whether OSK is dirty or not as boolean
shifted = False  # whether OSK is shifted or not as boolean
mode = 0  # OSK mode as integer
initialized = False  # whether OSK is initialized or not as boolean

selected_x = 1  # selected_x OSK section as integer
selected_y = 1  # selected_y OSK section as integer

PICS_BASEDIR = ".\\danzeff\\"  # graphics directory as string

guiStringsSize = 12  # guiStrings string array size

guiStrings = [  # guiStrings string array
    PICS_BASEDIR + "keys.png", PICS_BASEDIR + "keys_t.png",
    PICS_BASEDIR + "keys_s.png", PICS_BASEDIR + "keys_c.png",
Beispiel #24
0
pspos.setclocks(333,166) # To set both CPU and Bus clock
screen = psp2d.Screen()
BLANK = psp2d.Color(0,0,0)
state=x=y=0
image = psp2d.Image(480, 272)
image.clear(BLANK)
screen.blit(image); screen.swap()
snake="pg.png"
def draw(pgName):                       
	image = psp2d.Image(480, 272)
	image.clear(BLANK)
	screen.blit(image); screen.swap()
	image = psp2d.Image(pgName)
	screen.blit(image, dx=x, dy=y); screen.swap()
while state==0:
	pad = psp2d.Controller()
	if pad.right:
		x = x + 5
		draw(snake)
	elif pad.left:
		x = x - 5
		draw(snake)
	elif pad.up:
		y = y - 5
		draw(snake)
	elif pad.down:
		y = y + 5
		draw(snake)
	elif pad.circle:
		state=1
Beispiel #25
0
 def action(self):
     pad = psp2d.Controller()
     if pad.cross:
         print "exit"
         self.rend.exit()