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

Resultados por:
 
Rechercher Búsqueda avanzada
Votar por el foro
Web amiga
Últimos temas
» Como instalar compilador de C sin problemas (PSPDev)
Lun Oct 06, 2008 10:50 pm por nicog_777

» Sonido de PSP
Dom Jul 27, 2008 2:13 pm por Anonymous

» Controles de la psp
Dom Jul 27, 2008 2:09 pm por Anonymous

» Animaciones
Dom Jul 27, 2008 2:05 pm por Anonymous

» Prerequisitos y consejos
Dom Jul 27, 2008 2:00 pm por Anonymous

» Parte11-Fragmentos de código Lua (Snippet)
Dom Jul 27, 2008 1:56 pm por Anonymous

» Parte10-Fragmentos de código Lua (Snippet)
Dom Jul 27, 2008 1:51 pm por Anonymous

» Parte9-Fragmentos de código Lua (Snippet)
Dom Jul 27, 2008 1:48 pm por Anonymous

» Parte8-Fragmentos de código Lua (Snippet)
Dom Jul 27, 2008 1:45 pm por Anonymous

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.