| Votar por el foro |  | | Web amiga |  | | | Controles de la psp | Dom Jul 27, 2008 2:09 pm por Anonymous | 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
| | Comentarios: 0 |
| | Estadísticas | Tenemos 3 miembros registrados. El último usuario registrado es nicog_777.
Nuestros miembros han publicado un total de 43 mensajes. en 42 argumentos.
| | ¿Quién está en línea ? | En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado Ninguno La mayor cantidad de usuarios en línea fue 4 el Miér Sep 03, 2008 10:53 am. |
|