2016年05月21日

ゲームパッドをつくろう!その6

前回お絵かき頑張りました



今回それを元にスケッチにしてみよう
結果から言うと前回のあのまんまでは無理でした

その後やってみては試すの繰り返しで
なんとか期待した動作をしてくれるものができました

ゲームパッドをつくろう!その6

「とりあえず動けばいいや」なので効率よくないですが、一応載せときます
コメントにあるように、マシューさんとうちは無関係です
タレントさんと1ファンくらい無関係ですのでお気をつけて

もっとすっきりした感じにまとめたいと思っています
「こうするといいよ」的なアドバイスや
「もっといいの作ってみたのでどうぞ」的なものは大歓迎なのでよろしくお願いします

// Simple example application that shows how to read four Arduino
// digital pins and map them to the USB Joystick library.
//
// NOTE: This sketch file is for use with Arduino Leonardo and
// Arduino Micro only.
//
// by Matthew Heironimus
// 2015-11-20
//↑マシューさんに感謝!
//
//下記スケッチはマシューさんの公開されているサンプル等を参考に
//みやびprojectが書いたものであり、マシューさんとは無関係です
//このスケッチに対する質問等向こうに送らないでね
//2016-5-21
//--------------------------------------------------------------------

#include "Joystick.h"

void setup() {
// Initialize Button Pins
pinMode(1, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
// pinMode(3, INPUT_PULLUP);
// pinMode(4, INPUT_PULLUP);

// Initialize Joystick Library
Joystick.begin();
Joystick.setXAxisRotation(180);
Joystick.setYAxisRotation(180);
Joystick.setZAxisRotation(180);
Joystick.setThrottle(128);
Joystick.setRudder(128);

}

// 長押し時間 単位ms
const int LongOn = 100;

// 連打待機時間 単位ms
const int Latency = 240;

//初回通過フラグ
int f[] = {0, 0};
//短押し回数
int n[] = {0, 0};
//スイッチ押しはじめ
unsigned long FirstOn[] = {0, 0};
//スイッチ押し終わり
unsigned long LastOn[] = {0, 0};
//押下時間
unsigned long SWOntime[] = {0, 0};
//押してない時間
unsigned long OffTime[] = {0, 0};

int currentButtonState[] = {0, 0};

void loop() {


for (int i = 0; i < 2; i++) {

int ix = i * 4;//スイッチ2にボタン4~8割り当て
currentButtonState[i] = !digitalRead(i+1);
if (currentButtonState[i] == HIGH) {
if (SWOntime[i] > LongOn) {
Joystick.setButton(n[i] + ix, currentButtonState[i]);
} else if (f[i] < 1) {
FirstOn[i] = millis();//今の時間
f[i] = 1;
}
LastOn[i] = millis();
SWOntime[i] = LastOn[i] - FirstOn[i];

} else {
Joystick.setButton(n[i] + ix, currentButtonState[i]);
OffTime[i] = millis() - LastOn[i];
if (OffTime[i] > Latency) {
n[i] = 0;
} else if (f[i] > 0) {
if (n[i] < 3 ) {//2スイッチ8ボタンの場合 ボタン数-1で3 スイッチ24から8
n[i]++;
} else {
n[i] = 0;
}
f[i] = 0;
}
SWOntime[i] = 0;
}
}

delay(20);
}


同じカテゴリー(ゲームで遊ぶ)の記事画像
視線入力でマインクラフトを遊ぼう その2
視線入力でマインクラフトを遊ぼう その1
視線入力を使って遊ぼう その3
視線入力を使って遊ぼう
ゲームコントローラーが持てなくなって、ゲームを諦めてました
ゲームパッドをつくろう!その5
同じカテゴリー(ゲームで遊ぶ)の記事
 視線入力でマインクラフトを遊ぼう その2 (2017-06-13 21:56)
 視線入力でマインクラフトを遊ぼう その1 (2017-06-12 09:41)
 視線入力を使って遊ぼう その3 (2017-02-11 13:40)
 視線入力を使って遊ぼう その2 (2016-11-28 10:49)
 視線入力を使って遊ぼう (2016-11-16 13:38)
 PS4をマウスで操作しよう (2016-10-11 14:19)

※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
ゲームパッドをつくろう!その6
    コメント(0)