[PALIB]Haber quien me corrije esto xD...

Bueno, estoy intentando hacer un juego de navecitas, y tiritos, etc, y no funciona!!! [buuuaaaa]

Osea, para mi que esta perfecto el codigo, no tengo idea de porque no funca [buuuaaaa] [buuuaaaa] [buuuaaaa] [buuuaaaa]

Osea, compila bien, pero cuando disparo hace cosas raras...

Aca les dejo el código...




// Includes
#include <PA9.h> // Include de las PA_Lib
#include "gfx/all_gfx.c"
#include "gfx/all_gfx.h"

typedef struct{
   s16 x, y;
   float vx, vy;
   u16 angle;
}info;

info nave;
info bala[];
s16 numbalas = 0;
s32 i;

// Funcion: main()
int main(int argc, char ** argv)
{
PA_Init(); // Iniciamos PA_Lib
PA_InitVBL(); // Iniciamos VBL



PA_LoadSpritePal(0,0,(void*)sprite0_Pal);
PA_DualLoadSpritePal(0,(void*)sprite0_Pal);
PA_CreateSprite(0,0,(void*)nave_Sprite,OBJ_SIZE_64X64,1,0,112,176);
PA_SetSpriteRotEnable(0,0,0);

nave.x = 128;
nave.y = 192;
nave.angle = 0;
nave.vy = 0;
nave.vx = 0;



while (1)
{
PA_CheckLid();
PA_WaitForVBL();

///////////////////////////////////////////////////////////////////
/////////////////////////////////MOVIMIENTO NAVE///////////////////

if((Pad.Held.R) || (Pad.Held.L))shot(nave.angle-128);

nave.x += nave.vx;
nave.y += nave.vy;
   
PA_SetSpriteXY(0, 0, nave.x-32, nave.y-42);

nave.angle = PA_GetAngle(nave.x, nave.y, Stylus.X, Stylus.Y);
      PA_SetRotsetNoZoom(0, 0, nave.angle-128);
/////////////////////////////////////MOVIMIENTO NAVE END//////////////
///////////////////////////////MOVIMIENTO BALAS///////////////////////
for(i = 0; i<=numbalas; i++){
   bala[i].x += bala[numbalas].vx;
   bala[i].y -= bala[numbalas].vy;
}   
////////////////////////////////MOVIMIENTO BALAS END//////////////////
///////////////////////////////COLISIONES/////////////////////////////



///////////////////////////////COLISIONES END/////////////////////////
//////////////////////////////////////////////////////////////////////

}
return 0;
} //Fin de main()

/////////////////////////////////////////////////////////////////////
/////////////////////////////////FUNCIONES///////////////////////////
void shot(u16 angle){
   numbalas += 1;
   PA_DualCreateSprite(numbalas,(void*)bala_Sprite,OBJ_SIZE_8X8,1,0,128-4,192+48+192-50);
   bala[numbalas].angle = angle;
   bala[numbalas].vx = PA_Cos(bala[numbalas].angle)/32;
   bala[numbalas].vy = PA_Sin(bala[numbalas].angle)/32;
}   
///////////////////////////////////FUNCIONES END////////////////////
////////////////////////////////////////////////////////////////////



No se porque no funca buaaaaaaaaaaaa...

El codigo es eso, y se necesitan 2 imagenes...

Una de 8x8 que se llame bala.png, y otra de 64x64 que se llame nave.png...

Gracias desde ya, y si no me pueden ayudar por lo menos se que ayude a alguien xD...
En vez de esto:

for(i = 0; i<=numbalas; i++){
bala[i].x += bala[numbalas].vx;
bala[i].y -= bala[numbalas].vy;
}

Pon esto:

for(i = 0; i<=numbalas; i++){
bala[i].x += bala[i].vx;
bala[i].y -= bala[i].vy;
}


Supongo que sera el problema. Es una chorradita, pero pasa mucho (a mi por lo menos).
Juassssss...... que nivel. Yo aún no se eso ni de coña...... :/
2 respuestas