亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? application.cpp

?? 坦克大戰
?? CPP
字號:
#include <Ogre.h>
#include <OIS/OIS.h>
#include <CEGUI/CEGUI.h>
#include <OgreCEGUIRenderer.h>

#include "NxOgre.h"
#include "Application.h"

Application::Application():
	mRoot(0),mKeyboard(0),mInputManager(0),mRenderer(0),mSystem(0),
	mInputHandler(0),mWindow(0),mCamera(0),mWorld(0),mScene(0)
{
}

Application::~Application()
{
	if(mInputManager)
	{
		if(mKeyboard)
			mInputManager->destroyInputObject(mKeyboard);
		OIS::InputManager::destroyInputSystem(mInputManager);
	}

	if(mWorld)
		delete mWorld;

    delete mRenderer;
    delete mSystem;

    delete mInputHandler;
    delete mRoot;
	
}

void Application::createRoot()
{
    mRoot = new Root();
}

void Application::defineResources()
{
    String secName, typeName, archName;
    ConfigFile cf;
    cf.load("resources.cfg");

    ConfigFile::SectionIterator seci = cf.getSectionIterator();
    while (seci.hasMoreElements())
    {
        secName = seci.peekNextKey();
        ConfigFile::SettingsMultiMap *settings = seci.getNext();
        ConfigFile::SettingsMultiMap::iterator i;
        for (i = settings->begin(); i != settings->end(); ++i)
        {
            typeName = i->first;
            archName = i->second;
            ResourceGroupManager::getSingleton().addResourceLocation(archName, typeName, secName);
        }
    }
}

void Application::setupRenderSystem()
{
    if (!mRoot->restoreConfig() && !mRoot->showConfigDialog())
        throw Exception(52, "User canceled the config dialog!", "Application::setupRenderSystem()");

    //// Do not add this to the application
    //RenderSystem *rs = mRoot->getRenderSystemByName("Direct3D9 Rendering Subsystem");
    //mRoot->setRenderSystem(rs);
    //rs->setConfigOption("Full Screen", "No");
    //rs->setConfigOption("Video Mode", "800 x 600 @ 32-bit colour");
}

void Application::createRenderWindow()
{
    mRoot->initialise(true, "My Game -- Crazy Tank");

    //// Do not add this to the application
    //mRoot->initialise(false);
    //HWND hWnd = 0;  // Get the hWnd of the application!
    //NameValuePairList misc;
    //misc["externalWindowHandle"] = StringConverter::toString((int)hWnd);
    //RenderWindow *win = mRoot->createRenderWindow("Main RenderWindow", 800, 600, false, &misc);
}

void Application::initializeResourceGroups()
{
    TextureManager::getSingleton().setDefaultNumMipmaps(5);
    ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
}

