พิซซ่าหน้าเห็ดเผาะ
Location :
กรุงเทพฯ Thailand

[ดู Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 1 คน [?]




Group Blog
 
 
มิถุนายน 2554
 1234
567891011
12131415161718
19202122232425
2627282930 
 
29 มิถุนายน 2554
 
All Blogs
 
Friends' blogs
[Add พิซซ่าหน้าเห็ดเผาะ's blog to your web]
Links
 

 
pacman

จงเขียนเกม PACMAN โดยมีรายละเอียดดังนี้
1. มีลูกบอลทั้งหมด 80 ลูก
2. มีการเก็บคะแนนและแสดงคะแนนด้านซ้ายบน
3. หากกินลูกบอลหมดจะขึ้นคำว่า YOU WIN

screen shot


Thanks: Ro ฝากรูป


Thanks: Ro ฝากรูป


Thanks: Ro ฝากรูป


อธิบายการทำงานของโปรแกรม





codeเกม PACMAN 




#include

// ------------------------------------------------------------------
// CDX Objects
// ------------------------------------------------------------------
CDXScreen *Screen = 0; // The screen object, every program must have one
CDXInput *Input = 0; //*เป็นการประกาศpointer
FPSmanager *Fps = 0;

//ลองใส่ภาพ/////////////////
CDXSprite* pac = 0; //

//ตัวแปรในการเคลื่อนที่/////////////////
int x, y, i, j; //x y ใช้ในการเคลื่อนที่ i jสร้างลูปลูกบอล
int pc=0; //นับแต้ม

typedef struct //ข้อมูลของsprite ลูกบอล
{
int x, y;
CDXSprite* ball;
bool Active; //ตัวแปรบูลีน ตัวบอกสถานะ
}BALLINFO;
BALLINFO myball[10][8];

// ------------------------------------------------------------------
// cdx_Init - handles initialization of the CDX objects
// ------------------------------------------------------------------
BOOL cdx_Init() // จองหน่วยความจำ
{
Screen = new CDXScreen(); // new คือ จองหน่วยความจำ
Screen->Create( );
Screen->CreateWindowed( 480, 272, 32, SDL_DOUBLEBUF | SDL_HWSURFACE | SDL_INIT_TIMER ); // 480*272 คือขนาดหน้าจอPSP

Input = new CDXInput( ); // ปุ่มบังคับ
Input->Create( );

Fps = new FPSmanager( );
SDL_initFramerate( Fps );
SDL_setFramerate( Fps, 30 );

// TODO: Initialize your own CDX objects here

//ลอง//////////////////////////////////
pac = new CDXSprite( ); //
pac->Create( "pm.png", 1 ); //

//

for( i = 0; i < 10; i++ )
for( j = 0; j < 8; j++ )
{
myball[i][j].ball = new CDXSprite( );
myball[i][j].ball->Create( "ball.png", 1 );
myball[i][j].x = 45*(i+1);
myball[i][j].y = 32*(j+1);

myball[i][j].ball->SetPos( myball[i][j].x, myball[i][j].y );
myball[i][j].Active = true;
}



return TRUE;
}

// ------------------------------------------------------------------
// cdx_DeInit - handles cleanup of CDX objects
// ------------------------------------------------------------------
void cdx_DeInit( void )
{
// TODO: Destroy your CDX objects here

for( i = 0; i < 10; i++ )
for( j = 0; j < 8; j++ )
SAFEDELETE( myball[i][j].ball );

SAFEDELETE(pac);


SAFEDELETE( Fps ); //SAFEDELETEเป็นการคืนmemory
SAFEDELETE( Input );
SAFEDELETE( Screen );

//ลอง/////////////////
//


}

// ------------------------------------------------------------------
// cdx_DoFrame - performs drawing of the current frame
// ------------------------------------------------------------------
void cdx_DoFrame()
{
Input->Update( );

Screen->GetBackEx()->Fill(0); //Fill คือ สี

// TODO: Add code to draw your objects during each frame [ใส่codeเพิ่มเติม]

if( Input->GetKeyState(SDLK_RETURN)||( Input->GetKeyState(CDXKEY_JOYBUTN11))){
pc=0;
for( i = 0; i < 10; i++ )
for( j = 0; j < 8; j++ )
{
myball[i][j].ball->SetPos( myball[i][j].x, myball[i][j].y );
myball[i][j].Active = true;
}
}


//การเคลื่อนที่ของภาพ
if(( Input->GetKeyState(SDLK_RIGHT))||( Input->GetKeyState(CDXKEY_JOYBUTN9)))
x += 7;

if(( Input->GetKeyState(SDLK_LEFT))||( Input->GetKeyState(CDXKEY_JOYBUTN7)))
x -= 7;

if(( Input->GetKeyState(SDLK_UP))||( Input->GetKeyState(CDXKEY_JOYBUTN8)))
y -= 7;

if(( Input->GetKeyState(SDLK_DOWN))||( Input->GetKeyState(CDXKEY_JOYBUTN6)))
y += 7;


if(y>230) y=230;
if(y<0) y=0;

if(x>430) x=430;
if(x<0) x=0;

pac->SetPos( x, y );
pac->Draw( Screen->GetBack(), 0, 0, CDXBLT_TRANS );



for( i = 0; i < 10; i ++ )
for( j = 0; j < 8; j++ )
{
if( pac->SpriteHit(myball[i][j].ball) && myball[i][j].Active ){
myball[i][j].Active = false;
pc++;
}

if( myball[i][j].Active )
myball[i][j].ball->Draw( Screen->GetBack(), 0, 0, CDXBLT_TRANS );


} // for j


TextXY( Screen->GetBack(), 20, 5, 233, 227, 66, 255, ETA_LEFT ,"Your Score %d ",pc );


if(pc == 80){
TextXY( Screen->GetBack(), 20, 128, 233, 100, 66, 255, ETA_CENTER, "You Win" );
TextXY( Screen->GetBack(), 20, 148, 233, 100, 66, 255, ETA_CENTER, "Press Start to continue" );
}

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;
}



Create Date : 29 มิถุนายน 2554
Last Update : 1 กรกฎาคม 2554 21:16:48 น. 1 comments
Counter : 566 Pageviews.

 
เกมส์น่าเล่นมากsbo


โดย: sbo (ponglds ) วันที่: 1 เมษายน 2555 เวลา:16:17:29 น.  

ชื่อ :
Comment :
  *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 
 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.