Anuncios Google

Ayuda palib

Hola, hace tiempo que no toco las palib. Pues recien me puse a hacer un proyecto y solo llevo el principio (Menu y Splash) pero no se poque me da error. Miren el codigo:

// Includes
#include <PA9.h>       // Include for PA_Lib
#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"
 
u32 puntosB = 0;
u32 puntosC = 0;
 
 
//Variables menus
u32 splash = 1;
u32 menu = 0;
 
// Function: main()
int main(int argc, char ** argv)
{
	PA_Init();    // Initializes PA_Lib
	PA_InitVBL(); // Initializes a standard VBL
 
 
 
	//Fondos
	PA_EasyBgLoad(1,3,Splash);
 
 
	// Infinite loop to keep the program running
	while (1)
	{
	   //splash-------------------------
	if(Pad.Newpress.A){
	   PA_DeleteBg(1,3);
	   PA_EasyBgLoad(0,3,Menu);
	   splash=0;
	   menu=1;
   }
 
   //menu-------------------------------
   if((Stylus.Y>83) && (Stylus.Y<113) && (Stylus.X>76) && (Stylus.X<176) && menu==1){
   PA_DeleteBg(0,3);
   PA_LoadSpritePal(0,0,(void*)Bola_Pal);
   PA_CreateSprite(0,0,(void*)Bola_Sprite,OBJ_SIZE_32X32,0,1,117,11);
   menu=0;
   }   
 
 
		PA_WaitForVBL();
	}
 
	return 0;
} // End of main()

La cuestion esk para pasar al menu despues de la splash embez de darle una vez a el boton A le tengo que dar dos veces. y depues cuando con el stylus presiono esas posiciones no me crea ningun sprite simplemente se queda en negro... ademas el menu se me ve como si tuviese un sprite colocado pero es negro y a rayas.


Mi blog: adriel0000.wordpress.com

 

un saludo.


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 Draco el dragon

Te sale de color negro porque

Te sale de color negro porque le pusiste de numero de paleta una que no existe. Fijate en la funcion de PA_CreateSprite y en la de PA_LoadSpritePal, tienen distinto numero de paleta. Y si el sprite es de 256 colores tienes que ponerle el modo 1 de color, el 0 es para 16 colores.

En vez de u32 usa booleanos. Es una tonteria poner dos u32 si solo les vas a dar valor de 0 o 1 para pasar de menus y splashes.

Tambien acuerdate de poner junto al Pad.Newpress. A la condicion de que splash es igual a 1.

Imagen de adriel0000

Muchas gracias

Muchas gracias por todo voy a probar y edito.

 

---EDIT---

Me sigue sin ir Bien. Lo de la splash lo solucione pero cuando le doy a la a me crea automaticamente el fondo del menu los sprites y me cambia todas las variables. miren:

// Includes
#include <PA9.h>       // Include for PA_Lib
#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"
 
u32 puntosB = 0;
u32 puntosC = 0;
 
 
//Variables menus
u32 menu = 0;
u32 comenzar = 0;
// Function: main()
int main(int argc, char ** argv)
{
	PA_Init();    // Initializes PA_Lib
	PA_InitVBL(); // Initializes a standard VBL
 
 
 
	//Fondos
	PA_EasyBgLoad(1,3,Splash);
 
 
	// Infinite loop to keep the program running
	while (1)
	{
	   //splash-------------------------
	if(Pad.Newpress.A && menu==0){
	   PA_DeleteBg(1,3);
	   PA_EasyBgLoad(0,2,Menu);
	   menu=1;
   }
 
 
 
   //menu-------------------------------
   if(menu==1){
    PA_EasyBgLoad(0,3,Menu);  
   } 
 
   if((Stylus.Y>83) && (Stylus.Y<113) && (Stylus.X>76) && (Stylus.X<176) && menu==1){
   PA_DeleteBg(0,3);
   PA_DeleteBg(1,3);
   comenzar=1;
   menu=0;
   }   
 
	if(comenzar==1){
	PA_LoadSpritePal(0,1,(void*)Cuadrado_Pal);
   PA_CreateSprite(0,1,(void*)Cuadrado_Sprite,OBJ_SIZE_64X64,1,1,117,11);
   comenzar=0;
	}   
 
		PA_WaitForVBL();
	}
 
	return 0;
} // End of main()


Mi blog: adriel0000.wordpress.com

 

un saludo.

Imagen de Draco el dragon

No entiendo lo que quieres

No entiendo lo que quieres decir con el error.

Haber, en ese codigo tienes puesto que si pulsas A y el menu es 0, eliminara un bg, creara otro y menu sera igual a 1 (por lo que si pulsas A despues esto no volvera a ocurrir)

Luego tienes puesto que si menu es igual a 1, cargara un bg POR BUCLE, es decir, que mientras sea cierto que menu es 1 seguira cargando ese mismo bg una y otra vez, por lo que es mejor que lo pongas ya en el primer "if".

Luego tienes lo de tocar en esa parcela, lo cual esta bien.

Y luego en comenzar tienes puesto que si comenzar es 1 cargara una paleta y el sprite, y luego comenzar sera 0.

A parte de lo del menu==1, no veo ningun problema. Tampoco se como lo quieres hacer (por si con error te refieres a que no sale como pensabas).

Imagen de adriel0000

Me

Me refiero a que cuando yo pulso A en la Splash coje me crea la Bg con el menu y el sprite que no deveria salir. y no me deja darle a esas corenadas con el stylus, o al menos no se me borra ninguna bg ni nada.


Mi blog: adriel0000.wordpress.com

 

un saludo.

Imagen de Draco el dragon

Añade la condicion de

Añade la condicion de Stylus.Newpress:

if(((Stylus.Y>83) && (Stylus.Y<113) && (Stylus.X>76) && (Stylus.X<176) && Stylus.Newpress) && menu==1){

Imagen de adriel0000

Muchas gracias

Todo anda escepto porque no me se me quita el fondod el menu.... lo unico que hice fue añadir tu codigo.

Imagen de Draco el dragon

No se a que menu te refieres,

No se a que menu te refieres, porque si te fijas cargas el bg "Menu" dos veces, primero en el primer if en la capa 2 y luego en el segundo if en la capa 3 (que como te dije antes, tal como lo tienes puesto cargara ese bg una vez por bucle hasta que toques con el lapiz tactil, lo que hara ademas que la CPU trabaje todo el rato), y luego solo eliminas uno de los dos.

Imagen de adriel0000

gracias

gracias lo soluciones todo.

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.