PACMAN

Posted: มิถุนายน 25, 2010 in ไม่มีหมวดหมู่

งานชิ้นแรกของเรา คือ เกมส์ Pacman

ทุกคนก้คงรู้จักเกมส์นี้กันอยู่แล้วเนอะ กินๆๆๆ แล้วก็จบ ไม่ยาก

เพราะฉะนั้น อาจารย์ก็เลยสั่งเราเป็นงานแรกมั้ง -*-

แต่พอได้มาลองทำ เออ ปวดหัวเนาะ

เอาล่ะ เรามาชำแหละ โค้ด ที่เราทำกันดีกว่า

ส่วนแรก การประกาศตัวแปร และจองหน่วยความจำ

code นี้จะเป็น ประกาศตัวแปร และจองหน่วยความจำ

scene::ITerrainScenceNode* terrain; จองหน่วยความจำในการใส่พื้นหลัง

ICameraSceneNode* camera = 0;
IAnimatedMesh* pac = 0;
IAnimatedMeshSceneNode* pac_node = 0;
3 ส่วนนี้คือ ส่วนกำหนดมุมกล้อง pacman

ส่วนนี้จะเป็นตัวกำหนดตัวแปรจำนวนลูกบอลแบบ แบบ Array และ Structure


g_engine.deviceType = video::EDT_DIRECT3D9;      –    ใช้เรียก model 3 มิติ เเบบ Direct3D9

g_engine.windowSize = core::dimension2d<s32>(900, 600);     –    กำหนดขนาด window

g_engine.bits = 16;      –   จำนวนบิต
g_engine.fullscreen = 0;     –    กำหนดว่า fullscreen หรือ windows

ส่วน code หลังจาก Todo เป็นการใส่พื้นหลังให้กับตัวเกมส์ โดยโหลดภาพ sky.jpg
เป็นพื้นหลังแบบ Skybox ใส่แล้วจะมี 6 ด้าน


ส่วนนี้ จะเป็นตัวกำหนดกล้องของ pacman และตัวลูกบอล แบบ Vector
และ โหลดโมเดล ตัว pacman มาใช้จากส่วนนี้ ชื่อว่า pacman.b3d



code ส่วนนี้ เป็นการเรียกลูกบอลมาใช้ทั้งหมด 80 ลูก
โดยใช้ คำสั่ง forในการสร้าง และนำ Array 2 มิติมาใช้ด้วย

ส่วนนี้เป็นส่วนประมวลผลแบ่งเป็น 2 ส่วน
โดยส่วนแรกเป็นส่วนของการบังคับการเคลื่อนที่ของ pacman โดยการใช้ keyboard

ส่วนที่ 2 เป็นการเก็บตัวลูกบอล หากมันโดนตัว pacman ชน ตัวลูกบอลก็จะหายไป


ส่วนนี้จะเป็นส่วนการคืนหน่วยความจำ
กำหนดการทำงานต่างๆ เมื่อจบเกมส์ ก็คืนหน่วยความจำให้กับระบบ
เมื่อเราเขียน code เรียบร้อย ไม่ผิดพลาด ติด error ใดๆ
สามารถ กด Run ได้สวยๆ ก็จะออกมาเป็นดังนี้

 
 
SCORE จะออกมาเป็นอย่างนี้
เมื่อจบเกมส์ จะขึ้น You Win


ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s