ホームへ戻る

s2.15 ステージを作る (完成)


 これまでに作ってきた三角や四角、星と言った障害物を配置してステージを作っていきましょう。
変更したのは、GameMgr.java の障害物を登録する所だけです。

↓GameMgr.java (
赤字部 変更)

public class GameMgr {
        
        private enum eStatus{
                NORMAL,
                GAMEOVER,
                GAMECLEAR
        };

        private static final float PI = (float) Math.PI;
        private ArrayList<Barricade> _barrList = new ArrayList<Barricade>();//障害物リスト
        private LinkedList<Task> _taskList = new LinkedList<Task>();// タスクリスト
        private eStatus _status = eStatus.NORMAL;
        private Player _player;

        GameMgr() {
                _barrList.add(new BarricadeSquare(  0,  0,480, 20, null));// 画面4隅に四角形を配置
                _barrList.add(new BarricadeSquare(  0,  0, 20,800, null));
                _barrList.add(new BarricadeSquare(460,  0, 20,800, null));
                _barrList.add(new BarricadeSquare(  0,780,480, 20, null));

                _barrList.add(new BarricadeTriangle(  0, 0, 200, new BConf(+PI / 150)));// 左上回転する三角形
                _barrList.add(new BarricadeTriangle(480, 0, 180, new BConf(+PI / 150)));// 右上回転する三角形

                _barrList.add(new BarricadeStar(240, 240, 50, 200, new BConf(-PI / 360)));// 中央に回転する星
                _barrList.add(new BarricadeStar(240, 240, 20,  80, new BConf(+PI / 360)));// 中央に回転する星
                
                _barrList.add(new BarricadeSquare(300, 440, 200, 20, null));//右下の固定通路
                _barrList.add(new BarricadeSquare(250, 520, 130, 20, null));//
                _barrList.add(new BarricadeSquare(330, 620, 130, 20, null));//

                _barrList.add(new BarricadeSquare(230, 390, 20, 350, null));//中央区切り線

                _barrList.add(new BarricadeSquare(0, 480, 240, 20, new BConf(+PI / 360)));// 左下回転するバー

                _barrList.add(new BarricadeSquare( 20, 600, 110, 20, new BConf(+PI / 360)));// 左下回転するバー
                _barrList.add(new BarricadeSquare(130, 600, 110, 20, new BConf(+PI / 360)));// 左下回転するバー
                _barrList.add(new BarricadeSquare(185, 600,  55, 20, new BConf(+PI / 360)));// 左下回転するバー

                _barrList.add(new BarricadeSquare(20, 680,  80, 20, null));// ゴールに接触したバー

                _barrList.add(new BarricadeSquare(20, 700,  80, 80, new BConf(eType.GOAL)));// ゴール
                
                for (Barricade bar : _barrList) {
                        _taskList.add(bar);     //タスクリストに障害物を追加
                }

                _player = new Player();
                _taskList.add(_player);
                _taskList.add(new FpsController());
        }


実行結果


この章のプロジェクトをダウンロード

私はこのように配置してみましたが、それぞれ好きなように配置して面白いステージを作ってみて下さい。
ステージ難易度は少し難しめにしましたが、10回位リトライしたらクリア出来るレベルを目安にしました。

画面はしばらくタッチしないとタイムアウトしてしまいます。
それを防止したい時は


public class IrairaBarActivity extends Activity {

        GameSurfaceView _view;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
                requestWindowFeature(Window.FEATURE_NO_TITLE);

                getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//画面のタイムアウト防止  
                
                _view = new GameSurfaceView(this);
                setContentView(_view);
                AcSensor.Inst().onCreate(this); // センサー初期化
        }


この一行をアクティビティに追加するとタイムアウトを防止出来ます。

作ったアプリの公開の仕方ですが、アプリを作るとbinフォルダに .apk ファイルが生成されています。



このファイルをお友達に渡すなり、アップロードしてリンクを貼るなりすればOKです。
マーケットからDLしない場合、端末の設定を一部変更する必要があるので注意して下さい。

設定>アプリ>提供元不明のアプリ  にチェックが入っていないとインストールできません。

本章で紹介したアプリは こちら からダウンロードできます。

.apk はただの zipファイルです。
試しに、.apkを.zipに変更して解凍して下さい。
すると見覚えのあるファイルがいくつか出てくると思います。
ここに出てくるファイルはユーザーに見られてしまうのでその点注意して下さい。

さて、15節に渡ってお届けしたイライラ棒アプリ制作の解説もこれでお終いです。
いかがだったでしょうか。
よければトップページの「一言コメント投稿所」等で感想頂けると幸いです☆

→分からないことがあれば掲示板で質問して下さい


Portions of this page are modifications based on work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.

- Remical Soft -