アクションゲームでは見えないコントローラーを作ってみましたが、RPGなどではボタンの表示が必要です。
今回はレイアウトファイルでコントローラーを作成してみました。
この場合はクリックイベントではなく、タッチイベントを使用します。
サーフェースビューでコントローラーを作成しても良いのですが、
一部GUIにスクロール機能を付けたかったため手抜きをしました。
できるだけコードは書きたくないので。。
ボタンを大きくすると、どうしてもゲーム画面が小さくなってしまいます。
しかし、綺麗なグラフィックを売りにするつもりはありませんので、
操作性を重視してコントローラーを大きめにしています。
サンプルソースはこちら
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/lay1"
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="vertical" >
<com.example.gametest2.GameView
android:id="@+id/gameView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:id="@+id/lay_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="20"
android:orientation="vertical" >
<MultiAutoCompleteTextView
android:id="@+id/multiAutoCompleteTextView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:text="MultiAutoCompleteTextView" >
<requestFocus />
</MultiAutoCompleteTextView>
</LinearLayout>
<LinearLayout
android:id="@+id/lay2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<ScrollView
android:id="@+id/scr1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:orientation="horizontal" >
<Button
android:id="@+id/sute"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Status" />
<Button
android:id="@+id/aitemu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_weight="1"
android:text="Tool" />
<Button
android:id="@+id/sukiru"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:layout_weight="1"
android:text="Skill" />
<Button
android:id="@+id/sisutemu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="System" />
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/lay_jyuji"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0.50"
android:orientation="vertical" >
<Button
android:id="@+id/jyuuji7"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="○" />
<Button
android:id="@+id/jyuuji4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="←" />
<Button
android:id="@+id/jyuuji1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="○" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0.50"
android:orientation="vertical" >
<Button
android:id="@+id/jyuuji8"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="↑" />
<Button
android:id="@+id/jyuuji5"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="□" />
<Button
android:id="@+id/jyuuji2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="↓" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0.50"
android:orientation="vertical" >
<Button
android:id="@+id/jyuuji9"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="○" />
<Button
android:id="@+id/jyuuji6"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="→" />
<Button
android:id="@+id/jyuuji3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="○" />
</LinearLayout>
<LinearLayout
android:id="@+id/lay_atk"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:orientation="vertical" >
<Button
android:id="@+id/houkou"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="⇔" />
<Button
android:id="@+id/kougeki"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="ATK" />
<!--Android 縦方向に均等に -->
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
0 件のコメント:
コメントを投稿