Anuncios Google

04. Uso del stick analogico

Tutoriales Avanzados Homebrewes

Hemos aprendido en anteriores tutoriales a utilizar los botones de la PsP tanto para mover a nuestro personaje como para realizar ciertas acciones: saltar, disparar, etc. Pero lo que aun no sabemos es programar el stick analogico para mover al protagonista de nuestro juego. Este es el primer codigo que traduzco que no pertenece a Charlie, pero no recuerdo en qué web lo encontré, asi­ que pido disculpas si alguien se siente ofendido porque no aparezca su nombre.

Empecemos.

--Creamos los Colores.
blanco = Color.new(255,255,255)
 
--Creamos el personaje.
personaje = Image.createEmpty(32,32)
personaje:clear(blanco)
 
--Coordenadas del personaje
personajex = 32
personajey = 32

Si sois fieles seguidores de mis traducciones no tendréis problemas con estre fragmento. Primero creamos el color blanco, después creamos una imagen vaci­a de 32x32 pi­xeles y la coloreamos de blanco. A continuacion definimos dos varibles que seran la posicion inicial de nuestro personaje. Ahora empecemos con el bucle principal:

--Bucle principal
while true do
pad = Controls.read()
dx = pad:analogX()
dy = pad:analogY()
personajeXvelocidad= dx / 120 * 2
personajeYvelocidad= dy / 120 * 2 

Primero leemos la entrada de controles (normalmente lo llamo entrada de botones, pero esta vez lo que lo vamos a leer es el analogico). Guardamos el valor X del analogico en la variable dx y el valor Y en dy. El rango de valores del analogico va de -128 a 127. A continuacion calculamos la velocidad X e Y del personaje.

--Movemos el personaje
if dy < 0 then
personajey = personajey + personajeYvelocidad
end
if dx < 0 then
personajex = personajex + personajeXvelocidad
end
if dy > 0 then
personajey = personajey + personajeYvelocidad
end
if dx > 0 then
personajex = personajex + personajeXvelocidad
end 

Con esta serie de IFs movemos al personaje. El primer IF comprueba si pulsamos hacia ARRIBA en el analogico y de ser asi­, movemos el personaje en esa direccion. El segundo IF comprueba si pulsamos hacia la IZQUIERDA, el tercer IF comprueba hacia ABAJO y el ultimo hacia la DERECHA.

--Mostramos por pantalla nuestro personaje
screen:clear()
screen:blit(personajex,personajey,personaje,true)
screen:print(10,10,"analogX: "..dx,blanco)
screen:print(10,20,"analogY: "..dy,blanco)
screen:flip()
screen:waitVblankStart()
end

La ultima parte del codigo limpia la pantalla, muestra el personaje y las coordenadas del analogico (no del personaje en pantalla) y espera hasta que suceda algo. Acabamos con el end del while que comienza el bucle principal.

Como veis, es bastante sencillo y ahora disponéis de dos formas de mover vuestro personaje por la pantalla de la PsP.

