スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ポーズ画面の実装

当アプリケーションではゲームプレイ中にホームボタンを押す、もしくは通話が入るとゲーム全体をストップさせるポーズメソッドが呼び出されます。

Screenshot_2014-02-25-21-47-06.png

上図はポーズ中のゲーム画面。
本家のマリオとは違い、プレイヤーの残り人数とパネルの取得情報はここで確認できるようになっています。
(本当はコインやファイアボールと同じ、ゲームプレイ中にいつでも表示させたかったのですが、その結果画面が見づらくなってしまったので現在のところは諦めます。)
また画面下部に存在する該当のボタンをタップすることでそれぞれ画面が遷移します。

1.Playボタン
・文字通りゲームを再開するボタン。
このボタンをタップする以外にも端末のバックキーを押すことで再開することもできる。
2.Retryボタン
・同じ面を最初からやり直すボタン。やり直す際には残り人数が-1される。
ちなみにマリオがあと一人しか残っていない場合はやり直すことができない。
3.Titleボタン
・ゲームを完全に終了しタイトル画面に戻るボタン。
なお、クリア状況や獲得したスコアは保存されないので注意!

それでは「Playボタン」をタップしてゲームを再開してみましょう。

Screenshot_2014-02-25-21-47-11.png

あらら?
アイコン達が残ったままゲームが再開されましたね…;
…そういえばプレイボタンを押したときにアイコンスプライトの削除命令を書くのを忘れていました;

このままだとアイコンがいつまでたっても消えないので、
Playボタンをタップしたときにアイコン達をdetach(デタッチ)メソッドを使って削除するように命令します。
デタッチ方法は…「変数名.detachSelf();」で指定できます。

ではもう一度…。

Screenshot_2014-02-25-21-50-19.png

ここでPlayボタン(もしくは端末のバックキー)をタップ!

Screenshot_2014-02-25-21-50-25.png

アイコン画像が消えてなくなりましたね。ひとまずこれでOKです。
AndEngineでattach(アタッチ)したスプライトはdetach(デタッチ)しないと消えないということを覚えておいてください。
基礎中の基礎ですが、案外画面外にいったスプライトデータを消し忘れてアプリが重くなったりすることはよくあることです。
スポンサーサイト

残り人数画面の表示

前回の記事で紹介したregisterUpdateHandlerを使えば、ゲームが始まる前にマリオではよくある「残り人数が表示されるシーン」を追加することができます。

Screenshot_2014-02-20-20-43-15.png

1. registerUpdateHandler(new TimerHandler(3, new ITimerCallback() {
2.     public void onTimePassed(TimerHandler pTimeHandler) {
3.         init();
4.     }));
5. }

上記記載のinit();メソッドは文字通りゲームを初期化するメソッドで、プレイヤーを追加したり、二次元配列からコースデータを1つ1つ読み取ってブロックや草などを描画します。

Screenshot_2014-02-20-21-03-32.png

上図はinit();メソッドが読み込まれた直後。
すぐにゲームがスタートしマリオも走り出すのですが、
カッコよくジャンプして登場するなど、今後少し演出等も加えていきたいですね。

メーカーロゴの実装

プログラムがわかってきたのでどんどんいきますよ!
今回はゲーム開始時にメーカーのロゴを出したいと思います。

system_01_maker_okamotodo.png

まず、今まで起動時に呼ばれていたタイトル画面シーンの前にメーカーロゴシーンを読み込ませます。
メーカーロゴが表示されている間は操作を一切受け付けないので、
registerUpdateHandlerで一定の時間が経過したらタイトル画面シーンへ遷移させるように処理を書きます。

1. registerUpdateHandler(new TimerHandler(8, new ITimerCallback() {
2.     public void onTimePassed(TimerHandler pTimeHandler) {
3.         // ここに8秒後に行いたい処理を書く
4.     }));
5. }

簡単に書くとこんな感じですが実際は画像をフェードアウトさせたりSEを鳴らしているためもっとコードが複雑です;

Screenshot_2014-02-13-08-17-49.png

画像1枚だとわかりづらいのですがメーカーロゴの手前に「真っ黒い画像」を画面幅いっぱいに表示させており、
この「真っ黒い画像」をregisterEntityModifierメソッドを使ってフェードアウトさせることでメーカーロゴが徐々にフェードインしてるように見えるわけです。
※例としてはこんな感じ→"真っ黒い画像.registerEntityModifier(new FadeOutModifier(1.5f));"
この場合引数で1.5fを指定しているので「真っ黒い画像」を1.5秒かけてゆっくりとフェードアウトしていく。

Screenshot_2014-02-13-08-17-57.png

「真っ黒い画像」が完全にフェードアウトし、メーカーロゴが完全に表示されたらSE(コイン音)を再生する。
SEの再生が終わったら再度registerEntityModifierメソッドを使い、今度はメーカーロゴ画像をフェードアウトさせる。

Screenshot_2014-02-13-08-18-22.png

メーカーロゴが完全にフェードアウトしたらタイトル画面へ…。

