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.
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
Seria asi
PSP_CTRL_RTRIGGER
PSP_CTRL_LTRIGGER
y asi sucesivamente
circle y asi espero haberte ayudado xD
si no preguntale a san google
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.
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
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.
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
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.
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:
LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.
dont feed the troll
dont feed the troll
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.