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

孔雀開發小屋

專注并致力于手機客戶端開發
<2010年7月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

統計

  • 隨筆 - 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>
            亚洲精品日本| 欧美一区二区三区四区在线观看地址 | 亚洲国产欧美一区二区三区同亚洲| 玖玖视频精品| 久久久久国产精品厨房| 久久精品动漫| 免费亚洲网站| 欧美日韩国产精品成人| 欧美日韩在线直播| 国产精品久久久久aaaa| 国产一区二区三区最好精华液| 国产精品男gay被猛男狂揉视频| 国产精品久久国产愉拍| 国产视频一区二区在线观看| 国产综合色在线| 亚洲美女精品久久| 亚洲欧美日韩一区二区| 久久av资源网| 亚洲大黄网站| 亚洲在线一区| 欧美—级在线免费片| 国产麻豆综合| 亚洲一区二区三区激情| 你懂的成人av| 久久精品二区亚洲w码| 欧美日韩一区二区三区四区在线观看 | 91久久嫩草影院一区二区| 亚洲欧美日韩另类精品一区二区三区| 久久久久国产精品午夜一区| 欧美激情中文字幕在线| 亚洲欧美一区二区激情| 欧美日韩国产三区| 亚洲毛片一区二区| 玖玖精品视频| 日韩视频欧美视频| 91久久精品国产91久久| 久久精品噜噜噜成人av农村| 国产精品天美传媒入口| 亚洲综合精品| 欧美亚洲免费在线| 好吊视频一区二区三区四区| 久久久一二三| 久久综合国产精品台湾中文娱乐网| 国产午夜精品久久久久久免费视| 午夜精品福利一区二区三区av| 亚洲黄色在线| 国产亚洲一区二区精品| 六月丁香综合| 欧美日韩精品在线观看| 欧美一区二区三区四区在线| 亚洲国产激情| 国产精品视频精品视频| 鲁大师影院一区二区三区| 欧美大成色www永久网站婷| 亚洲精品视频在线观看免费| 一区二区三区四区五区视频| 国产区精品在线观看| 亚洲第一网站| 国产专区精品视频| 国产日韩精品在线观看| 亚洲国产精品ⅴa在线观看| 国产欧美日韩在线视频| 欧美阿v一级看视频| 国产精品入口尤物| 亚洲精品乱码久久久久| 亚洲视频免费观看| 日韩亚洲一区在线播放| 欧美在线三区| 欧美伊人精品成人久久综合97| 欧美精品在线观看播放| 欧美影院在线| 国产午夜精品久久久| 亚洲天堂成人在线视频| 一本在线高清不卡dvd| 免费日本视频一区| 亚洲精品国产精品乱码不99| 亚洲大片免费看| 亚洲伦理久久| 国产精品久久午夜夜伦鲁鲁| av成人国产| 久久高清国产| 在线日韩av片| 欧美日韩在线播放一区| 亚洲第一精品久久忘忧草社区| 亚洲国产精品一区| 欧美大尺度在线| 亚洲男同1069视频| 久久精品欧美日韩| 日韩视频免费观看高清完整版| 欧美日韩国产一区二区三区地区| 宅男精品视频| 欧美激情一区二区三区| 午夜在线一区二区| 亚洲精品影院| 久久日韩精品| 亚洲尤物在线视频观看| 国产午夜精品视频| 女主播福利一区| 欧美亚洲视频在线观看| 一区二区三区免费网站| 老司机午夜精品| 久久精品成人欧美大片古装| 亚洲激情网站| 欧美在线三区| 亚洲一区二区三区在线观看视频| 猛干欧美女孩| 老巨人导航500精品| 午夜一区二区三视频在线观看| 亚洲精品国产精品国产自| 国产精品自拍在线| 国产精品播放| 国产精品视区| 国产精品一国产精品k频道56| 欧美深夜福利| 国产九色精品成人porny| 欧美日韩精品在线| 国产精品国产三级国产aⅴ入口 | 老鸭窝毛片一区二区三区| 亚洲视频一区在线观看| 在线视频精品一| 亚洲欧美日韩精品在线| 国产精品99久久久久久有的能看 | 亚洲激情一区二区| 精品动漫一区| 99精品福利视频| 亚洲网友自拍| 久久综合999| 亚洲精品视频在线| 亚洲精品一区二区网址| 亚洲欧美日韩精品在线| 久久国产66| 欧美精品亚洲精品| 欧美乱妇高清无乱码| 欧美午夜片欧美片在线观看| 国产欧美激情| 99综合电影在线视频| 香蕉乱码成人久久天堂爱免费| 久久国产加勒比精品无码| 亚洲精品欧美日韩| 国产一区二区三区高清| 最新日韩精品| 久久久91精品国产| 91久久精品国产91久久性色| 亚洲欧美成aⅴ人在线观看| 欧美在线视频二区| 国产精品免费观看视频| 亚洲精品免费一二三区| 美女露胸一区二区三区| 亚洲尤物在线视频观看| 国产精品羞羞答答| 亚洲一区激情| 午夜精品久久久久久久蜜桃app | 久久久久se| 国产综合色一区二区三区| 亚洲欧美一区二区精品久久久| 99riav国产精品| 欧美日韩视频在线一区二区观看视频| 亚洲精品在线电影| 亚洲精品久久久久| 国产精品jizz在线观看美国 | 午夜视频在线观看一区二区三区| 欧美人与禽猛交乱配| 亚洲欧美精品在线| 国产欧美高清| 久久永久免费| 久久综合久久综合久久综合| 在线观看视频免费一区二区三区| 麻豆av福利av久久av| 久久中文欧美| 亚洲一二三区在线观看| 亚洲欧美国产制服动漫| 亚洲人成网站777色婷婷| 亚洲剧情一区二区| 国产一区二区三区四区在线观看 | 亚洲欧洲另类国产综合| 国产精品成人久久久久| 欧美成人亚洲成人| 国产精品多人| 亚洲精品男同| 亚洲高清视频在线观看| 亚洲伊人一本大道中文字幕| 亚洲啪啪91| 久久成人这里只有精品| 欧美一区二区成人6969| 欧美日韩一区二区三区视频| 久久免费观看视频| 国产欧美日韩视频一区二区三区 | 国产精品电影在线观看| 亚洲国产另类久久精品| 在线观看欧美黄色| 久久不射网站| 欧美成人dvd在线视频| 国内精品免费在线观看| 欧美亚洲在线播放| 可以看av的网站久久看| 国产一区在线看| 免费亚洲一区| 一二三区精品| 久久永久免费| 在线视频亚洲一区|