2013年8月12日月曜日

ソフトウエアゲームコントローラーのサンプル

アクションゲームでは見えないコントローラーを作ってみましたが、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 件のコメント:

コメントを投稿