人気ブログランキング | 話題のタグを見る
みょふ
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でとりあえずパッド対応させたい
と言う人用だと割り切ってください。

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



ゲーム:四季の狂剣の製作状況および助けを乞う場所
by hoppema
カテゴリ
以前の記事
最新のトラックバック
検索
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧


Skin by Excite ism