void Application::createScene()
{
    mSceneMgr = mRoot->createSceneManager(ST_EXTERIOR_CLOSE, "ST_EXTERIOR_CLOSE");

    mCamera = mSceneMgr->createCamera("Camera");
	mCamera->setNearClipDistance(5);

	SceneNode *node = mSceneMgr->getRootSceneNode()->createChildSceneNode("CameraFree", Vector3(0, 0, 0));
    node->setPosition(-200,800,-200);
    node->pitch(Degree(-60));
	node->yaw(Degree(-120),Node::TS_WORLD);
    node->attachObject(mCamera);
	mViewType = FREE;

	mSceneMgr->getRootSceneNode()->createChildSceneNode("CameraFlyBy");


	mWindow = mRoot->getAutoCreatedWindow();
	Viewport *vp = mWindow->addViewport(mCamera);

	ColourValue fadeColour(0.9, 0.9, 0.9);
    //mSceneMgr->setFog(FOG_LINEAR, fadeColour, 0.0, 80, 130);
    mWindow->getViewport(0)->setBackgroundColour(fadeColour);

	// Set ambient light
    mSceneMgr->setAmbientLight(ColourValue(0.5, 0.5, 0.5));

    // Create a light
    Light* l = mSceneMgr->createLight("MainLight");
    l->setPosition(200,200,50);

    //Plane plane;
    //plane.d = 100;
    //plane.normal = Vector3::NEGATIVE_UNIT_Y;

    mSceneMgr->setWorldGeometry("terrain.cfg");

    //mSceneMgr->setSkyPlane(true, plane, "Examples/CloudySky", 500, 20, true, 0.5, 150, 150);

	mSceneMgr->setSkyDome(true, "Examples/CloudySky", 5, 8, 500);
	mSceneMgr->setShadowTechnique(Ogre::SHADOWTYPE_TEXTURE_MODULATIVE);


	mWorld = new World("log: html, time-controller: ogre");
	mScene = mWorld->createScene("Main", mSceneMgr, "gravity: 0 -9.8 0, floor: no, renderer: ogre");

	mWorld->getSDK()->getFoundationSDK().getRemoteDebugger()->connect("localhost");

	Resources::ResourceSystem::getSingleton()->addHeightfieldAs("file://terrain.xhf", "wave");
	Resources::Heightfield* hf = Resources::ResourceSystem::getSingleton()->getHeightfield("wave");

	mScene->createActor("Terrain", new Terrain(hf, float3(1500.0f, 50.0f, 1500.0f), "", "centering: xz-above, hole-material: 65535"), Ogre::Vector3(750, 0, 750), "static: yes");

	/*for(int i=0;i<10;i++)
	{
		for(int j=0;j<10;j++)
		{
			Body* body = mScene->createBody("cube", new Cube(5), Vector3(0, 0, 0), "model: cube.1m.mesh, scale: 5 5 5", "mass: 10");
			body->setGlobalPosition(Ogre::Vector3(150*i, 300, 150*j));
		}
	}*/

	/*
	Resources::ResourceSystem::getSingleton()->addMeshAs("file://tankBB1.nxs", "tankBB1");
	Resources::ResourceSystem::getSingleton()->addMeshAs("file://tankBB2.nxs", "tankBB2");
	Resources::ResourceSystem::getSingleton()->addMeshAs("file://tankBB3.nxs", "tankBB3");
	Resources::ResourceSystem::getSingleton()->addMeshAs("file://tankBB4.nxs", "tankBB4");

	Body* tank = mScene->createBody("tank", new Convex("tankBB1"), Vector3(100, 100, 100), "model: tank.mesh", "mass: 1000");
	tank->addShape(new Convex("tankBB2"));
	tank->addShape(new Convex("tankBB3"));
	tank->addShape(new Convex("tankBB4"));*/

	//Resources::ResourceSystem::getSingleton()->addMesh("file://tankBB1.nxs");
	//Body* tank = mScene->createBody("tank", new Convex(Resources::ResourceSystem::getSingleton()->getMesh("tankBB1.nxs")), Vector3(100, 100, 100), "model: tank.mesh", "mass: 1000");
	
	NxOgre::Material* mat = mScene->createMaterial("tank_mat");
	mat->setRestitution(0.1);
	mat->setDynamicFriction(0.5);
    mat->setDynamicFrictionV(0.9);
    mat->setStaticFriction(0.6);
	mat->setStaticFrictionV(1.0);
	mat->setDirOfAnisotropy(Ogre::Vector3(1,0,0));
    mat->setFlags(NX_MF_ANISOTROPIC);
	mat->setFrictionCombineMode(NxCombineMode::NX_CM_AVERAGE);

	ShapeParams sp; 
    sp.setToDefault();
    sp.mMaterial = mat->getMaterialIndex(); 
	
	Body* tank = mScene->createBody("player", new Cube(13,4,5,sp), Vector3(350, 50, 350), "model: tank.mesh", "mass: 300");
	tank->setCMassOffsetLocalPosition(Ogre::Vector3(0,-1.5,0));
	SceneNode* playerNode = static_cast<OgreNodeRenderable*>(static_cast<Body*>(mScene->getActor("player"))->getRenderable())->getNode();
	playerNode->createChildSceneNode("CameraTrace", Vector3(30, 15, 0));
}

