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

孔雀開發小屋

專注并致力于手機客戶端開發
<2010年3月>
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

統計

  • 隨筆 - 103
  • 文章 - 0
  • 評論 - 251
  • 引用 - 0

常用鏈接

留言簿(38)

隨筆分類

隨筆檔案

關注的博客

朋友的博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

DirectInput入門
我想在博客里記錄一些學習DirectX的筆記。這是第一篇。
一直以來對于DirectX的一套沒有花時間去學習,3D圖形api也是學習了OpenGL,相當長的一段時間里,總是認為自己不會去接觸這些。到公司寫了快一年的游戲邏輯了,才明白邏輯固然很重要,但是寫邏輯寫一年和寫兩年的區別不大。做游戲,做網游不就那幾個大塊么,圖形,網絡,數據庫,io并發。寫邏輯是要寫的,但終究需要在某一領域有所專長,才是正道。

言歸正傳吧。

DirectInput是一個不依賴硬件的虛擬輸入系統,是建立于硬件抽象層(HAL)之上的接口。

微軟的DirectX一套均采用COM開發,所以無論DDraw還是DirectInput的構建、設置、使用,代碼都相差無多。基本步驟都是建立xxx接口對象,建立xxx設備,設置xxx相關屬性(參數),使用之。

我們要在應用程序中使用DirectInput,分以下三步走。
1)初始化
2)獲取設備狀態
3)根據設備狀態,進行你的自定義處理。

我這里給出一個簡單的例子。該例子就是在標準的windows應用程序中使用DirectInput所需的步驟。
首先需要包含必要的宏定義和頭文件
1 #define INITGUID
2 #include <objbase.h>
3 #include <dinput.h>

相關的全部變量:
LPDIRECTINPUT       g_dinput = NULL;
LPDIRECTINPUTDEVICE g_Keyboard 
= NULL;


建立初始化函數:

 1 BOOL InitDirectInput(HINSTANCE hInstance)
 2 {
 3     // 創建DirectInput對象
 4     if (DI_OK != DirectInputCreate(hInst, DIRECTINPUT_VERSION, &g_dinput, NULL))
 5         return FALSE;
 6 
 7     // 創建鍵盤設備
 8     if (DI_OK != g_dinput->CreateDevice(GUID_SysKeyboard, &g_Keyboard, NULL))
 9         return FALSE;
10 
11     // 設置協作等級
12     if (DI_OK != g_Keyboard->SetCooperativeLevel(g_hWnd, DISCL_NONEXCLUSIVE|DISCL_BACKGROUND))
13         return FALSE;
14 
15     // 設置數據格式
16     if (DI_OK != g_Keyboard->SetDataFormat(&c_dfDIKeyboard))
17         return FALSE;
18 
19     // 獲取設備
20     if (DI_OK != g_Keyboard->Acquire())
21         return FALSE;
22 
23     return TRUE;
24 }

在哪里使用呢?我們在windows消息循環里面,處理完消息之后:
 1     unsigned char keyboard_state[256];
 2     // Main message loop:
 3     while (GetMessage(&msg, NULL, 00)) 
 4     {
 5         if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
 6         {
 7             TranslateMessage(&msg);
 8             DispatchMessage(&msg);
 9         }
10 
11         g_Keyboard->GetDeviceState(256, (LPVOID)keyboard_state);
12         if (keyboard_state[DIK_UP])
13         {
14             ::MessageBox(NULL, "up""msg", MB_OK);
15         }
16     }

基本就是這些了。

我這里主要是作為學習筆記留在blog上,說的不清楚或者不專業或者其他原因讓你沒有看明白的,請看
《windows游戲編程大師技巧》一書。






posted on 2010-03-30 23:55 孔雀 閱讀(2473) 評論(7)  編輯 收藏 引用 所屬分類: C/C++

評論

# re: DirectInput入門 2010-03-31 08:17 Code Knight

其實寫邏輯是很考驗設計能力的,到現在為止我還沒看到過非常優雅的邏輯代碼,大篇幅為實現功能而寫的代碼凌亂不堪,沒有美感,一般來說沒有專職寫過兩年以上邏輯的程序員都意識不到自己寫的代碼有多么亂,不是沒有設計,就是設計不好。
  回復  更多評論    

# re: DirectInput入門 2010-03-31 09:26 溪流

@Code Knight
是啊是啊,整個工程老是有一部分地方是亂的,這部分正是邏輯
  回復  更多評論    

# re: DirectInput入門 2010-03-31 09:27 溪流

跟樓主學習dx~
  回復  更多評論    

# re: DirectInput入門 2010-03-31 13:29 普派官方網站

是見對方是你嗎愛的
  回復  更多評論    

# re: DirectInput入門 2010-04-02 14:44 好文章

挺好的,正好對這方面有興趣
  回復  更多評論    

# re: DirectInput入門 2010-04-06 14:07 陳排

真的開始弄DX了么??
  回復  更多評論    

# re: DirectInput入門[未登錄] 2010-10-14 15:56 ccsdu2009

