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()
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
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()
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
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
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
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()
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
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()
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
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
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
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
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)
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
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
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)
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
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
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
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
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
# 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",
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
def action(self): pad = psp2d.Controller() if pad.cross: print "exit" self.rend.exit()