2013-09-13

[Android, Github] カスタムビューのバーチャルコントローラーを公開しています。

以前より公開していた Android プログラム用のカスタムビュー「GameControllerView」を本日アップグレードしたので使い方を公開したいと思います。

[必要なもの]
[GitHub] CoodinateInRange
[GitHub] GameControllerView



[実際のプログラム]


(表示したいxml)

<com.sukohi.lib.GameControllerView
        android:id="@+id/game_controller_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" />


(Activity の onCreate の中)

GameControllerView controller = (GameControllerView) findViewById(R.id.game_controller_view); // ①インスタンス
controller.setCallback(new GameControllerViewCallback(){

    public void on(int key, String keyName, SparseBooleanArray keyStatuses) {
    // ②ボタンのコールバック

         // ③各ボタンを押した時のプログラム

        switch(keyNumber) {
   
        case GameControllerView.KEY_LEFT:
            break;
        case GameControllerView.KEY_UP:
            break;
        case GameControllerView.KEY_RIGHT:
            break;
        case GameControllerView.KEY_DOWN:
            break;

        // その他のボタン: KEY_A、KEY_B、KEY_Y、KEY_X、KEY_SELECT、KEY_START

        }
    }
       
    public void off(int key, String keyName, SparseBooleanArray keyStatuses) {

         // ②各ボタンを離した時のプログラム

    }
       
});
controller.setCrossKeySize(300, 300);            // (任意)十字ボタンのサイズ
controller.setABYXKeySize(100, 100);          // (任意)ABYXボタンのサイズ
controller.setLRKeySize(150, 65);                  // (任意)LRボタンのサイズ
controller.setSelectStartKeySize(70, 30);        // (任意)スタートとセレクトボタンのサイズ
controller.setControllerPadding(15);                // (任意)コントローラーの padding
controller.setCrossKeyRepeatInterval(500);    // (任意)十字ボタンを押し続けたときの繰り返し時間
controller.setKeyColor("#88FFFFFF");          // (任意)ボタンの色


[番号の説明]
① インスタンスを作る
② ボタンを押した、離したときに呼ばれる部分です。 on() が押した時、off() が離した時。取得できる値は、

int key: ボタンの番号です。KEY_LEFT などの定数を使うとプログラムしやすいでしょう。
String keyName: ボタンの名前です。例えば「UP」「A」「START」など。
SparseBooleanArray keyStatuses:今現在他のボタンが true(押されている)か、false(離れているか)が KEY_LEFTなどの定数をキーにして格納されています。

③  各ボタンをプログラムをこの部分に記述します。


0 件のコメント:

コメントを投稿