Huésped Invitado
 | Tema: Controles de la psp Dom Jul 27, 2008 2:09 pm | |
| Puedes usar los controles de la PSP con la clase Controls. "Control.read()" lee el estado actual de un botón determinado, como por ejemplo la cruz. El resultado sera true si el boton cruz es pulsado, y falso en cualquier otro caso. analogX y analogY retorna la posición del pad analógico. El rango va desde -128 a 127, pero los valores por debajo de 32 pueden ser producidos aunque el pad esté centrado. En el ejemplo de un programa de dibujo, usamos el analógico para mover el cursor, mantener pulsada la cruz dibujará una línea, select guardara la imagen y start terminará. | Código: | red = Color.new(255, 0, 0); black = Color.new(0, 0, 0); white = Color.new(255, 255, 255); canvas = Image.createEmpty(480, 272) canvas:clear(white) brush = {} eraser = {} x0 = 0 y0 = 0 x1 = 0 y1 = 0 while true do pad = Controls.read() dx = pad:analogX() if math.abs(dx) > 32 then x0 = x0 + dx / 64 end dy = pad:analogY() if math.abs(dy) > 32 then y0 = y0 + dy / 64 end if pad:cross() then canvas:drawLine(x0, y0, x1, y1, black) end x1 = x0 y1 = y0 screen:blit(0, 0, canvas, 0, 0, canvas:width(), canvas:height(), false) screen:drawLine(x1 - 5, y1, x1 + 5, y1, red) screen:drawLine(x1, y1 - 5, x1, y1 + 5, red) screen.waitVblankStart() screen.flip() if pad:start() then break end if pad:select() then screen:save("screenshot.tga") end end |
En lugar del comando drawLine con el color rojo para la cruz, puedes usar screen:blit(x1, y1, yourCursorImage) para dibujar una imagen con tu cursor y puedes eliminar el drawLine cuando se pulsa la cruz, si no quieres implementar un programa de dibujo.
Puedes detener la repetición en los controles añadiendo la siguiente línea de código.
| Código: | function controls() pad = Controls.read() if pad ~= oldPad then --yourcodehere end oldPad = pad end |
Por mordi |
|