void Application::setupInputSystem()
{
    size_t windowHnd = 0;
    std::ostringstream windowHndStr;
    OIS::ParamList pl;
    RenderWindow *win = mRoot->getAutoCreatedWindow();

    win->getCustomAttribute("WINDOW", &windowHnd);
    windowHndStr << windowHnd;
    pl.insert(std::make_pair(std::string("WINDOW"), windowHndStr.str()));
    mInputManager = OIS::InputManager::createInputSystem(pl);

    try
    {
        mKeyboard = static_cast<OIS::Keyboard*>(mInputManager->createInputObject(OIS::OISKeyboard, false));
        mMouse = static_cast<OIS::Mouse*>(mInputManager->createInputObject(OIS::OISMouse, false));
        //mJoy = static_cast<OIS::JoyStick*>(mInputManager->createInputObject(OIS::OISJoyStick, false));

		mInputHandler = new InputHandler(mKeyboard,mMouse,this);
		mRoot->addFrameListener(mInputHandler);
    }
    catch (const OIS::Exception &e)
    {
        throw new Exception(42, e.eText, "Application::setupInputSystem");
    }
}

void Application::setupCEGUI()
{
    SceneManager *mSceneMgr = mRoot->getSceneManager("ST_EXTERIOR_CLOSE");

    // CEGUI setup
    mRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, Ogre::RENDER_QUEUE_OVERLAY, false, 3000, mSceneMgr);
    mSystem = new CEGUI::System(mRenderer);

    // Other CEGUI setup here.

}

void Application::createFrameListener()
{
}

void Application::startRenderLoop()
{
    mRoot->startRendering();

    //// Do not add this to the application
    //while (mRoot->renderOneFrame())
    //{
    //    // Do some things here, like sleep for x milliseconds or perform other actions.
    //}
}

