青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 94, comments - 250, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

Nebula3的Input系統

Posted on 2008-12-14 21:53 Condor 閱讀(1605) 評論(0)  編輯 收藏 引用

相對于其他的子系統來說, 輸入系統是比較簡單的. 很多游戲根本就沒有對這一塊進行封裝, 而直接采用了Win32的消息機制.

不過經過封裝的輸入系統使用起來很方便, 呵呵.

N3中有三種輸入設備, 鍵盤, 鼠標, 手柄. 分別是基于Win32消息, DirectInput, XInput實現的. 這里有一個繼承圖能夠很好的說明輸入系統的組織結構:

基本的消息處理機制是這樣的一個流程:

InputServer里有默認的一個鍵盤, 一個鼠標, 一個手柄的"handler", 在每幀開始時InputServer會檢測當前的輸入消息,  得到一個InputEvent, 由相應的InputHandler來處理.  各個InputHandler都保存著當前幀各種輸入狀態的緩存(如鼠標左鍵是否按下), 因此, 在程序運行過程中, 我們只要在繪制結束前檢測各個InputHandler的狀態就相當于知道當前用戶是怎樣輸入的了.

一般只需要關心這么幾個函數就夠了:

  1. ////////////////////// Mouse////////////////////////////
  2. /// return true if button is currently pressed
  3. bool ButtonPressed(Input::MouseButton::Code btn) const;
  4. /// return true if button was down at least once in current frame
  5. bool ButtonDown(Input::MouseButton::Code btn) const;
  6. /// return true if button was up at least once in current frame
  7. bool ButtonUp(Input::MouseButton::Code btn) const;
  8. /// return true if a button has been double clicked
  9. bool ButtonDoubleClicked(Input::MouseButton::Code btn) const;
  10. /// return true if mouse wheel rotated forward
  11. bool WheelForward() const;
  12. /// return true if mouse wheel rotated backward
  13. bool WheelBackward() const;
  14. /// get current absolute mouse position (in pixels)
  15. const Math::float2& GetPixelPosition() const;
  16. /// get current screen space mouse position (0.0 .. 1.0)
  17. const Math::float2& GetScreenPosition() const;
  18. /// get mouse movement
  19. const Math::float2& GetMovement() const;
  1. //////////////////////Keyboard//////////////////////
  2. /// return true if a key is currently pressed
  3. bool KeyPressed(Input::Key::Code keyCode) const;
  4. /// return true if key was down at least once in current frame
  5. bool KeyDown(Input::Key::Code keyCode) const;
  6. /// return true if key was up at least once in current frame
  7. bool KeyUp(Input::Key::Code keyCode) const;
  8. /// get character input in current frame
  9. const Util::String& GetCharInput() const;

GamePad先略過, 原理相同

測試例子, 在上一次的代碼中添加一段:

  1. void OnRenderFrame()
  2.     {
  3. if (this->inputServer->GetDefaultMouse()->ButtonDown(MouseButton::LeftButton))
  4.         {
  5.             MessageBoxA(this->displayDevice->GetHwnd(), "Left Button Down", NULL, 0);
  6.         }
  7. //...//
  8.     }

