みょふ
Flashへのゲームパッド実装について
Flashのゲームパッドの対応で、備忘録と言うわけではないけど
他にこの部分で詰まっている方がいれば参考になればと思い
アクションスクリプトをここに記述しておきます。


まず大前提として、フラッシュプレイヤーの最新版をパブリッシュできるようにしておいてください。
そのやり方はここでは省きますが、わりと自己責任系だったりしますのでお気をつけを~。

まずFlash内に"t"というインスタンス名のダイナミックテキストを配置してください。
そして下の記述をコピペしてください。
ちなみに、フラッシュプレイヤーを最新の物にしておかないとエラーが出ます。
そして、プレビューモードではパッドを認識しません。


//------------------------------------------------------------------------


var myGameInput:GameInput;
myGameInput = new GameInput();


var text:String = "";
text += String("\nGameInput.isSupported - " + GameInput.isSupported);
text += String("\nGameInput.numDevices - " + GameInput.numDevices);////デバイス番号、パッドが二つ以上刺さっている時に何個刺さっているか
text += "\n"+Capabilities.version;
t.text = text;

// ゲーム入力デバイスが追加されたときに呼ばれるリスナ関数を追加
myGameInput.addEventListener(GameInputEvent.DEVICE_ADDED, onAdded);
// ゲーム入力デバイスが削除されたときに呼ばれるリスナ関数を追加
myGameInput.addEventListener(GameInputEvent.DEVICE_REMOVED, onRemoved);


/////////////////////////////////////////////////////////////
////入力デバイスが追加された時のファンクション
function onAdded(e:GameInputEvent):void
{
t.text = "ゲーム入力機器が追加されました\nID:"+ e.device.id + " NAME:" + e.device.name + " NUM:" + String(e.device.numControls);
myDev(e.device);
}/////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////
////入力デバイスが削除された時のファンクション
function onRemoved(e:GameInputEvent):void
{
t.text = "ゲーム入力機器が削除されました\nID:"+ e.device.id + " NAME:" + e.device.name + " NUM:" + String(e.device.numControls);
}
/////////////////////////////////////////////////////////////



var myDevice;////デバイス情報の保存用変数

/////入力デバイスの追加によって得られる情報を書き出すファンクション
function myDev(dev:GameInputDevice):void{

myDevice = dev;///受け取ったデバイス情報を保存します

myDevice.enabled = true;///これをしないと動かないみたい(ボタンモードtrue見たいなもの)

//////////////////////for/////////////////////////////////////////////////////////////////
for (var i:int=0; i < myDevice.numControls; i++){/////全部のボタンをforで見ている

var myControl:GameInputControl = myDevice.getControlAt(i);
myControl.addEventListener(Event.CHANGE, onChange);////ボタンを押しているか放しているかの認識は無い

function onChange(e:Event):void////状態が変わったという事のみを見ている
{
var control:GameInputControl = e.target as GameInputControl;
var myVal:Number = control.value;////valueは押した量、十字キーとかは-1から1までの間を見る///ここの量で押しているかどうかを認識
var myID:String = control.id;

}///ファンクションの終了

}//////////////////forの終了////////////////////////////////////////////////////////



}

//------------------------------------------------------------------------



えーと、はっきり言いまして、もっとわかりやすい書き方はあると思います。
上のはあくまでまったくわからないけどFlashでとりあえずパッド対応させたい
と言う人用だと割り切ってください。

実際に起動してみて、パッドを動かしてみて、そこに表れた数値を見て
そこまでこれた人なら、表示された数値を見て実装する事ができると思います。
がんばってみてください!
[PR]
by hoppema | 2013-09-03 23:17 | プログラム
<< 腕(カイナ) 選択画面? >>



ゲーム:四季の狂剣の製作状況および助けを乞う場所
by hoppema
カテゴリ
全体
浮き島
ゲームの話
四季の狂剣
プログラム
同人ゲーム
イベント・告知
未分類
以前の記事
最新のトラックバック
四季の狂剣 感想(体験版)
from 111のデジ同人感想
検索
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧


Skin by Excite ism