1. 程式人生 > >C# DirectInput遊戲手柄和鍵盤開發心得2(SharpDX版)

C# DirectInput遊戲手柄和鍵盤開發心得2(SharpDX版)

1、SharpDX下載

VS下載:

專案右鍵——管理nuget程式包——瀏覽——搜尋SharpDX——下載

搜尋SharpDX.DirectInput——下載

我是在這裡兩個都下了,應該是自動識別你當前的.Net Framework版本,有的.Net Framework版本可能沒有

貌似官網http://sharpdx.org/

2、using

如果從nuget下載的,已經新增到引用了,不用手動using

3、環境

vs2015, 

預設目標框架是.NET Framework 4.5

4、開發

簡單做了個例子,能讀取到手柄狀態,沒有測試多個手柄的情況

SharpDX.DirectInput.Joystick curJoystick;
private void button1_Click(object sender, EventArgs e)
        {
            var dirInput = new SharpDX.DirectInput.DirectInput();
            var typeJoystick = SharpDX.DirectInput.DeviceType.Joystick;
            var allDevices = dirInput.GetDevices();
            bool isGetJoystick = false;
            foreach (var item in allDevices)
            {
                if (typeJoystick == item.Type)
                {
                    curJoystick = new SharpDX.DirectInput.Joystick(dirInput, item.InstanceGuid);
                    curJoystick.Acquire();
                    isGetJoystick = true;
                    Thread t1 = new Thread(joyListening);
                    t1.IsBackground = true;
                    t1.Start();
                }
            }
            if (!isGetJoystick)
            {
                MessageBox.Show("沒有插入手柄");
            }
        }
        private void joyListening()
        {
            MessageBox.Show("監聽到手柄");
            while (true)
            {
                var joys = curJoystick.GetCurrentState();
                SetMessage(textBox1, joys.ToString());
                Thread.Sleep(100);
            }
        }

5 鍵盤狀態讀取

                    if (SharpDX.DirectInput.DeviceType.Keyboard == item.Type)
                    {
                        var curKeyboard = new SharpDX.DirectInput.Keyboard(dirInput);
                        curKeyboard.Acquire();
                        var curKeyboardState = curKeyboard.GetCurrentState();
                        var curPressedKeys = curKeyboardState.PressedKeys;
                    }

6

git連結

相關推薦

C# DirectInput遊戲手柄鍵盤開發心得2SharpDX

1、SharpDX下載 VS下載: 專案右鍵——管理nuget程式包——瀏覽——搜尋SharpDX——下載 搜尋SharpDX.DirectInput——下載 我是在這裡兩個都下了,應該是自動識別你當

C語言程式語言科技 c語言中的= = =有什麼區別?精華篇

一等賦,二等於。 C語言中,很多初學者經常會弄混 = 與 == 。我們從小學習數學時就知道“ = ”是 “等於”的意思,可是在C語言中,“ = ”就不是等於的意思了。 我寫了如下的C語言程式碼: 在上述C語言程式碼中,整型變數 a 的初始值是0。在兩個 if 語句判

Android 手機開發機頂盒開發的區別軟體角度

通過開發電視類的應用和手機的應用,感覺主要有以下三種區別:   1、 解析度 的不同 手機的分別率320*480,480*800,480*854)        機頂盒  :TCL800:800x450  TCL720P:1280x720             機頂盒普遍

Comparable介面Comparator介面的區別通俗

概述 Comparable和Comparator都是用來實現集合中元素的比較、排序的。 Comparable是在集合內部定義的方法實現的排序,位於java.lang下。 Comparator是在集合外部實現的排序,位於java.util下。 Comparable是一個物件本

BannerImageLoder輪播圖精簡

1.首先先在程式中匯入我們要使的依賴 implementation 'com.youth.banner:banner:1.4.9' implementation 'com.nostra13.universalimageloader:universal-image-loade

排序演算法---快速排序,隨機快速排序雙路快排python

