flyinganimalstest02
Thanks: Ro ฝากรูป #include #include // ------------------------------------------------------------------ // CDX Objects // ------------------------------------------------------------------ CDXScreen *Screen = 0; // The screen object, every program must have one CDXInput *Input = 0; FPSmanager *Fps = 0; CDXSprite* bg1 = 0; CDXSprite* C1 = 0; int level=1; int hp=1; int x,y,i,j=0; POINT pos; unsigned int all_time; unsigned int time_blog; typedef struct Sprite { int x, y; int speed; int hp; CDXSprite *sprite; } Sprite; typedef struct bl{ int x, y; int acceleration; int size; CDXSprite *scr; Sprite bl1; bool active ; } bl; const int $_bl = 10; bl bl_1[$_bl]; int y_bl[] = {45,75,105,135,170,210}; // ------------------------------------------------------------------ // cdx_Init - handles initialization of the CDX objects // ------------------------------------------------------------------ BOOL cdx_Init() { Screen = new CDXScreen(); Screen->Create( ); Screen->CreateWindowed( 480, 272, 32, SDL_DOUBLEBUF | SDL_HWSURFACE | SDL_INIT_TIMER ); Input = new CDXInput( ); Input->Create( ); Fps = new FPSmanager( ); SDL_initFramerate( Fps ); SDL_setFramerate( Fps, 30 ); bg1 = new CDXSprite( ); bg1->Create( "Pgame/bg1.jpg", 1 ); C1 = new CDXSprite( ); C1->Create( "Pgame/C1.png", 1 ); // TODO: Initialize your own CDX objects here srand(time(NULL)); for (i=0; i < $_bl; i++) { bl_1[i].x = rand () % 480+480; bl_1[i].y = y_bl[rand()%6] ; bl_1[i].active = true; bl_1[i].acceleration= 2;// ความเร็ว bl_1[i].bl1.sprite=new CDXSprite(); bl_1[i].bl1.sprite->Create("Pgame/bl1.png", 32,32,1); bl_1[i].bl1.sprite->SetPos(bl_1[i].x, bl_1[i].y); } return TRUE; } // ------------------------------------------------------------------ // cdx_DeInit - handles cleanup of CDX objects // ------------------------------------------------------------------ void cdx_DeInit( void ) { // TODO: Destroy your CDX objects here for (i=0; i < $_bl; i++) { SAFEDELETE( bl_1[i].bl1.sprite ); } SAFEDELETE( C1 ); SAFEDELETE( bg1 ); SAFEDELETE( Fps ); SAFEDELETE( Input ); SAFEDELETE( Screen ); } // ------------------------------------------------------------------ // cdx_DoFrame - performs drawing of the current frame // ------------------------------------------------------------------ int myPosX = 0; void cdx_DoFrame() { Input->Update( ); Screen->GetBackEx()->Fill(0); // TODO: Add code to draw your objects during each frame //int myPosX = bg1->GetPosX(); all_time++; bg1->SetPosX(myPosX--); bg1->Draw( Screen->GetBack(), 0, 0, CDXBLT_TRANS ); TextXY(Screen->GetBack(), 0, 0, 255, 255, 255, 255, 255, "%d", myPosX); TextXY(Screen->GetBack(), 0, 20, 255, 255, 255, 255, 255, "%d", all_time); TextXY(Screen->GetBack(), 0, 40, 255, 255, 255, 255, 255, "%d", time_blog); TextXY(Screen->GetBack(), 0, 240, 255, 255, 255, 255, 255, "%d", time_blog); if( Input->GetKeyState(SDLK_F1)||Input->GetKeyState(CDXKEY_JOYBUTN11) ) {hp=1; all_time=0; time_blog=0; bg1->SetPosX(myPosX=0); C1->SetPos( pos.x=45,pos.y=50); for (i=0; i < $_bl; i++) { bl_1[i].active = false;} } for (i=0; i < $_bl; i++) { if ( bl_1[i].bl1.sprite->GetPosX() < -120) { bl_1[i].x = rand () % 480+480; ; bl_1[i].acceleration = 2; bl_1[i].bl1.sprite = new CDXSprite();//สร้างฟองอันใหม่ bl_1[i].active = true; bl_1[i].bl1.sprite->Create("Pgame/bl1.png",32,32,1); bl_1[i].bl1.sprite->SetPos(bl_1[i].x, bl_1[i].y); } else { bl_1[i].x = bl_1[i].bl1.sprite->GetPosX()-bl_1[i].acceleration;//เซ็ทตำแหน่งให้ฟองลอยไปข้างบน } bl_1[i].bl1.sprite->SetPosX( bl_1[i].x ); if(bl_1[i].active) bl_1[i].bl1.sprite->Draw(Screen->GetBack(), 0, 0, CDXBLT_TRANS); } for( j = 0; j < $_bl; j++ ) {if( bl_1[j].bl1.sprite->SpriteHit(C1) && bl_1[j].active) { hp--; } } pos.y += 4; if( Input->GetKeyState(SDLK_SPACE)|| Input->GetKeyState(CDXKEY_JOYBUTN3)) {pos.y -= 7; C1->Create("Pgame/C1T.png",61,49,1); } else { C1->Create("Pgame/C1.png",52,47,1); } C1->SetPos( pos.x=45,pos.y); C1->Draw( Screen->GetBack(), 0, 0, CDXBLT_TRANS ); if(pos.y>=210){hp--;} if(all_time>=300) { C1->SetPos( pos.x=45,pos.y=50); Screen->GetBackEx()->Fill(0); TextXY( Screen->GetBack(), 0,130,1000,1000,1000,1000,ETA_CENTER,"YOU CLEAR THE MISSION 1"); TextXY( Screen->GetBack(), 0,150,1000,1000,1000,1000,ETA_CENTER,"Press X to Continue."); } if(hp<=0) { Screen->GetBackEx()->Fill(0); TextXY( Screen->GetBack(), 0,130,1000,1000,1000,1000,ETA_CENTER,"GAME OVER"); TextXY( Screen->GetBack(), 0,150,1000,1000,1000,1000,ETA_CENTER,"Press F1 to play again"); } Screen->Flip( 0, 0, 1 ); SDL_framerateDelay( Fps ); } int main( int argc, char* args[] ) { #ifdef _PSP #ifndef NDEBUG pspDebugScreenInit( ); #endif SetupCallbacks( ); #endif cdx_Init(); while(1) { #ifdef WIN32 if( Input->GetKeyState(SDLK_ESCAPE) ) break; #endif cdx_DoFrame(); } cdx_DeInit(); return 0; }Thanks: Ro ฝากรูป Thanks: Ro ฝากรูป Thanks: Ro ฝากรูป Thanks: Ro ฝากรูป VIDEO
Create Date : 25 สิงหาคม 2554
0 comments
Last Update : 25 สิงหาคม 2554 23:10:43 น.
Counter : 721 Pageviews.