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

孔雀開發小屋

專注并致力于手機客戶端開發
<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资源网| 久久久久国产免费免费| 激情综合色综合久久| 日韩一区二区久久| 性欧美长视频| 亚洲一二区在线| 欧美夜福利tv在线| 亚洲午夜精品久久久久久浪潮 | 欧美高清视频在线播放| 国产伦精品一区二区三区高清版 | 在线观看91精品国产麻豆| 亚洲精品在线观看视频| 久久国产高清| 久久综合中文| 午夜日韩视频| 亚洲午夜精品一区二区三区他趣| 亚洲无线视频| 亚洲一区二区欧美日韩| 亚洲第一综合天堂另类专| 久久久久国产一区二区三区四区| 久久综合图片| 99精品视频一区二区三区| 欧美成人中文| 久久九九久久九九| 亚欧成人在线| 香蕉av777xxx色综合一区| 久久亚洲风情| 中文日韩电影网站| 日韩一级网站| 久久久久久精| 国产精品免费视频观看| 在线精品亚洲| 久久一日本道色综合久久| 久久这里只精品最新地址| 久久美女性网| 美女任你摸久久| 一区二区三区精品在线| 欧美啪啪一区| 免费不卡视频| 亚洲区中文字幕| 国产欧美精品xxxx另类| 一本到12不卡视频在线dvd | 免费久久99精品国产自在现线| 国产精品99久久久久久久久| 欧美不卡三区| 日韩一级大片| 一区二区日韩| 国产精品久在线观看| 久久国产直播| 亚洲国产精品成人综合色在线婷婷| 国产美女精品人人做人人爽| 欧美视频四区| 一本久久综合亚洲鲁鲁| 久久国内精品自在自线400部| 美女脱光内衣内裤视频久久网站| 亚洲一区二区三区中文字幕| 免费在线成人| 久久国产加勒比精品无码| 久久综合久久88| 国内精品一区二区| 欧美在线免费播放| 久久久久青草大香线综合精品| 久久一区激情| 久久国产精品网站| 嫩草成人www欧美| 狠狠色2019综合网| 亚洲麻豆视频| 亚洲电影毛片| 欧美国产91| 免费观看在线综合| 亚洲欧洲日产国产综合网| 亚洲精品国产精品国产自| 女同性一区二区三区人了人一| 欧美激情中文不卡| 在线视频你懂得一区| 欧美亚洲成人网| 欧美影院在线| 久久久久在线观看| 亚洲欧洲一区| 一本一本久久a久久精品综合麻豆| 久久成人免费视频| 黑人中文字幕一区二区三区| 欧美国产一区视频在线观看| 欧美激情一二三区| 一色屋精品视频免费看| 奶水喷射视频一区| 欧美日韩国产成人| 在线观看日韩av电影| 欧美国产日韩在线| 欧美日韩亚洲国产一区| 久久国产精品久久久久久| 另类激情亚洲| 亚洲一区二区在线| 久久久久久久波多野高潮日日| 国产精品色午夜在线观看| 久久久久久久999| 欧美高清免费| 久久精品夜夜夜夜久久| 欧美精品福利视频| 久久九九精品99国产精品| 亚洲专区一区| 影音先锋欧美精品| 在线亚洲电影| 国产欧美日韩在线观看| 亚洲精品久久久久久一区二区| 久久av一区二区| 亚洲精品一区二区在线观看| 亚洲精品网址在线观看| 国产一区二区三区在线观看免费| 午夜在线观看免费一区| 久久人人超碰| 午夜免费日韩视频| 欧美精品播放| 欧美第一黄网免费网站| 国产视频一区在线| 一本一本久久a久久精品牛牛影视| 欧美日韩一区自拍| 麻豆成人精品| 国产一区导航| 亚洲自拍偷拍视频| 亚洲视频在线观看免费| 久久深夜福利免费观看| 欧美在线免费一级片| 欧美涩涩网站| 亚洲九九精品| 亚洲大片在线观看| 欧美制服丝袜| 欧美在线三区| 国产精品乱码久久久久久| 亚洲精品久久久久久久久久久久久| 久久成人在线| 91久久精品久久国产性色也91| 欧美激情2020午夜免费观看| 国产伦精品免费视频 | 亚洲一区美女视频在线观看免费| 久久激情久久| 欧美一级日韩一级| 国产精品嫩草影院av蜜臀| 亚洲毛片播放| 久久亚洲国产成人| 男女激情久久| 亚洲黄色免费| 欧美成人69av| 最新成人av在线| 日韩亚洲不卡在线| 欧美高清在线播放| 亚洲欧洲一区二区天堂久久| 亚洲人体影院| 欧美激情精品久久久久| 亚洲国产成人一区| 夜夜躁日日躁狠狠久久88av| 欧美日韩一级大片网址| 99香蕉国产精品偷在线观看| 亚洲女性裸体视频| 国产精品揄拍一区二区| 久久爱www久久做| 免费成人你懂的| 亚洲激情视频在线观看| 欧美日韩国产综合网| 亚洲一区二区精品| 久久亚洲风情| 日韩天天综合| 国产精品chinese| 香蕉久久精品日日躁夜夜躁| 欧美mv日韩mv亚洲| 亚洲伦理一区| 国产日韩久久| 欧美大片专区| 亚洲天天影视| 欧美成人免费在线| 国产精品v亚洲精品v日韩精品 | 国产精品五区| 欧美成年人网| 亚洲乱亚洲高清| 国产精品视区| 美女999久久久精品视频| 亚洲三级性片| 久久久久久999| 亚洲一区二区免费| 亚洲二区三区四区| 国产精品乱人伦中文| 欧美不卡视频一区发布| 国产日韩欧美一区二区| 亚洲九九九在线观看| 欧美影院成年免费版| 夜夜嗨av一区二区三区| 国产一级久久| 欧美日韩综合精品| 蜜臀av在线播放一区二区三区| 性做久久久久久免费观看欧美| 欧美成人一区在线| 午夜在线成人av| 欧美在线观看视频一区二区三区 | 中文国产成人精品久久一| 久久午夜电影| 小黄鸭精品密入口导航| 国产精品成人一区二区三区夜夜夜 | 久久激情视频免费观看| 91久久国产综合久久91精品网站| 狠狠操狠狠色综合网|