[必要なもの]
[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 件のコメント:
コメントを投稿