#include "ExampleApplication.h"class TutorialApplication : public ExampleApplication{protected:public:TutorialApplication(){}~TutorialApplication(){}protected:virtual void createCamera(void){//membuat kameramCamera = mSceneMgr->createCamera("PlayerCam");//posisi dan arah kameramCamera->setPosition(Vector3(0,300,400));mCamera->lookAt(Vector3(0,0,0));//mengatur jarak kliping terdekatmCamera->setNearClipDistance(10);}virtual void createViewports(void){//membuat satu viewport untuk seluruh windowViewport* vp = mWindow->addViewport(mCamera);//mengatur warna background viewportvp->setBackgroundColour(ColourValue(1.0,1.0,1.0));//mengatur rasio kameramCamera->setAspectRatio(Real (vp->getActualWidth()) / Real (vp->getActualHeight()));}void createScene(void){Entity *ent;Entity *ent1;Entity *ent2;Light *light;mSceneMgr->setAmbientLight(ColourValue(0,0,0));mSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_ADDITIVE);ent = mSceneMgr->createEntity("Ninja", "ninja.mesh");ent->setCastShadows(true);SceneNode *node = mSceneMgr->getRootSceneNode()->createChildSceneNode ("Ninja", Vector3(70,0,0));node->attachObject( ent );node->yaw(Degree(-180));node->scale(0.5,0.5,0.5);ent1 = mSceneMgr->createEntity("Ninja2", "ninja.mesh");ent1->setCastShadows(true);SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode ("Ninja2", Vector3(-70,0,0));node1->attachObject( ent1 );node1->yaw(Degree(-180));node1->scale(0.5,0.5,0.5);ent2 = mSceneMgr->createEntity("Rumah", "tudorhouse.mesh");ent2->setCastShadows(true);SceneNode *node2 = mSceneMgr->getRootSceneNode()->createChildSceneNode ("Rumah", Vector3(0,280,-500));node2->attachObject( ent2 );node2->scale(0.5,0.5,0.5);Plane plane(Vector3::UNIT_Y, 0);//Register planeMeshManager::getSingleton().createPlane("ground1",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane,1500,1500,20,20,true,1,5,5,Vector3::UNIT_Z);//menciptakan objek tanahent = mSceneMgr->createEntity("GroundEntity1", "ground1");mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(ent);ent->setMaterialName("Examples/GrassFloor");ent->setCastShadows(false);light = mSceneMgr->createLight("Light1");light->setType(Light::LT_POINT);light->setPosition(Vector3(400, 250, 150));light->setDiffuseColour(1.0, 1.0, 1.0);light->setSpecularColour(1.0, 1.0, 1.0);light = mSceneMgr->createLight("Light3");light->setType(Light::LT_DIRECTIONAL);light->setDiffuseColour(ColourValue(0, 0, 0));light->setSpecularColour(ColourValue(0, 1, 0));light->setDirection(Vector3( 0, -1, 1 ));light = mSceneMgr->createLight("Light2");light->setType(Light::LT_SPOTLIGHT);light->setDiffuseColour(0, 0, 1.0);light->setSpecularColour(0, 0, 1.0);light->setDirection(-1, -1, 0);light->setPosition(Vector3(300, 300, 0));light->setSpotlightRange(Degree(35), Degree(50));}};#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32#define WIN32_LEAN_AND_MEAN#include "windows.h"INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )#elseint main(int argc, char **argv)#endif{// Create application objectTutorialApplication app;try {app.go();} catch( Exception& e ) {#if OGRE_PLATFORM == PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WIN32MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occurred!", MB_OK | MB_ICONERROR | MB_TASKMODAL);#elsefprintf(stderr, "An exception has occurred: %s\n",e.getFullDescription().c_str());#endif}return 0;}
tampilan output :
No comments:
Post a Comment