4.52381
Tu voto: Ninguno Votos totales: 4.5 (21 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.
Imagen de Tanos

Woo...

Pero que simple, llevo años tratando de habiloitar el análogo de mil formas xD

Saludos 

Imagen de xxxpsp

es verdad

colavoro con u comentario a la causa pero realmente no creo k se un tema de muxo interes sorry pero es la veradad XD el analogo si lo puedo ocupar bien y si no no

Imagen de ELeNDeR

Pues con más de 200

Pues con más de 200 lecturas algún interés producirá, digo yo.

Jejej, ya comentare algo

Jejej, ya comentare algo cuando lo lea a fondo y lo use, pero como siempre un 10 pa ti 

A que esperas? entra ya: <<<< http://soslibre.iespana.es>>> Una nueva forma de ver las webs, pero.... ¿funcionara?

Elender no hay forma de que

Elender no hay forma de que es este quieto y solo se mueva cuando lo pulses?

Imagen de ELeNDeR

Me temo, N2, que tu

Me temo, N2, que tu personaje no se está quieto porque tienes el analógico desajustado y siempre marca una dirección, es algo muy común. No es por culpa del código Lua. Saludos.


Descargar Homebrew de BETA, gratis. Visualizar un tutorial, gratis. Iniciarse en la programacion en español, gratis. Colaborar a que la scene PSP en español crezca, no tiene precio.

NOOOOOOOO!!! no me jo**s!!??

NOOOOOOOO!!! no me jo**s!!?? como se arregla, yo creia que estaba en perfectas condiciones.

:S tengo la psp echa una mierda snif

Imagen de edokenshin

Tio no te alarmes,

por si acaso mira alguna otra aplicacion (o juego de psp mejor) que utilize el stick y si funciona sera de otra cosa, tambien prueba de apagar la consola sin tocar el stick, enciendela y buelbe a probar, si no me temo que igual la tendras que enviar a reparar.

Uff, por fortuna solo me va

Uff, por fortuna solo me va mal con este tuto, los juegos me va perfect y con el irshell tambien, si no se estaria cambiando las opciones, ya que con el jostick se sale o ejecuta cosas.

Elender creo que es el tuto

Imagen de ELeNDeR

Si tienes el Pro Evolution

Si tienes el Pro Evolution Soccer 5 pruebalo, a mi me pasa que el jugador que tiene la pelota a veces corre él solito en alguna dirección debido al stick analógico. En cuanto al tuto, yo lo he probado, por supuesto, y hace lo que dice hacer.


Descargar Homebrew de BETA, gratis. Visualizar un tutorial, gratis. Iniciarse en la programacion en español, gratis. Colaborar a que la scene PSP en español crezca, no tiene precio.

probare.... ya te dire como

probare.... ya te dire como me ha ido

Imagen de mordi

sustituiria

f dy < 32 then                                       
personajey = personajey + personajeYvelocidad 
end
if dx < 32 then                                     
personajex = personajex + personajeXvelocidad     
end
if dy > -32 then                                   
personajey = personajey + personajeYvelocidad  
end
if dx > -32 then                                 
personajex = personajex + personajeXvelocidad  
end

no se si es necesario un control viendo que si no es ninguno de estos casos que el personaje no se mueva, pero creo que es inecesario. 

¡Un verdadero guerrero Klingon nunca utiliza comentarios en su código!


¡Un verdadero guerrero Klingon nunca utiliza comentarios en su código!

Imagen de paco.

mordi me sorprendes

mordi me sorprendes tío

saludos pspero

Imagen de mordi

sensibilidad

El pad analogico, toma valores entre -128 y 127, pero los valores entre -32 y 32 deben ignorarse porque pueden ser producidos por la sensibilidad, mal estado o mal calibrado del pad. Controla que cuando se toman estos valores no se mueva, y veras como todo funciona a la perfeccion. 

 

¡Un verdadero guerrero Klingon nunca utiliza comentarios en su código!


¡Un verdadero guerrero Klingon nunca utiliza comentarios en su código!

Esto... he jugado al ESDLA

Esto... he jugado al ESDLA tacticas que usa el joystick para mover la camara y la camara esta quieta, por lo tanto el jostick esta bien; no intentes ayudarme que me asustas xDDDDD

Imagen de ELeNDeR

200 lecturas y ningún comentario.

200 lecturas y ningún comentario. Qué pena.

Hombreee, no te

Hombreee, no te cabrees...
Me parece muy útil, si tuviera el valor de empezar a programar, lo utilizaría!! :P

Para serte sincero ya había visto varios tutoriales LUa y echaba en falta poder usar el stick... así q personalmente creo q es de lo más útil q has puesto, da mucha más profundidad a la programación.... si no sería muy cuadriculado (arriba, izquierda....) o sólo por botones (Cuadrado hace ésto, rectángulo lo otro...)
Así q mi enhorabuena, buen trabajo de documentación

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.