void Application::go()
{
    createRoot();
    defineResources();
    setupRenderSystem();
    createRenderWindow();
    initializeResourceGroups();
	createScene();
    setupInputSystem();
    setupCEGUI();
    createFrameListener();
    startRenderLoop();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线播放| 成人免费在线观看入口| 亚洲精品视频一区二区| 成人免费观看男女羞羞视频| 久久一区二区三区四区| 国产91露脸合集magnet| 中文字幕在线视频一区| 91黄色免费看| 另类欧美日韩国产在线| 国产三级精品三级| 色婷婷精品久久二区二区蜜臀av| 亚洲免费大片在线观看| 日韩免费性生活视频播放| 成人久久18免费网站麻豆| 亚洲一区二区三区小说| 欧美xxxxx裸体时装秀| 成人av免费网站| 国产成人日日夜夜| 亚洲精品写真福利| 久久影院午夜论| 欧美一区二区观看视频| 99久久伊人精品| 国产一区二区不卡在线 | 丁香啪啪综合成人亚洲小说| 亚洲人成精品久久久久| 国产网红主播福利一区二区| 欧美三级视频在线播放| 成人毛片视频在线观看| 日本怡春院一区二区| 一区二区成人在线观看| 亚洲欧美电影院| 国产精品久久久久久久久久免费看| 日本电影亚洲天堂一区| 自拍av一区二区三区| 成人99免费视频| 国产白丝精品91爽爽久久| 国产99精品国产| 风间由美一区二区三区在线观看| 国产专区欧美精品| 国产成人精品一区二| 91伊人久久大香线蕉| kk眼镜猥琐国模调教系列一区二区| 色婷婷久久99综合精品jk白丝| 波多野结衣欧美| 欧美亚洲一区二区在线观看| 欧美日韩一区二区三区四区五区| 91福利国产精品| 精品国产一区二区精华| 国产精品福利电影一区二区三区四区| 亚洲国产精品传媒在线观看| 亚洲精品久久久久久国产精华液| 亚洲一区二区三区不卡国产欧美| 日本美女一区二区三区视频| 国产白丝精品91爽爽久久 | jlzzjlzz亚洲女人18| 欧美视频在线观看一区| 欧美经典一区二区| 日本中文在线一区| 欧美日韩视频专区在线播放| 99久久99久久免费精品蜜臀| 一本一道综合狠狠老| 成人激情图片网| 国产精品午夜在线| 2020日本不卡一区二区视频| 91精品综合久久久久久| 《视频一区视频二区| 一区二区在线电影| 91精品一区二区三区久久久久久 | 日韩精品国产欧美| 337p粉嫩大胆噜噜噜噜噜91av| 国产精品三级电影| 韩日av一区二区| 欧美视频一区二区三区在线观看| 欧美变态tickling挠脚心| 国产精品美女视频| 亚洲影院免费观看| 欧美色爱综合网| 欧美va在线播放| 久久久蜜桃精品| 97精品久久久午夜一区二区三区| 中文字幕av一区二区三区免费看 | 欧美二区乱c少妇| 国产91对白在线观看九色| 亚洲精品成人在线| 久久久91精品国产一区二区精品 | 九九国产精品视频| 欧美日本视频在线| 国产91丝袜在线播放九色| 欧美丰满一区二区免费视频| 欧美综合久久久| 日韩丝袜情趣美女图片| 久久久另类综合| 7777精品伊人久久久大香线蕉的| 韩国一区二区在线观看| 亚洲国产欧美日韩另类综合| 久久亚洲精品小早川怜子| 欧美精选一区二区| 国产福利一区二区三区视频| 亚洲国产综合91精品麻豆| 久久精品亚洲精品国产欧美 | 欧美一区二区三区在线视频 | 欧美一区二区三区四区视频| 91福利国产精品| 国产成人av电影在线播放| 国产在线精品一区二区不卡了| 亚洲三级免费观看| 国产精品国产自产拍高清av王其| 日韩写真欧美这视频| 欧美另类一区二区三区| 99久久久免费精品国产一区二区| 国产成人精品一区二| 精品在线亚洲视频| 国产综合久久久久久久久久久久| 日韩欧美在线综合网| 亚洲中国最大av网站| 欧美色大人视频| 在线观看成人小视频| 亚洲国产另类av| 555www色欧美视频| 丁香亚洲综合激情啪啪综合| 亚洲欧洲日产国码二区| 91久久精品日日躁夜夜躁欧美| 亚洲人成在线播放网站岛国| 欧美日韩精品综合在线| 国产中文字幕精品| 亚洲日本在线看| 91久久精品一区二区三| 国产成人亚洲综合a∨猫咪| 国产美女一区二区三区| 久久99精品国产.久久久久久| 欧美aaaaa成人免费观看视频| 亚洲成人精品一区二区| 一区二区三区中文字幕| 亚洲色图.com| 日本美女一区二区| 久久精品久久综合| 成人免费视频网站在线观看| 韩日精品视频一区| 99久久国产综合精品色伊| 一本一道波多野结衣一区二区| 亚洲一区二区欧美日韩| 国产欧美一区二区三区鸳鸯浴 | 韩国av一区二区三区四区| 中文字幕一区二区三区四区| 欧美日韩国产天堂| 精品精品欲导航| 成人激情黄色小说| 成人视屏免费看| av在线综合网| 欧美日本精品一区二区三区| 91网站视频在线观看| 欧美日韩不卡视频| 欧美人妇做爰xxxⅹ性高电影 | 91精品国产一区二区三区蜜臀 | 亚洲chinese男男1069| 蜜桃视频第一区免费观看| 精品一区二区三区在线播放视频 | 国产精品美女久久久久久久网站| 一区二区三区在线视频观看| 性感美女久久精品| 风流少妇一区二区| 欧美日韩高清一区二区不卡 | 国产综合久久久久久鬼色| 色狠狠色狠狠综合| 日韩视频一区在线观看| 亚洲三级小视频| 麻豆成人免费电影| 欧亚洲嫩模精品一区三区| 欧美一区二区在线看| 亚洲影视在线播放| 亚洲成人午夜影院| 成人av电影在线网| 精品捆绑美女sm三区| 亚洲欧美在线视频| 国产一区二区三区日韩| 大胆亚洲人体视频| 久久综合色播五月| 亚洲一区视频在线观看视频| 国产白丝网站精品污在线入口| 欧美性xxxxxx少妇| 亚洲色图一区二区三区| 老司机精品视频导航| 91首页免费视频| 国产欧美一区二区精品性色超碰 | 日本一区二区三区在线不卡 | 亚洲精品欧美综合四区| 精品一区二区三区久久久| 4438成人网| 国产精品乱人伦中文| 老司机精品视频线观看86 | 经典三级视频一区| 欧美熟乱第一页| 中文幕一区二区三区久久蜜桃| 午夜欧美2019年伦理| 91国模大尺度私拍在线视频 | 日韩精品中午字幕| 一区二区在线观看免费视频播放| 不卡的av中国片| 欧美成人精品福利| 美女一区二区久久|