Anuncios Google

Controles

Puedes usar los controles de la PSP con la clase Controls. "Control.read()" lee el estado actual de un boton 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 posicion del pad analogico. El rango va desde -128 a 127, pero los valores por debajo de 32 pueden ser producidos aunque el pad este centrado.

En el ejemplo de un programa de dibujo, usamos el analogico para mover el cursor, mantener pulsada la cruz dibujara una linea, select guardara la imagen y start terminara.

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 repeticion en los controles añadiendo la siguiente linea de codigo.

function controls()
  pad = Controls.read()
  if pad ~= oldPad then
    --yourcodehere
  end
  oldPad = pad
end

4.18182
Tu voto: Ninguno Votos totales: 4.2 (11 votos)

Anuncios Google

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

lo que pasa es que tienes

lo que pasa es que tienes que ponerlo asi  "pad:cross()"

Imagen de CARLOS.1.2.3

Que pasa?

Soy un novatisimo en la programacion (solo partia de las bases de HTML y CSS) i he intentado programar un mini reproductor. Cuando lo cargo me aparece: ERROR: System/System.lua:30: ´=´ expected near ´end´

El codigo es este:

rojo = Color.new(255, 0, 0)

verde = Color.new(0, 255, 0)azul =

Color.new(0, 0, 255)

blanco = Color.new(255, 255, 255)

screen:print(20, 101, "Pulsa X para escuchar la cancion It is my life", rojo)

screen:print(20, 111, "Pulsa triangulo para escuchar la cancion What is love.", verde)

screen:print(20, 131, "Pulsa start para salir.", blanco)

screen:print(20, 121, "Pulsa circulo para parar la musica actual", azul)

screen:flip()

while true do

pad = Controls.read

if pad==cross() then

Music.playFile("1.wav", false)

end

if pad==circle() then

Music.stop()

end

if pad==triangle() then

Music.playFile("2.wav", false)

end

if pad==start() then

break

end

screen.waitVblankStart

end

a si tambien en vez de poner

a si tambien en vez de poner screen:flip() antes de while true do ponlo despues de while true do y despues al final pon screen.waitVblankStart() en vez de screen.waitVblankStart y seguido pon screen.flip()

en vez de poner if

en vez de poner if pad==cross() then Music.playfile("1.wav",false) trata con if pad:cross() then Music.playFile("1.wav",false) espero haberte ayudado ojala te conviertas en un gran programador

Imagen de pspgorrister

¡¡ay que me LOL!!

Posiblemente le hubieras ayudado si su post no fuera de hace una año. xDDD.

 

A ver si nos fijamos y no resucitamos post para nada. Que al que le contestas es peor aún, resucita un post 2 años después.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.