Screenshot_2014-02-13-09-13-31.png

…とまあこんな感じです。
もう少しじっくり説明したかったのですが、時間がないので今回はこのくらいで…では!

データ画面の実装

ゲームオーバーなどでゲームが終了した際に、これまで獲得したスコアをデータとして保存できるようになりました。

Screenshot_2014-02-11-08-11-43.png

Screenshot_2014-02-11-08-11-51.png

タイトル画面のDataボタンをタップすると上の画面が表示されます。
これはまだ何も記録されていない状態のデータ画面で、ここに保存されたスコアが表示されます。

Screenshot_2014-02-11-12-35-58.png

スコア(Score)はアイテムを獲得したり敵を倒すと少しずつカウントされていきます。

Screenshot_2014-02-11-08-15-49.png

ここで敵に当たってゲームオーバーになってみました。獲得スコアは6900点です。
その後タイトル画面に戻り、データ画面でスコアを確認すると…

Screenshot_2014-02-11-08-16-13.png

無事にスコアが保存されたのを確認できます。
コードの解説をしようかと思ったのですが、スコアの保存方法は別のクラスからゲッターやセッターで呼び出し、俺自身もあまり把握していないので解説は控えます。

代わりに…

このゲームは以下の書籍を参考に組み立てておりますので、アクションゲームの基礎と、AndEngineについて知りたい方はぜひ一度目を通してみることをお勧めします。

AndEngineでつくるAndroid 2Dゲーム (SMART GAME DEVELOPER)AndEngineでつくるAndroid 2Dゲーム (SMART GAME DEVELOPER)
(2012/12/14)
立花 翔

商品詳細を見る

アイテムの紹介

ゲームの雛形ができてくるといろいろなアイテムを出したくなってきますよね。
今回はこのゲームに登場するアイテムを一つ一つ紹介していこうかと思います。

1.コイン

Screenshot_2014-02-08-01-52-31.png

3つのコインは色によって価値が異なり、
黄色、赤、青の順番でそれぞれ1枚、2枚、5枚分の価値があります。
すべて実装済みです。

2.キノコ

Screenshot_2014-02-08-01-53-14.png

赤いキノコ(スーパーキノコ)は、今回のゲームではプレイヤーのライフの役割を果たし、
取得することで敵や紹介物に当たったときに1回だけミスを防いでくれます。
最高3つ(もしくは2つ)までストックでき、ストックした分は画面左上部分に表示されます。
現段階ではスタート時にすでに3つストックされた状態ですが、
最初は1つ(もしくは無し)の状態でスタートさせるつもりです。

緑のキノコはみなさんご存知"1UPキノコ"です。
効果は本家のマリオと同様、ミスしたときにやり直せる回数が1つ増えます。

3.フラワー

Screenshot_2014-02-08-01-55-31.png

これは前回の記事で紹介したこうげき技であるファイアボールを放つのに必要なアイテムです。
前段階ではこうげきの回数に制限がなかったのですが、実際に試したところあまりにもチート過ぎたので
このアイテムを取ってからファイアボールをいくつか補充し、補充した回数分だけ放てるようにします。
ちなみにフラワーの大きさによって補充される量も変わります。

4.パネル

Screenshot_2014-02-08-01-56-20.png

当ゲームオリジナルのアイテム。
各ステージにそれぞれ5枚ずつ隠されており、取ると得点がもらえます。
すべてのパネルを集めると…?

…以上が今後実装するアイテムです。
後から少し追加したり、効果を変更したくなるかもしれませんが
あまりゲームを複雑にはしたくないのでアイテムの種類はこれぐらいにしておきたいですね。

ファイアボールの実相~その1~

今回は攻撃技であるファイアボールを実装してみました。

Screenshot_2014-02-01-01-07-02.png

前々から気になってたであろう右の「→」ボタン、実はこれファイアボールを発動するためのボタンで、
ここをタップすることによってマリオが"一直線に飛ぶ"ファイアボールを飛ばします。

Screenshot_2014-02-01-01-04-42.png

「あれ?マリオのファイアボールって確か地面をバウンドする動きだったよな。」って思った方もいらっしゃると思いますが、"一直線に飛ぶ"ファイアボールを使った本家のマリオにはないアイデアがあるので、ひとまずはこちらの挙動で良しとします。

~オマケ~
タイトルスクリーンをスッキリさせました。

Screenshot_2014-02-01-01-05-37.png

もう2014年ですよね;また修正しときます。

プロフィール

岡本 賢治

Author:岡本 賢治
 
☆☆☆☆☆☆☆☆☆☆☆☆
 
Android専用アクションゲーム
「スーパーけんじラン」好評配信中!
 
↓↓↓↓↓↓↓↓↓↓↓↓

 
・公式サイトはこちらから
http://okamotodo.jimdo.com/

最新トラックバック

アクセスカウンター

オンラインカウンター

現在の閲覧者数:

検索フォーム

ブロとも申請フォーム

QRコード

QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。