幀監聽:滑鼠控制、渲染模式及計時器
此節依然是講解幀監聽中的一些操作:滑鼠(mouse)、渲染模式(render mode)及計時器(timer)
一、滑鼠控制
1、首先建立mouse物件,並用輸入系統例項化輸入物件(mouse)。二、渲染模式如:ois::mouse*_mouse;
_mouse =static_case(_man->createinputobject(ois::oismouse,false));//_man為上一節建立的輸入系統(inputmanager)
2、偵聽函式中,獲得滑鼠操作(capture)以獲取滑鼠狀態
如:_mouse->capture();
float rotx =_mouse->getmousestate().x.rel;//
3、實現滑鼠控制攝像機
根據當前滑鼠的位置進行旋**
如:滑鼠左右晃動(x軸方向變動),鏡頭也跟著變化,即設定攝像機繞y軸轉動。(要了解ogre中的 座標系統,參見第四小節)
float rotx =_mouse->getmousestate().x.rel * evt.timesincelastframe * (-1);
_camera->yaw(ogre::radian(rotx));
實體模式(solid)、線框模式(wireframe)、點模式(points)。三、計時器(timer)1、 建立渲染模式:polygonmode
ogre::polygonmode _polymode;
2、 初始化:_polymode= ogre::polygonmode::pm_solid;//實體模型
3、 polygonmode是個列舉型別,只含有三個量:pm_solid、pm_wireframe、pm_points。
4、 設定模式切換:假設按鍵keynum= 「r」
keynum= ois::kc_r;
if(_key->iskeydown(keynum))
switch(_polymode)
casepm_solid: _polymode = ogre::polygonmode::pm_wireframe;
break;
casepm_wireframe: _polymode = ogre::polygonmode::pm_points;
break;
casepm_points: _polymode = ogre::polygonmode::pm_solid;
break;
default:
break;
5、 完成設定:_camera->setpolygonmode(_polymode);
根據「二」中的**,如果進行除錯會發現,當我們按下r鍵時,渲染模式會切換很多次,這是因為我們人手的反應速度小於每一幀的更新時間,這就導致了雖然我們按下了一次鍵但相應n次的結果!**:為了解決這一問題,我們使用計時器。每一次當我們按下r鍵,乙個計時器就啟動了,並且只有當足夠的時間過去我們才能處理另乙個r鍵的按下。
1、 定義:ogre::timer_timer;
2、 復位(置零):_timer.reset();
每當我們響應完乙個按鍵後,要記得重新復位,否則,此按鍵只能相應一次
#include
using
namespace
ogre;
class
myframelistener
:public
ogre
::framelistener
~myframelistener()
void
changepolygonmode
(ois
::keycode
keynum
=ois
::kc_r)
}_camera
->
setpolygonmode
(_polymode);
} bool
framestarted
(const
ogre
::frameevent
&evt)
//改變渲染模式
changepolygonmode
();
//模型節點更新位置
//mnode->translate(vector3(10,0,0) *evt.timesincelastframe);
return
true;
} };
class
example1
:public
~example1()
}protected:
void
createscene()
void
createcamera()
void
createframelistener()
private:
scenenode
*msinbadnode;
framelistener
*mframelistener;
}; int
main()
Ogre 初學指導 2
此小節主要學習 1 在3d空間中的幾個基本操作。2 場景是如何被組織的。3 操作不同的3d空間。2 場景組織方式 故意提前講解。場景的組織方式就像一棵倒立的樹,它由根部 root 不斷進行擴充套件。每當有新的模型需要載入到場景中,我們必須先把它掛在root節點或者是root節點的子節點 樹枝 上。場...
Ogre 初學指導 4
如果有疑問或發現錯誤可發e mail聯絡 swazer z 126.com 謝謝!空間座標系統及其操作 但是這一節詳細的講解關於ogre中的3d空間操作。圖ogrespace 上圖是ogre中的座標系統,豎直方向是y軸,左右為x軸,垂直使用者介面的是z軸。這個圖我們必須要時刻了然於胸否則很容易方向混...
軟體測試面試指導初學筆記整理
1 需要的知識 紮實的計算機基礎知識,作業系統,資料庫,資料結構,程式語言,測試理論等等 2 認證 軟體評測師 3 軟體測試的知名 51testing www.51testing.com 測試時代 www.testage.org 4 基礎知識 1.c語言。資料型別,運算子,陣列,程式控制流,if e...