ZereoX
06/04/2008, 06h09
OK j'essai de faire un animation de background may comme image est grande je ne c'est pas comment le faire:
#include <oslib/oslib.h>
PSP_MODULE_INFO("Animation", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
OSL_IMAGE *Battle_Animation0, *Battle_Animation1, *Battle_Animation2, *Battle_Animation3, *Battle_Animation4, *Battle_Animation5, *Current_Bg;
int Bg_Battle_Timer;
int Bg_Battle_Current;
void Bg_Battle_Animation();
void Bg_Battle_Animation_Loading();
int main(){
oslInit(0);
oslInitGfx(OSL_PF_8888, 1);
Bg_Battle_Animation();
while (!osl_quit)
{
oslStartDrawing();
oslCls();
Bg_Battle_Animation();
oslDrawImage(Current_Bg);
oslEndDrawing();
oslSyncFrame();
}
oslEndGfx();
oslQuit();
return 0;
}
void Bg_Battle_Animation(){
Bg_Battle_Timer++;
if(Bg_Battle_Timer == 6){
Bg_Battle_Timer = 0;
Bg_Battle_Current++;
if(Bg_Battle_Current == 5) Bg_Battle_Current = 0;
}
if(Bg_Battle_Current == 0){
Current_Bg = Battle_Animation0;}
else if(Bg_Battle_Current == 1){
Current_Bg = Battle_Animation1;}
else if(Bg_Battle_Current == 2){
Current_Bg = Battle_Animation2;}
else if(Bg_Battle_Current == 3){
Current_Bg = Battle_Animation3;}
else if(Bg_Battle_Current == 4){
Current_Bg = Battle_Animation4;}
else if(Bg_Battle_Current == 5){
Current_Bg = Battle_Animation5;}
}
void Bg_Battle_Animation_Loading(){
Battle_Animation0 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation1.png", OSL_IN_RAM, OSL_PF_5551);
Battle_Animation1 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation2.png", OSL_IN_RAM, OSL_PF_5551);
Battle_Animation2 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation3.png", OSL_IN_RAM, OSL_PF_5551);
Battle_Animation3 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation4.png", OSL_IN_RAM, OSL_PF_5551);
Battle_Animation4 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation5.png", OSL_IN_RAM, OSL_PF_5551);
Battle_Animation5 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation6.png", OSL_IN_RAM, OSL_PF_5551);
}
Ceci ne fonctione pas et est semble tres ineficace.
#include <oslib/oslib.h>
PSP_MODULE_INFO("Animation", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
OSL_IMAGE *Battle_Animation0, *Battle_Animation1, *Battle_Animation2, *Battle_Animation3, *Battle_Animation4, *Battle_Animation5, *Current_Bg;
int Bg_Battle_Timer;
int Bg_Battle_Current;
void Bg_Battle_Animation();
void Bg_Battle_Animation_Loading();
int main(){
oslInit(0);
oslInitGfx(OSL_PF_8888, 1);
Bg_Battle_Animation();
while (!osl_quit)
{
oslStartDrawing();
oslCls();
Bg_Battle_Animation();
oslDrawImage(Current_Bg);
oslEndDrawing();
oslSyncFrame();
}
oslEndGfx();
oslQuit();
return 0;
}
void Bg_Battle_Animation(){
Bg_Battle_Timer++;
if(Bg_Battle_Timer == 6){
Bg_Battle_Timer = 0;
Bg_Battle_Current++;
if(Bg_Battle_Current == 5) Bg_Battle_Current = 0;
}
if(Bg_Battle_Current == 0){
Current_Bg = Battle_Animation0;}
else if(Bg_Battle_Current == 1){
Current_Bg = Battle_Animation1;}
else if(Bg_Battle_Current == 2){
Current_Bg = Battle_Animation2;}
else if(Bg_Battle_Current == 3){
Current_Bg = Battle_Animation3;}
else if(Bg_Battle_Current == 4){
Current_Bg = Battle_Animation4;}
else if(Bg_Battle_Current == 5){
Current_Bg = Battle_Animation5;}
}
void Bg_Battle_Animation_Loading(){
Battle_Animation0 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation1.png", OSL_IN_RAM, OSL_PF_5551);
Battle_Animation1 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation2.png", OSL_IN_RAM, OSL_PF_5551);
Battle_Animation2 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation3.png", OSL_IN_RAM, OSL_PF_5551);
Battle_Animation3 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation4.png", OSL_IN_RAM, OSL_PF_5551);
Battle_Animation4 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation5.png", OSL_IN_RAM, OSL_PF_5551);
Battle_Animation5 = oslLoadImageFile("Images/Background/Bg_Battle_Animation/Bg_Battle_Animation6.png", OSL_IN_RAM, OSL_PF_5551);
}
Ceci ne fonctione pas et est semble tres ineficace.