效果:


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区黄| 久久免费少妇高潮久久精品99| 欧美成人精品高清在线播放| 久久av一区二区三区漫画| 国产午夜精品在线观看| 久久精品国产欧美亚洲人人爽| 午夜精品福利在线| 伊人婷婷欧美激情| 欧美激情亚洲视频| 欧美日韩国语| 久久精精品视频| 久久亚洲综合色| 一本色道久久88精品综合| 亚洲视频精选在线| 激情av一区| 亚洲日本欧美| 国产精品自拍三区| 欧美88av| 国产精品一区二区久激情瑜伽| 久久久精品一品道一区| 另类专区欧美制服同性| 亚洲女女做受ⅹxx高潮| 久久精品国产清高在天天线| 亚洲每日更新| 欧美一区不卡| 亚洲免费观看视频| 欧美一区二区三区免费观看| 亚洲精选成人| 欧美影院午夜播放| 亚洲深夜福利视频| 久久久久久婷| 欧美在线网站| 欧美精品一区二区三区视频| 欧美一级专区| 欧美剧在线免费观看网站| 久久精品亚洲一区二区| 欧美日韩精品一区二区天天拍小说| 欧美在线视频a| 欧美日本成人| 欧美高清一区| 国精产品99永久一区一区| 99精品国产在热久久婷婷| 亚洲国产精品久久久久| 亚洲一区三区视频在线观看| 亚洲六月丁香色婷婷综合久久| 久久成人免费日本黄色| 亚洲欧美www| 欧美日韩在线亚洲一区蜜芽| 欧美高清视频一区二区| 韩国欧美国产1区| 午夜国产精品视频| 亚洲男人的天堂在线观看| 欧美激情乱人伦| 欧美电影在线观看| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲在线黄色| 欧美一区二区视频在线| 国产精品va| 亚洲少妇自拍| 午夜精品理论片| 欧美午夜精品久久久久免费视| 亚洲毛片av| 一区二区三区精品在线| 欧美精品aa| 日韩视频国产视频| 亚洲少妇一区| 欧美天天视频| 亚洲在线日韩| 欧美在线三区| 狠狠色噜噜狠狠色综合久| 欧美在线地址| 免费看黄裸体一级大秀欧美| 在线观看日韩欧美| 免费永久网站黄欧美| 亚洲大片免费看| 一本大道久久a久久精品综合| 欧美日韩国产精品一区| 一区二区av在线| 欧美一区免费视频| 国产专区综合网| 久热re这里精品视频在线6| 亚洲高清电影| 亚洲午夜一区二区| 国产精品网红福利| 久久狠狠婷婷| 亚洲黄色成人网| 亚洲欧美日韩精品久久久| 国产一区二区视频在线观看 | 亚洲精品视频二区| 欧美激情一区二区久久久| 99精品视频免费| 香蕉久久夜色精品| 亚洲大片免费看| 欧美另类视频| 性久久久久久久久| 欧美激情成人在线| 亚洲综合国产| 在线观看中文字幕亚洲| 欧美日本免费| 久久精品一区二区三区中文字幕 | 蜜臀av在线播放一区二区三区| 亚洲欧洲三级| 国产精品人成在线观看免费| 久久五月婷婷丁香社区| 日韩午夜av在线| 久久综合免费视频影院| 一本一本久久| 在线播放中文一区| 国产精品久久久91| 欧美成人免费va影院高清| 亚洲无限av看| 亚洲国产你懂的| 久久久久久久一区| 亚洲伊人伊色伊影伊综合网| 精品51国产黑色丝袜高跟鞋| 欧美美女福利视频| 久久久午夜精品| 亚洲影院色在线观看免费| 亚洲国产cao| 久久日韩粉嫩一区二区三区| 亚洲一区二区三区精品视频| 亚洲国产精品久久久久久女王| 国产精品超碰97尤物18| 欧美韩日亚洲| 久久亚洲一区| 久久国产精品网站| 亚洲字幕在线观看| 中国日韩欧美久久久久久久久| 欧美激情一区二区三区在线视频| 久久国产免费看| 午夜精品理论片| 亚洲一区二区三区中文字幕| 亚洲精品精选| 亚洲全黄一级网站| 亚洲黄色大片| 91久久精品一区| 在线精品国产欧美| 狠狠色噜噜狠狠狠狠色吗综合| 国产欧美日韩免费| 国产精品视频一二三| 国产精品久久久久毛片软件| 欧美日韩免费高清一区色橹橹| 嫩模写真一区二区三区三州| 麻豆av一区二区三区| 葵司免费一区二区三区四区五区| 久久久噜噜噜久噜久久| 久久精品国产亚洲精品| 久久国产日本精品| 久久成人18免费观看| 久久爱www久久做| 久久久综合网站| 久热这里只精品99re8久| 久久全国免费视频| 免费久久99精品国产自| 欧美高清视频在线| 欧美日韩亚洲综合一区| 国产精品久久久久久久久久尿| 国产精品va在线| 国产亚洲激情视频在线| 伊人精品成人久久综合软件| 亚洲电影免费观看高清完整版在线| **欧美日韩vr在线| 亚洲精品美女在线观看| 亚洲午夜激情| 久久国产毛片| 欧美高清视频一区| 日韩一二三区视频| 性做久久久久久| 久久香蕉国产线看观看网| 欧美激情bt| 国产欧美精品xxxx另类| 在线观看精品视频| 亚洲视频在线二区| 久久国产毛片| 亚洲经典视频在线观看| 亚洲一级免费视频| 久久亚洲国产精品日日av夜夜| 欧美精品久久久久久久| 国产精品一区在线播放| 亚洲第一精品夜夜躁人人爽| 亚洲视频精选| 欧美成人免费va影院高清| 亚洲剧情一区二区| 久久国产精品电影| 欧美日韩一区二区在线视频| 国产一区二区日韩精品欧美精品| 亚洲激情欧美激情| 欧美一区二区三区四区夜夜大片 | 亚洲欧美日韩成人| 久久深夜福利| 一区二区三区国产在线观看| 久久手机免费观看| 国产精品久久久亚洲一区| 亚洲国产你懂的| 久久国产精品久久久久久| 亚洲毛片一区二区| 久久综合中文色婷婷| 国产一区二区三区四区三区四 | 激情欧美丁香| 亚洲欧美日韩另类精品一区二区三区 |