Anuncios Google

Ayuda, por favor

Miren estoy haciendo un travajito, pero me sale un estraño error. Aqui les dejo el codigo, la aplicacion compilada y unas imagenes de el problema, haver si alguien me puede solucionar el problem.

http://www.megaupload.com/?d=F594U9NJ
para descargarse la aplciacion compilada.

El codigo:

#include <PA9.h>
 
#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"
 
//--------------------------------------------------------------------------------------------------
 
// Función main
int main(int argc, char ** argv)
{
	PA_Init();
	PA_InitVBL();
//--------------------------------------------------------------------------------------------------	
	PA_EasyBgLoad(1, 1, BG1);
	PA_EasyBgLoad(1, 2, BG2);
	PA_EasyBgLoad(1, 3, BG3);
 
	PA_EasyBgLoad(0, 1, BG1);
	PA_EasyBgLoad(0, 2, BG2);
	PA_EasyBgLoad(0, 3, BG3);
 
	PA_InitParallaxY(0, 	0, 256, 192, 128);
	PA_InitParallaxY(1, 0, 256, 192, 128);
 
	s32 scroll = 0;	
//--------------------------------------------------------------------------------------------------
	PA_LoadSpritePal(0, 0, (void*)empezar_Pal);
	PA_LoadSpritePal(0, 0, (void*)creditos_Pal);
	PA_LoadSpritePal(0, 0, (void*)finalizar_Pal);
	PA_LoadSpritePal(0, 0, (void*)VolberMenu_Pal);
 
				// Aora los ponemos en pantalla
	PA_CreateSprite(0, 1,(void*)empezar_Sprite, OBJ_SIZE_64X32,1, 0, 95, 20);
	PA_CreateSprite(0, 2,(void*)creditos_Sprite, OBJ_SIZE_64X32,1, 0, 95, 80);
	PA_CreateSprite(0, 3,(void*)finalizar_Sprite, OBJ_SIZE_64X32,1, 0, 95, 140);
 
//--------------------------------------------------------------------------------------------------
 
	// Bucle infinito
	while (1)
	{
//--------------------------------------------------------------------------------------------------
				// Esto es para ael movimiento de el Fondo
	scroll += 1;	
 
	PA_ParallaxScrollY(0, -scroll);
	PA_ParallaxScrollY(1, -scroll);
//--------------------------------------------------------------------------------------------------
		if(PA_SpriteTouched(1)){
		PA_EasyBgLoad(0, 3, escritorio);
		PA_DeleteSprite(0, 1);
		PA_DeleteSprite(0, 2);
		PA_DeleteSprite(0, 3);
//		PA_CreateSprite(0, 4,(void*)cerrar_Sprite, OBJ_SIZE_32X32,1, 0, 190, 10);
	}	
//--------------------------------------------------------------------------------------------------
		if(PA_SpriteTouched(2)){
		PA_InitText(1, 0);
		PA_InitText(0, 0);
		PA_EasyBgLoad(1, 0, creditos1);
		PA_EasyBgLoad(0, 0, creditos0);
		s32 scrollx = 0;
		s32 scrolly = 0;
		PA_DualEasyBgScrollXY(3, scrollx, scrolly);
		PA_DeleteSprite(0, 1);
		PA_DeleteSprite(0, 2);
		PA_DeleteSprite(0, 3);
		PA_CreateSprite(0, 4,(void*)VolberMenu_Sprite, OBJ_SIZE_64X32,1, 0, 190, 160);
		PA_CreateSprite(0, 3,(void*)finalizar_Sprite, OBJ_SIZE_64X32,1, 0, -3, 162);
	}
//--------------------------------------------------------------------------------------------------
		if(PA_SpriteTouched(3)){
//		PA_EasyBgLoad(0, 0, fondo_creditos);
//		PA_DeleteSprite(0, 1);
//		PA_DeleteSprite(0, 2);
//		PA_DeleteSprite(0, 3);
	}
//--------------------------------------------------------------------------------------------------
 
 
		PA_WaitForVBL();
	}
 
	return 0;
}

Y aqui unas imagenes:
menuescritorio

                    asi es el menu                                   asi es si le damos a la primera opcion

Las demas opciones no tienen errores, bueno, la segunda, por que la tercera, ni la he empezado.

Espero que me puedan ayudar.

Gracias, adios.


I like:


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

Bueno

Sobre lo de que aparezca tan raro, prueba a poner lo de PA_EasyBgLoad(bla,bla,bla...); junto con PA_DeleteBg(bla,bla,bla...); para eliminar los fondos del menu. Lo mismo con las demas opciones.

Vamos, quedaria asi:

#include <PA9.h>
 
#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"
 
//--------------------------------------------------------------------------------------------------
 
