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

孔雀開發小屋

專注并致力于手機客戶端開發
<2010年5月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

統計

  • 隨筆 - 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 孔雀 閱讀(2510) 評論(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>
            欧美v日韩v国产v| 欧美va天堂在线| 亚洲精品国产精品国自产观看| 亚洲另类黄色| 亚洲大胆女人| 久久大逼视频| 亚洲欧美在线一区| 欧美日韩一区免费| 亚洲经典三级| 在线免费观看视频一区| 欧美在线日韩在线| 欧美在线观看一二区| 欧美三级视频在线播放| 亚洲欧洲日本在线| 亚洲国产婷婷| 麻豆久久精品| 亚洲电影网站| 最新亚洲一区| 欧美电影专区| 欧美激情一区二区在线 | 亚洲性图久久| 欧美激情中文不卡| 亚洲国产成人久久| 亚洲欧洲视频| 欧美国产一区二区在线观看| 欧美激情免费在线| 亚洲精品韩国| 欧美日韩和欧美的一区二区| 亚洲精品一二| 亚洲视频一区二区在线观看| 欧美人与禽猛交乱配| 亚洲全黄一级网站| 亚洲午夜精品在线| 国产精品一区二区男女羞羞无遮挡| 中日韩美女免费视频网址在线观看 | 欧美日韩三区| 一区二区欧美在线观看| 亚洲欧美日韩中文视频| 国产精品综合久久久| 久久成人在线| 亚洲电影免费| 亚洲一区二三| 国产一区二区三区四区hd| 久久久午夜电影| 亚洲黄色免费网站| 亚洲综合色视频| 国产一区二区中文字幕免费看| 久久精品一区中文字幕| 欧美激情一区二区三区成人 | 亚洲欧美综合一区| 国产网站欧美日韩免费精品在线观看 | 国产资源精品在线观看| 久久中文欧美| 99国产精品国产精品久久| 欧美在线www| 亚洲欧洲三级| 国产精品视频| 美日韩精品免费| 亚洲婷婷综合久久一本伊一区| 久久久久**毛片大全| 亚洲免费高清| 国产乱码精品一区二区三区五月婷| 久久精品亚洲一区二区| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲天堂av综合网| 国产一区二区按摩在线观看| 欧美va亚洲va日韩∨a综合色| 亚洲美女黄色| 能在线观看的日韩av| 亚洲在线一区二区三区| 影音先锋日韩有码| 国产精品日本一区二区 | 国产精品swag| 久久蜜臀精品av| 亚洲专区一区二区三区| 亚洲国产老妈| 美女视频黄 久久| 亚洲女同精品视频| 日韩一级成人av| 一区在线免费观看| 国产精品一级| 欧美午夜大胆人体| 欧美高清视频在线播放| 久久久999精品免费| 亚洲小视频在线| 91久久香蕉国产日韩欧美9色| 久久综合狠狠综合久久综青草| 亚洲一二三四久久| 99爱精品视频| 亚洲精品一区二区三| 黄色成人av网站| 国产亚洲欧美日韩在线一区| 国产精品高清免费在线观看| 欧美大成色www永久网站婷| 久久久久久精| 欧美专区在线| 欧美在线视频a| 欧美一区二区三区啪啪| 亚洲欧美日韩精品久久久久| 日韩小视频在线观看专区| 亚洲国产精品久久91精品| 欧美韩国日本综合| 蜜臀av一级做a爰片久久| 久久影院亚洲| 理论片一区二区在线| 久久蜜桃精品| 久久综合色影院| 久久免费视频网站| 另类春色校园亚洲| 久久综合图片| 欧美aa国产视频| 欧美激情精品久久久六区热门| 欧美电影免费观看| 亚洲黄色小视频| 日韩一级大片| 亚洲一级免费视频| 销魂美女一区二区三区视频在线| 亚洲一区二区三| 久久gogo国模啪啪人体图| 久久久噜噜噜久久中文字幕色伊伊| 欧美影院久久久| 久久综合亚洲社区| 欧美激情片在线观看| 欧美色图五月天| 国产精品资源| 有坂深雪在线一区| 亚洲另类在线视频| 一区二区三区国产精品| 亚洲永久免费av| 久久精品国产久精国产爱| 免费在线亚洲| 亚洲精品乱码久久久久久久久| 9i看片成人免费高清| 午夜免费日韩视频| 麻豆成人在线播放| 欧美日韩一区二区三区四区五区| 国产精品一区亚洲| 亚洲国产精品视频| 亚洲性夜色噜噜噜7777| 久久久精品国产99久久精品芒果| 欧美阿v一级看视频| 一区二区三区 在线观看视| 欧美一级大片在线观看| 久热成人在线视频| 国产精品久久久久国产a级| 国内外成人在线视频| 妖精视频成人观看www| 久久国产欧美精品| 亚洲激情在线播放| 亚洲欧美亚洲| 欧美国产综合一区二区| 国产一区二区观看| 中文日韩在线视频| 噜噜噜躁狠狠躁狠狠精品视频 | 欧美激情第五页| 亚洲特级片在线| 欧美大片免费观看| 国产一区二区三区免费不卡| 一区二区免费看| 免费91麻豆精品国产自产在线观看| 99成人在线| 美日韩精品免费观看视频| 国产噜噜噜噜噜久久久久久久久| 亚洲乱码视频| 久久香蕉国产线看观看av| 在线视频日韩| 欧美精品一区二区三区蜜桃 | 久久综合导航| 亚洲自拍偷拍视频| 欧美日韩在线三区| 亚洲精品乱码久久久久久日本蜜臀 | 美女久久一区| 国产一区视频观看| 亚洲欧美日韩综合国产aⅴ| 亚洲激情在线观看| 美女黄网久久| 一区精品久久| 久久亚洲精品欧美| 欧美一级久久久| 国产精品日韩欧美大师| 亚洲深夜福利在线| 亚洲日韩欧美视频一区| 欧美成人资源| 亚洲精品久久嫩草网站秘色| 女同性一区二区三区人了人一| 欧美一区二区三区在线观看| 国产精品婷婷午夜在线观看| 亚洲一区二区三区三| 99精品免费| 欧美网站在线观看| 亚洲欧美日韩国产中文| 国产精品99久久久久久宅男| 欧美日韩在线电影| 亚洲一区二区三区四区在线观看| 亚洲毛片在线观看| 国产精品av久久久久久麻豆网| 亚洲深夜福利视频| 亚洲视屏在线播放| 国产毛片一区二区| 久久―日本道色综合久久|