支持你阿 等你弄好了 給我一個dinput插件 我幫定到我的游戲引擎中去吧 哈哈
  回復  更多評論    
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品电影在线观看| 亚洲国产美国国产综合一区二区| 亚洲一级在线观看| 日韩小视频在线观看| 亚洲一区免费在线观看| 亚洲三级网站| 亚洲福利国产精品| 夜夜嗨av色综合久久久综合网| 在线视频你懂得一区二区三区| 亚洲一区二区少妇| 久久夜色精品国产| 欧美系列精品| 尤物九九久久国产精品的特点| 亚洲精品国精品久久99热| 亚洲午夜久久久久久尤物| 久久九九99| 亚洲国产日韩欧美在线动漫| 亚洲免费视频一区二区| 免费一级欧美片在线观看| 欧美三日本三级三级在线播放| 国产视频丨精品|在线观看| 91久久黄色| 久久久精彩视频| 亚洲精品视频免费观看| 久久国产精品免费一区| 欧美色区777第一页| 1204国产成人精品视频| 亚洲欧美日韩专区| 欧美国产免费| 午夜伦欧美伦电影理论片| 日韩一级精品视频在线观看| 欧美日韩在线播放| 欧美人妖在线观看| 韩国三级电影一区二区| 亚洲一区影音先锋| 亚洲第一天堂av| 午夜精品短视频| 欧美日韩免费观看一区=区三区| 好吊色欧美一区二区三区四区| 亚洲免费在线| 亚洲美女av电影| 女同性一区二区三区人了人一| 国产日本欧美一区二区| 亚洲一区二区三区777| 欧美激情视频免费观看| 快播亚洲色图| 在线欧美一区| 久久夜色精品亚洲噜噜国产mv| 亚洲一区美女视频在线观看免费| 欧美日本三区| 一本久道久久综合婷婷鲸鱼| 欧美国产日本高清在线| 久久午夜电影| 亚洲高清色综合| 欧美成人嫩草网站| 欧美xart系列高清| 亚洲毛片视频| 亚洲国产高清一区| 欧美成人小视频| 国产精品久久久久久久久久直播| 国产精品自拍在线| 亚洲精品日本| 国产一区二区三区四区| 亚洲欧美乱综合| 亚洲最新合集| 欧美日韩直播| 欧美在线黄色| 午夜精品视频一区| 黄色成人在线观看| 欧美bbbxxxxx| 欧美精品18| 亚洲男同1069视频| 午夜精品久久久| 伊大人香蕉综合8在线视| 欧美α欧美αv大片| 女主播福利一区| 亚洲视频在线观看| 午夜亚洲性色福利视频| 在线观看国产一区二区| 亚洲国产一区二区三区青草影视 | 伊人天天综合| 欧美福利电影在线观看| 欧美精品一区二| 欧美亚洲一级片| 久久一区二区三区av| 99精品热6080yy久久 | 欧美成人69av| 欧美/亚洲一区| 一本久道久久久| 午夜久久美女| 亚洲精品影视| 亚洲欧美精品在线| 91久久精品国产91久久性色tv| 亚洲精品韩国| 久久精品色图| 欧美激情欧美激情在线五月| 亚洲欧美资源在线| 欧美韩日高清| 久久精品91| 欧美视频在线不卡| 亚洲国产精品高清久久久| 国产精品久久久久久模特| 亚洲免费观看高清完整版在线观看| 国产欧美日韩综合| 欧美粗暴jizz性欧美20| 国产精品美女xx| 亚洲国产欧美久久| 国产一区二区成人| 亚洲精品在线电影| 激情亚洲网站| 亚洲欧美精品在线| 亚洲一区免费网站| 美女啪啪无遮挡免费久久网站| 欧美在线一区二区三区| 欧美午夜片欧美片在线观看| 另类av一区二区| 国产精品日韩欧美大师| 99精品欧美一区二区三区综合在线| 亚洲国产岛国毛片在线| 久久gogo国模裸体人体| 一区二区三区久久久| 免费成人美女女| 免费久久99精品国产| 国产自产在线视频一区| 亚洲欧美在线播放| 亚洲欧美日韩精品久久久久| 欧美日韩免费观看一区=区三区| 亚洲第一综合天堂另类专| 在线观看亚洲| 久久久久久伊人| 久久精品国产999大香线蕉| 欧美私人啪啪vps| 99riav1国产精品视频| 日韩一区二区高清| 欧美激情精品久久久久久久变态| 欧美激情二区三区| 亚洲日本视频| 欧美日韩国产不卡在线看| 亚洲精品美女免费| 在线视频你懂得一区| 欧美日韩日本国产亚洲在线| 99成人在线| 欧美影院午夜播放| 国产欧美日韩亚州综合| 亚洲欧美国产日韩天堂区| 欧美一区二区三区在线观看视频| 国产伦精品一区二区三区在线观看| 亚洲影院免费观看| 久久久亚洲高清| 狠狠狠色丁香婷婷综合久久五月| 欧美日韩综合| 亚洲网站在线| 欧美有码在线观看视频| 狠狠干成人综合网| 欧美成人精品一区| 99re6热只有精品免费观看| 欧美亚洲尤物久久| 韩日成人av| 欧美日韩成人在线观看| 亚洲午夜精品在线| 另类激情亚洲| 中文在线一区| 狠狠色2019综合网| 欧美日韩ab| 久久av二区| 亚洲精品久久久久久下一站| 欧美一区二区三区日韩| 亚洲区第一页| 国产亚洲福利一区| 欧美日本三区| 久久漫画官网| 亚洲免费中文字幕| 亚洲激情专区| 久久蜜桃香蕉精品一区二区三区| 亚洲精品在线观看免费| 国产色综合久久| 欧美肥婆在线| 欧美一区二区三区日韩视频| 亚洲欧洲日韩在线| 久久久一本精品99久久精品66| 一区二区三区.www| 永久555www成人免费| 国产精品―色哟哟| 欧美激情第9页| 久久夜色精品国产欧美乱极品| 在线综合视频| 亚洲日本va午夜在线电影| 久久一综合视频| 亚洲欧美区自拍先锋| 一本色道久久综合亚洲二区三区| 狠狠色丁香久久综合频道| 国产精品一区二区黑丝| 欧美激情区在线播放| 久久人人爽国产| 欧美制服第一页| 亚洲欧美日韩在线高清直播| 亚洲毛片在线免费观看| 亚洲国产一区二区三区高清| 欧美成ee人免费视频| 玖玖视频精品|