// Función main
int main(int argc, char ** argv)
{
	PA_Init();
	PA_InitVBL();
//--------------------------------------------------------------------------------------------------	
	PA_EasyBgLoad(1, 1, BG1);
	PA_EasyBgLoad(1, 2, BG2);
	PA_EasyBgLoad(1, 3, BG3);
 
	PA_EasyBgLoad(0, 1, BG1);
	PA_EasyBgLoad(0, 2, BG2);
	PA_EasyBgLoad(0, 3, BG3);
 
	PA_InitParallaxY(0, 	0, 256, 192, 128);
	PA_InitParallaxY(1, 0, 256, 192, 128);
 
	s32 scroll = 0;	
//--------------------------------------------------------------------------------------------------
	PA_LoadSpritePal(0, 0, (void*)empezar_Pal);
	PA_LoadSpritePal(0, 0, (void*)creditos_Pal);
	PA_LoadSpritePal(0, 0, (void*)finalizar_Pal);
	PA_LoadSpritePal(0, 0, (void*)VolberMenu_Pal);
 
				// Aora los ponemos en pantalla
	PA_CreateSprite(0, 1,(void*)empezar_Sprite, OBJ_SIZE_64X32,1, 0, 95, 20);
	PA_CreateSprite(0, 2,(void*)creditos_Sprite, OBJ_SIZE_64X32,1, 0, 95, 80);
	PA_CreateSprite(0, 3,(void*)finalizar_Sprite, OBJ_SIZE_64X32,1, 0, 95, 140);
 
//--------------------------------------------------------------------------------------------------
 
	// Bucle infinito
	while (1)
	{
//--------------------------------------------------------------------------------------------------
				// Esto es para ael movimiento de el Fondo
	scroll += 1;	
 
	PA_ParallaxScrollY(0, -scroll);
	PA_ParallaxScrollY(1, -scroll);
//--------------------------------------------------------------------------------------------------
		if(PA_SpriteTouched(1)){
 
		PA_DeleteSprite(0, 1);
		PA_DeleteSprite(0, 2);
		PA_DeleteSprite(0, 3);
//		PA_CreateSprite(0, 4,(void*)cerrar_Sprite, OBJ_SIZE_32X32,1, 0, 190, 
// Con estas funciones eliminaras esos bgs que tenias del menu para que no
// aparezcan              
                PA_DeleteBg(1,//pantalla
1); // numero del bg
                PA_DeleteBg(1,2);
                PA_DeleteBg(1,3);
                PA_DeleteBg(0,1);
                PA_DeleteBg(0,2);
                PA_DeleteBg(0,3);
                PA_EasyBgLoad(0, 3, escritorio);
 
10);
	}	
//--------------------------------------------------------------------------------------------------
		if(PA_SpriteTouched(2)){
		PA_InitText(1, 0);
		PA_InitText(0, 0);
                PA_DeleteBg(1,1);
                PA_DeleteBg(1,2);
                PA_DeleteBg(1,3);
                PA_DeleteBg(0,1);
                PA_DeleteBg(0,2);
                PA_DeleteBg(0,3);
		PA_EasyBgLoad(1, 0, creditos1);
		PA_EasyBgLoad(0, 0, creditos0);
		s32 scrollx = 0;
		s32 scrolly = 0;
		PA_DualEasyBgScrollXY(3, scrollx, scrolly);
		PA_DeleteSprite(0, 1);
		PA_DeleteSprite(0, 2);
		PA_DeleteSprite(0, 3);
		PA_CreateSprite(0, 4,(void*)VolberMenu_Sprite, OBJ_SIZE_64X32,1, 0, 190, 160);
		PA_CreateSprite(0, 3,(void*)finalizar_Sprite, OBJ_SIZE_64X32,1, 0, -3, 162);
	}
//--------------------------------------------------------------------------------------------------
		if(PA_SpriteTouched(3)){
 
//		PA_EasyBgLoad(0, 0, fondo_creditos);
//		PA_DeleteSprite(0, 1);
//		PA_DeleteSprite(0, 2);
//		PA_DeleteSprite(0, 3);
	}
//--------------------------------------------------------------------------------------------------
 
 
		PA_WaitForVBL();
	}
 
	return 0;
}

Despues lo de PA_InitText(bla,bla,bla...); te recomiendo que lo pongas en el int main, porque si lo vas a cargar solo con ifs, lo vas a tener que cargar mas veces cada vez que lo necesites, y asi ahorras tiempo ;)

Imagen de sarutoby

Gracias

lo de el  PA_DelateBg(); ya lo conocia, pero no savia usarlo, aora ya me as enseado a usarlo, garcias. Pero por cierto, como impido que el fondo d la primera opcion se mueva?


I like:

Imagen de Draco el dragon

Seguro

Que hay varias maneras de hacerlo, aunque podrias crear una variable, como, por ejemplo:

s32 velfondo0parallax=0;
s32 velfondo1parallax=256;
s32 velfondo2parallax=192;
s32 velfondo3parallax=128;

Y sustituyes esas variables por los numeros correspondientes en PA_InitParallaxY(bla,bla,bla...); y despues, donde eliminas los bgs, pues pones que esos valores sean de 0, y asi ya no se mueven. No se si funcionara, puesto que no suelo usar Parallax, pero por lo menos te dara una idea ;)

Imagen de exterminator

Pongas lo que pongas,

hagas lo que hagas, de toda la vida un fondo a velocidad 0 se queda quieto.

Anda que, que no se os ocurran estas cosas... xD.

Salu2


Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.

Imagen de sarutoby

pero no es que no

se nos ocurran, lo que pasa es que quiero que el fondo se mueba, pero que cuando le de a las opciones, que los fondos desaparezcan junto al mivimiento, osea que el fondo de la primera opcion no se mueba,p ero el de el menu si.


I like:

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.