Main webboard   »   Irrlicht
 ย้อนกลับ  |  ตั้งกระทู้ใหม่  
Started by
Topic:   ตัวอยางการนำเข้าโมเดลหลายวัตถุ  (Read: 2281 times - Reply: 0 comments)   
AinaveltsaC

Posts: 9 topics
Joined: 25/1/2553

ตัวอยางการนำเข้าโมเดลหลายวัตถุ
« Thread Started on 17/2/2553 5:23:00 IP : 110.164.116.217 »
 

 

เราสามมารถเคลื่อนกล้องไปมาได้อน่างอิสระโดยใช้การควมคุมด้วยเมาส์ และปุ่มลูกศร

ICameraSceneNode* camera = 0;   ประกาศตัวควบคุมมุมกล้อง


IAnimatedMesh* model = 0;    ประกาศตัวแปรสำหรับเอาไว้โหลดโมเดลตัวแรก

IAnimatedMeshSceneNode* model_node =0;    ประกาศตัวแปรสำหรับควบคุมโมเดล ในการเปลี่ยนตำแหน่งหรือย่อขยายขนาด ตัวแรก

IAnimatedMesh* model1 = 0;    (เช่นเดียวเดียวกับด้านบนแต่ไล่ไปเป็น โมเดลตัวที่ 2,3,4,5)
IAnimatedMeshSceneNode* model1_node =0;


IAnimatedMesh* model2 = 0;
IAnimatedMeshSceneNode* model2_node =0;


IAnimatedMesh* model3 = 0;
IAnimatedMeshSceneNode* model3_node =0;


IAnimatedMesh* model4 = 0;
IAnimatedMeshSceneNode* model4_node =0;

camera = g_engine.smgr->addCameraSceneNodeFPS();  สร้างมุมกล้องแบบมุมมองบุคคลที่1(FPS = First Person Shooting) เราสามารถใช้ลูกศรบนคีย์บอร์ดและเมาในการควบคุมทิศทาง
camera->setPosition( vector3df(500,500,-100));  ตั้งค่าเริ่มต้นของตำแหน่งที่ตั้งแรก
camera->setRotation( vecdf(45,0,0))tor3;   ตั้งค่าเริ่มต้นของมุมกล้องแรกที่หันว่าหันอยู่ทางไหน

model = g_engine.smgr ->getMesh("001.x");  เป็นการโหลดโมเดล 001.x ของเราไปเก็บไว้ในตัวแปร modelซึ่งตัว 001.x ของเราจะต้องอยู่ในFolderโปรเจคของเราด้วย **Textureด้วย**

model_node = g_engine.smgr->addAnimatedMeshSceneNode(model);   ใส่ model ของเราลงไปในตัวควบคุมเพื่อใช้ในการอ้างอิงเวลาเรา เปลี่ยนตำแหน่งหรือย่อขยายขนาด
model_node->setMaterialFlag(EMF_LIGHTING,false); เรียกตัวควบคุมmodelที่ชื่อmodel_nodeให้ set พื้นผิวของโมเดลไม่ให้มีการกระทบของแสง

model_node->setPosition(vector3df(300,0,0))   เรียกตัวควบคุมmodelที่ชื่อmodel_nodeให้ set ตำแหน่งที่ั้งของ model
model_node->setScale(vector3df(8,8,8));   เรียกตัวควบคุมmodelที่ชื่อmodel_nodeให้ set ขนาดของ model

 

model1 = g_engine.smgr ->getMesh("002.x");   เช่นกันกลับด้านบนแต่ต้องเปี่ยนโมลเดล ที่จะโหลดเป็นตัวที่สอง พร้อมกับสร้าง model1 เพื่อเก็บ 002.x

model1_node = g_engine.smgr->addAnimatedMeshSceneNode(model1);  ใส่ model1 ของเราลงไปในตัวควบคุมเพื่อใช้ในการอ้างอิงเวลาเรา เช่นเดียวกับmodel

model1_node->setMaterialFlag(EMF_LIGHTING,false);
model1_node->setPosition(vector3df(0,0,0));
model1_node->setScale(vector3df(20,20,20));

model2 = g_engine.smgr ->getMesh("003.x");
model2_node = g_engine.smgr->addAnimatedMeshSceneNode(model2);
model2_node->setMaterialFlag(EMF_LIGHTING,false);
model2_node->setPosition(vector3df(150,0,0));
model2_node->setScale(vector3df(8,8,8));

model3 = g_engine.smgr ->getMesh("004.x"); 
model3_node = g_engine.smgr->addAnimatedMeshSceneNode(model3);
model3_node->setMaterialFlag(EMF_LIGHTING,false);
model3_node->setPosition(vector3df(450,0,0));
model3_node->setScale(vector3df(8,8,8));

model4 = g_engine.smgr ->getMesh("005.x");
model4_node = g_engine.smgr->addAnimatedMeshSceneNode(model4);
model4_node->setMaterialFlag(EMF_LIGHTING,false);
model4_node->setPosition(vector3df(600,0,0));
model4_node->setScale(vector3df(8,8,8));

 
   Link to Post - Back to Top

Bookmark and Share

กรุณาเข้าสู่ระบบหรือสมัครสมาชิกก่อนโพสข้อความค่ะ
»
คลิ๊กที่นี่
   Main webboard   »   Irrlicht
 ย้อนกลับ  |  ตั้งกระทู้ใหม่  
Advertising Zone    Close

ด้วยความปราถนาดีจาก "สยามทูเว็บดอทคอม" และเพื่อป้องกันการเปิดเว็บไซต์เพื่อหลอกลวงขายของ โปรดตรวจสอบร้านค้าให้แน่ใจก่อนตัดสินใจซื้อของทุกครั้งนะคะ    อ่านเพิ่มเติม ...