¿Cómo llamar a los controles de PSP? (SDL-C++)

Buenas, estoy trasteando un poco con la PSP y SDL, he querido mover un sprite, pero no se como llamar a las teclas correspondientes, me explico:

En PC simplemente haria lo siguiente:

Uint8* keystate = SDL_GetkeyState(NULL)
 
int main() {
   ....
   ....
   if (keystate[SDLK_UP] {
      //Mover hacia arriba
   }
   ...
   ...
   return 0;
}

En PSP no sé que poner dentro de los corchetes de keystate: ¿keystate[PSP_PAD_ARRIBA]?

Mi pregunta sería, ¿Cómo se llama a los controles de PSP?

Saludos.


Anuncios Google

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 DeViaNTe

Leer controles en C

mejor usa el sistema k viene con el sdk:

#include <pspctrl.h>

//Inicialización:
SceCtrlData pad;
sceCtrlSetSamplingCycle(0);

sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);

// y cuando kieras leer:
sceCtrlReadBufferPositive(&pad,1); // Read buffer positive, solo rellena los PULSADOS.
// Read buffer negative, te dará los que no estan pulsados.
// Peek buffer positive, los leerá, pero no borrará el buffer, si lo usas para PRX.

if (pad.Buttons & PSP_CTRL_CROSS) { haceralgo(); }

Para mirar los controles, en el mismo pspctrl.h, o en la documentación del SDK.


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de ipn2

Seria asi

PSP_CTRL_RTRIGGER

PSP_CTRL_LTRIGGER

y asi sucesivamente

circle y asi espero haberte ayudado xD

si no preguntale a san google

Imagen de pspgorrister

No, no es tan fácil, yo

No, no es tan fácil, yo también y cualquiera que compile un programa, sabe que eso está en pspctrl.h, no me hubiera creado otro header.Pero estamos hablando de SDL, esta librería usa una capa de abstracción en los botones para tener esa portabilidad, así que no vale.


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

Imagen de DeViaNTe

Vale, leo tarde... xD

Vale, leí tarde, si es SDL, no habrá una documentación con las funciones y tal? Aunque bueno, siempre puedes usar el método estandard y mandar a tomar viento la k te venga con el SDL, seguro que la estandard te funciona mejor, al hacerlo directamente y no pasar por sub-funciones que transforman la entrada/salida perdiendo velocidad.


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de pspgorrister

Pues eso es hacer una

Pues eso es hacer una auténtica chapuza, si programas con SDL, usas las funciones y métodos de SDL. La gestión de eventos del teclado es mucho más compleja que leer una simple entrada, y muchísimo mejor que usar una lectura "estándar" del PSPSDK, piensa que tienes a tu disposición una estructura y un buffer muy versátiles. No sé en qué te basas en decir que pierdes velocidad (hacerlo en Lua sí que es perder velocidad y nadie se queja). Además SDL es independiente de la plataforma, puedes ejecutar el homebrew que hagas en Windows, Linux, Mac....

 


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

Imagen de DeViaNTe

chapuzillas mix

No tiene por qué ser una chapuza, me refiero a k si es SDL, y no estuviera codeado eso de leer controles, te vas a la parte de leer controles de la SDL y modificas la funcion LeerControles() o SDLreadkeys o SDLloquesea, ahi usas el genérico, y rellenas los búffers de la manera que SDL necesite... No se, por ejemplo en luadev utilizo OSlib... pero la he tenido que abrir en canal por distintos motivos, y editarla internamente, y a fin de cuentas oslib es igual que sdl, tiene un oslReadKeys() y ahi dentro es dónde está la función nativa del sdk... así k la editas, le pones un bloque de #ifdef psp.... le pones los controles de la psp y hale.. ya tienes multiplataforma... (también es complicarse joer...)

Igualmente pspgorrister, como ya te dije en privado, lamento haberte ofendido por lo de adueñarte de algo del sdk... así que basta de discusión de un tema que no tiene mucho jugo...


Actualmente desarrollando nuestra web y UXCode : http://www.gcrew.es

Imagen de pspgorrister

Sobre lo que dices del

Sobre lo que dices del teclado, es más complejo, SDL trata las teclas de una forma "diferente". Te lo pongo un pequeño ejemplo, tú puedes hacer un bucle mientras haya teclas pulsadas, este bucle puedes incorporarlo en un timer y hacer cosas en él. Esto es a nivel SDL. Pues bien, si usas el teclado a través de SDL, lo "automatizas" todo de forma que el ejecutas el bucle mientras haya teclas en el mismo. Yo he programado y programo en SDL, no hace falta rellenar buffes, ni llamar a niguna función de lectura de teclado, sencillamente tienes la teclas en buffer y las usas cuando quieras sin preocuparte de nada más. Ojo, el buffer sólo se vacía si accedes al teclado por SDL.

Claro que se puede hacer de 100 maneras, pero para eso mejor no usar SDL. Menuda complicación usar un #ifdef psp SIN código SDL cuando se puede hacer todo con el mismo código SDL si tener que poner ningún #ifdef psp (y mucho menos editar el mismo SLD). Precisamente los includes están para no tener que hacer eso :D.

Sobre lo del fichero, vuelvo a decir QUE NO LO VÍ, tanto Zero como yo lo hemos buscado, no he visto en ningún sitio ese fichero. Tuve que hacerme yo ese a base de leerme información por ahí. Si hay algo que no me gusta es reinventar la rueda, no iba a hacer un copypaste de un fichero que ya está en los includes. Si tú sabes donde está y nos los dices pues yo soy el primero en agradecertelo, es más preferiría que existiera, quiero usar un include "estándar" antes que uno propio.

PD: Los valores de pspctrl.h *no* son los mismos que usa SDL. Los valores de las teclas cambian


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

Imagen de pspgorrister

Yo me encontré el mismo

Yo me encontré el mismo problema que tú para un juego que estaba/estoy haciendo. Al final me cree yo mismo un header que le llame pspbuttons.h te pongo el código. Espero que te sirva:

/******************************************************************************
Author: GorristeR 2008. Under GPL3 License
Version: N/A
Description:
Definición de los botones de la PSP, no he encontrado estos defines en ningún
sitio, así que he creado este.
******************************************************************************/
#ifndef PSPBUTTONS_H
#define PSPBUTTONS_H
 
#define PSP_BUTTON_TRIANGLE 0
#define PSP_BUTTON_CIRCLE 1
#define PSP_BUTTON_CROSS 2
#define PSP_BUTTON_SQUARE 3
 
#define PSP_BUTTON_LTRIGGER 4
#define PSP_BUTTON_RTRIGGER 5
 
#define PSP_BUTTON_DOWN 6
#define PSP_BUTTON_LEFT 7
#define PSP_BUTTON_UP 8
#define PSP_BUTTON_RIGHT 9
 
#define PSP_BUTTON_SELECT 10
#define PSP_BUTTON_START 11
#define PSP_BUTTON_HOME 12
#define PSP_BUTTON_HOLD 13
 
#endif // PSPBUTTONS_H


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

Imagen de pspgorrister

dont feed the troll

dont feed the troll

Imagen de burnxez

Gracias

La verdad no sabria decirte si funcionarón o no, pero se agradece el aporte, como es usual el compilador esta loco y tira errores que no vienen al caso; de nuevo, a aplazar la programación en C para PSP que me saca mas canas verdes que alegria :(

Saludos.

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.