首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 遊戲手柄程式開發——API 篇(一)下:LParam 座標解析與方向鍵判斷

     編輯:關於C語言

LParam 參數解析

  • 高 16 位:Y 座標
  • 低 16 位:X 座標

四個方向鍵判斷邏輯:未按下時 X、Y 坐標在中心點;按下右鍵 → X 向右偏移;右+上同時按下 → X 右偏、Y 上偏。

參考程式碼

private void GetXYButtonsStateFromLParam(int lParam, ref JoystickButtons buttons) {
    int x = lParam & 0x0000FFFF;        // 低 16 位 X
    int y = (int)((lParam & 0xFFFF0000) >> 16); // 高 16 位 Y(避免負數位移問題)
    int m = 0x7EFF; // 中心點數值
    if (x > m) buttons |= JoystickButtons.Right;
    else if (x < m) buttons |= JoystickButtons.Left;
    if (y > m) buttons |= JoystickButtons.Down;
    else if (y < m) buttons |= JoystickButtons.Up;
}

被動模式講解完畢,下一步:如何利用手柄模擬鍵盤/滑鼠操作。主動模式開發留待讀者思考。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved