FlxVirtualPad

API Reference > flixel.ui > FlxVirtualPad

FlxVirtualPad

モバイル環境向けの仮想ゲームパッドを表示・制御するクラスです



スーパークラス

FlxBasic
 < FlxObject
     < FlxSprite
         < FlxTypedSpriteGroup<FlxSprite>
             < FlxSpriteGroup

定数

分類種類説明
FlxDPadMode? (方向ボタン)NONEなし
UP_DOWN上下ボタン
LEFT_RIGHT左右ボタン
UP_LEFT_RIGHT上左右ボタン
FULL上下左右ボタン
FlxActionMode?(アクションボタン)NONEなし
AAボタン
A_BABボタン
A_B_CABCボタン
A_B_X_YABXYボタン

※存在しないボタンにアクセスするとハングアップします。

例えば、方向ボタンに「LEFT_RIGHT (左右ボタン)」を定義したのにもかかわらず、
FlxVirtualPad.buttonUp (上ボタン)にアクセスした場合

フィールド

buttonA:FlxButton : Aボタン

buttonB:FlxButton : Bボタン

buttonC:FlxButton : Cボタン

buttonY:FlxButton : Yボタン

buttonX:FlxButton : Xボタン

buttonLeft:FlxButton : 左ボタン

buttonUp:FlxButton : 上ボタン

buttonRight:FlxButton : 右ボタン

buttonDown:FlxButton : 下ボタン

dPad:FlxSpriteGroup : 方向ボタンのグループ

actions:FlxSpriteGroup : アクションボタンのグループ

メソッド

new() : コンストラクタ

  • 引数
    • ?DPad:FlxDPadMode? : Direction-Pad。パッドモード (方向ボタンの種類)
      例えば、LEFT_RIGHT を指定すると左右ボタンが有効になります
    • ?ActionMode?:FlxActionMode? : アクションモード
      例えば、A_B_C を指定すると、ABCボタンが有効になります

createButton : ボタンを生成します

ボタンのサイズをカスタマイズしたい場合はこの関数を使います
  • 引数
    • X:Float : 座標(X)
    • Y:Float : 座標(Y)
    • Width:Float : 幅
    • Height:Float : 高さ
    • Graphic:String : 画像
    • ?Onclick:Void->Void : ボタンを押した時にコールバック関数
  • 戻り値:FlxButton

使い方

package;

import flixel.FlxG;
import flixel.ui.FlxVirtualPad;
import flixel.util.FlxColor;
import flixel.FlxSprite;
import flixel.FlxState;

class MenuState extends FlxState {

  var _spr:FlxSprite;
  var _pad:FlxVirtualPad;

  /**
   * コンストラクタ
   **/
  override public function create():Void {
    super.create();

    // 操作するスプライト
    _spr = new FlxSprite();
    _spr.makeGraphic(32, 32, FlxColor.WHITE);
    this.add(_spr);

    // 左右移動・ABボタンの仮想ゲームパッドを生成
    _pad = new FlxVirtualPad(LEFT_RIGHT, A_B);
    _pad.alpha = 0.75; // 少し透過する
    this.add(_pad);
  }

  /**
   * 更新
   **/
  override public function update(elapsed:Float):Void {
    super.update(elapsed);

    if(_pad.buttonLeft.pressed) {
      // 左に動く
      _spr.x -= 5;
    }
    else if(_pad.buttonRight.pressed) {
      // 右に動く
      _spr.x += 5;
    }
    if(_pad.buttonA.pressed) {
      // 色変え
      _spr.color = FlxG.random.int(0xFFFFFFFF);
    }
    if(_pad.buttonB.justPressed) {
      // 元の色に戻す
      _spr.color = FlxColor.WHITE;
    }
  }
}
 
virtual_pad.png

実行するとこのように表示され、仮想ゲームパッドからスプライトの移動と色変えができます。