Programación
Índice­Portal­FAQ­Buscar­Miembros­Grupos de Usuarios­Registrarse­Conectarse
Compartir | 
 

 Controles de la psp

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Huésped
Invitado



MensajeTema: 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
Volver arriba Ir abajo
 

Controles de la psp

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

Permiso de este foro:No puedes responder a temas en este foro.
.-_-ProgramaBerkins-_ :: Programación PSP :: LUA-