Anuncios Google

[VLF C-Codigo añadido]¿Como puedo mover texto en pantalla?

Hola, me gustaria saber como puedo mover una palabra que he imprimido en pantalla al pulsar una tecla. Es decir; supongamos que imprimo una palabra cualquiera en la pantalla en las coordenadas X,Y, siendo ambas variables enteras inicializadas y declaradas. Ahora quiero que al pulsar la tecla derecha, la palabra que he imprimido se desplace 1 pixel a la derecha, es decir: x=x+1; Sin embargo no se como puedo hacerlo, dado que lo he intentado de multiples maneras y sin exito. Gracias Todo bien

 

int app_main(){
SetupCallback(); // Callbacks
SceCtrlData pad; 
int x=100;
int y=20;
    //Entorno
    vlfGuiSetBackgroundPlane(0xFF901E); //Establecemos un color de fondo,.
	vlfGuiSetModelSystem(); //Establecemos las olas del XMB siguiendo el modelo de fondo del sistema.
	vlfGuiSystemSetup(1, 1, 0); 
	//vlfGuiAddClock();// Mostramos reloj en la esquina superior derecha
	vlfGuiAddGameIcon(&game, 10, 100);
 
 
 
 
	vlfGuiAddText(x, y, "Prueba de desplazamiento");
 
 
 
//Barra superior
vlfGuiSetTitleBarEx(vlfGuiAddText(0,0,"Prueba de VLF"), vlfGuiAddPictureResource("sysconf_plugin", "tex_bar_init_icon", 4, -2), 1, 0, 0x152654);
 
    while(1){
	sceCtrlReadBufferPositive(&pad, 1);
		if(pad.Buttons && up){
		y=y+10;}
 
 
 
            vlfGuiDrawFrame(); //Muestra en pantalla el marco actual.
	}
 
 
return 0;
}


La scene crece y crece...


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.

Por que no nos pegas mejor el

Por que no nos pegas mejor el codigo que has usado para eso? Porque la manera de hacerlo es... pues asi... poniendo dos condiciones para la pulsación de los botones (serian condiciones dobles si no quieres que se sobrepase un límite)

PD: en C en lugar de usar x=x+1, puedes usar x++ que es exactamente lo mismo ;)

PD2: te moví el hilo al foro correcto ;)

EDITADO:

Lo primero que estoy notando es la falta de un screen.flip (necesario para actualizar el estado de la pantalla)
Luego, creo que esto no está correcto:

if(pad.Buttons && up)

Mas bien sería así:
if(pad.Buttons & PSP_CTRL_UP)

Ve probando, haber que sale ;)

Imagen de CarlosCP

El screen.flip, estoy casi

El screen.flip, estoy casi seguro que solo se usa en LUA

Y respecto a lo del doble &, se pude usar & o &&, dado a que en la UNI nos lo han enseñado así.


La scene crece y crece...

Imagen de DeViaNTe

Ehmm...

Ehmm, por lo que veo, usas vlfGuiAddText() para añadir un texto a la escena. Esto no te devuelve ningún identificador? (Deberás mirarlo en la docu). Si no te devuelve ningún identificador entonces quizás no es posible modificar sus coordenadas. Si te lo devuelve, pos alguna otra función habrá. (O quitar ese texto y ponerlo en cada frame). Si no te devuelve identificador, la única solución posible es crear de nuevo la escena en cada frame.

Y sobre el & y el &&... En serio te dijeron que sirven los dos en la uni? Macho, despide al profesor...

En tu caso concreto, estas comparando "lógicamente" la lectura de controles, que será un número con todos los botones "oreados", con la constante para el botón arriba, que es un número distinto de 0.
Así, si pulsas cualquier boton, pad se hace distinto de 0, primera condicion cumple, && ( y lógico ), UP lo tienes definido como constante, distinta de 0, siempre te cumplirá, es decir, al apretar CUALQUIER botón, esa condición se cumplirá. Tu lo que quieres mirar es si el BIT de ARRIBA está dentro de los controles pulsados actualmente, asi que tendrás que comparar, pero refiriendote a los bits, así que deberás usar & ( y a orden de bits ).

Ejemplo:
  
operación:      &&        &        &
operador1:  0101     0101   0101
operador2:  0010     0010   0100
resultado:    ----      0000   0100
resultado:    TRUE    FALSE   TRUE

 


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

Bueno si, screen.flip() es

Bueno si, screen.flip() es propia de Lua, pero en C tambien hay una función análoga, si mal no recuerdo es flipScreen(), incluida en la librería graphics.h

Imagen de arielnmz

pero

se refiere a que uses PSP_CTRL_UP porque UP en si no es nada...

Imagen de CarlosCP

He usado un #define, lo que

He usado un #define, lo que pasa es que no lo he pegado en el post

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.