[原文連結](https://blog.csdn.net/m0_37519490/article/details/80648011) 1、什麼是快速排序演算法? 快速排序是由東尼·霍爾所發展的一種排序演算法,速度快,效率高,也是實際中最常用的一種演算法

【Java入門】JDK安裝環境變量配置Win7

tps 使用 允許 技術 追加 命令 tools 圖片 電腦 系統環境:Windows7 x64 安裝JDK和JRE版本:1.8.0_191 1、下載JDK安裝包 Oracle官網下載網址:https://www.oracle.com/technetwork/java/

堆記憶體棧記憶體的區別通俗

下面就說說C語言程式記憶體分配中的堆和棧,這裡有必要把記憶體分配也提一下,大家不要嫌我囉嗦,一般情況下程式存放在Rom(只讀記憶體,比如硬碟)或Flash中,執行時需要拷到RAM(隨機儲存器RAM)中執行,RAM會分別儲存不同的資訊,如下圖所示: 記憶體中的棧區

MyBatis-搭建MyBatis開發環境一MyEclipse

一、引入MyBatis及其相關jar包 1、mybatis-3.2.2.jar:mybatis的jar包 2、mysql-connector-java-5.1.0-bin.jar:MySQL資料庫jar包 3、log4j-1.2.16.jar:日誌、用於開

java開發實戰經典第二P217 6-4

6.4   定義員工類,具有姓名、年齡、性別屬性,並具有構造方法和顯示資料方法。定義管理層類,繼承員工類,並具有自己的屬性:職務和年薪。定義職員類繼承員工類,並有自己的屬性:所屬部門和月薪。 package book; //Staff 員工類 public class

CODE39CODE128編碼生成函式VBA

Public Function StrToCode39(str As String) As String     StrToCode39 = "*" & str & "*"     End Function Function StrToCode128(s

企業微信第三方應用開發授權設定PHP

    開發之前一定要搞明白,企業微信不是企業微訊號,雖然有相似之處,但不盡相同!!!    企業微信第三方應用與企業微信自建應用也不相同,一定要區分! !!    本地測試完成,沒問題了,直接提交上線,就OK啦!!!1.官網地址:https://work.weixin.qq

【演算法】二叉樹、N叉樹先序、中序、後序、BFS、DFS遍歷的遞迴迭代實現記錄Java

        本文總結了刷LeetCode過程中,有關樹的遍歷的相關程式碼實現,包括了二叉樹、N叉樹先序、中序、後序、BFS、DFS遍歷的遞迴和迭代實現。這也是解決樹的遍歷問題的固定套路。 一、二叉樹的先序、中序、後序遍歷  1、遞迴模板  (1)

Cocos2d—X遊戲開發之 CCLabelTTF 標籤詳解對齊方式設定分數顯示十六

在Cocos2d—X遊戲開發中,CCLabelTTF 和 CCSprite 大概是使用最多的2個類了。標籤主要用於顯示靜態文字,可以設定字型的大小和位置等屬性。 現在,我們先來看下CCLabelTTF 的基本原始碼。 S1,從下面的程式碼可以看到 CCLabelTTF 繼

C++的可以執行跨平臺開發

概述   今天聊聊C++的可移植性問題。如果你平時使用C++進行開發,並且你對C++的可移植性問題不是非常清楚,那麼我建議你看看這個系列。即使你目前沒有跨平臺開發的需要,瞭解可移植性方面的知識對你還是很有幫助的。 C++的可移植性這個話題很大,包括了編譯器、作業系統、硬體體

Setting up a EDK II build environment on Windows and Linux:搭建WindowsLinux開發環境[2.2]

set clu cto 無法安裝 urn ems water 了解 源代碼管理 Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux開發環境[2.2] 2015-07 北

C# winform 程序開發知識點總結幹貨

onstop 剛才 cell iss 成功 one 身份驗證 服務 cep 1、數據庫連接及操作   在說數據庫操作之前,先說一下數據庫連接操作字符串的獲取   首先,點擊服務器資源管理器,接下來選中數據連接右鍵點擊添加連接,填入你要連接的服務器名稱,點擊單選框使用SQL

ios開發之--仿微信自定義表情鍵盤

lai signed avi 創建 不能 url div load mps 先附上demo:https://github.com/hgl753951/CusEmoji.git 效果圖如下: 先說下具體的實現功能: 1,本地加載了一些H5的代碼,直接使用webview的lo

全網最詳細的一款滿足多臺電腦共用一個鼠標鍵盤的工具Synergy圖文詳解

inf 工具 分享 image 多臺 一個 分享圖片 bubuko 電腦   不多說,直接上幹貨! 全網最詳細的一款滿足多臺電腦共用一個鼠標和鍵盤的工具Synergy(圖文詳解)

java開發環境搭建jdk安裝經常出現問題的探討

面對許多java初學者環境搭建出現的問題 第一步: 1,首先在可以百度jdk進入oracle的官網也可以進入這個網站 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2,下載完