【10円ゲーム講座】第13回 デモ画面を実装してみる

Cocos2d-x

Cocos2d-x 10円ゲーム講座 第13回、デモ画面を実装します。

第12回はこちら目次はこちら

スポンサーリンク
レクタングル(大)広告

デモ画面って?

これまででゲーム部分は完成しています。デモ画面は蛇足といっても過言ではありません(笑)。

タイトルを作ってシーン遷移、というのがチュートリアル的にはシーン遷移を学べて良いかもしれません。しかし、10円ゲームにタイトルからのシーンチェンジは不要でしょう。コインを入れてサクッとスタート。現実世界でもサクサク感は10円ゲームの醍醐味の1つだと思います。

私の思い出ですが、駄菓子屋に置いてあるゲーム機のデモ画面が好きでした。今でもそうですが、筐体機のデモ画面って非常に楽しそうな感じがしますよね。お菓子にするか、ゲームをするか……どれにお金を使おうか迷ってた子供時代、デモ画面は効果的な宣伝だったように思います。

そんなわけで、10円ゲームにコインを入れるまではデモ画面にしてみます。現実世界の10円ゲーム機のデモプレイはありえませんけどね。

デモ画面を考える

前置きが長くなりましたが、10円ゲームのデモ画面というのを考えてみます。

  • ゲーム起動時や失敗、クリア後のコインが筐体に無い状態が一定時間続けば、デモモードに移行する
  • デモモード時は
    • コインが無ければ自動で投入
    • コインがレバー位置にあれば、ランダムな力ではじく
    • デモプレイ画面であることを明示する
  • デモモード解除の方法
    • コイン投入口ボタンのタッチ

こんな感じでしょうか。

デモ画面用

デモプレイ画面であることは、このDEMO PLAY文字を明滅させることにします。

説明する部分は少ないのでコードを載せていきます。

デモ画面用のスケジュール関数と変数の定義です。

コインの監視の際に説明したscheduleUpdate()メソッドはフレーム毎にupdate(float delta)を繰り返す呼び出す処理と決まっていましたが、デモ画面用のスケジュール処理は毎フレーム呼び出す必要はありません。そういった場合にschedule()を使用することで任意のメソッドを任意の間隔で呼び出す処理が可能です。今回は5.0秒毎に1回demoUpdate()を呼び出します。

CCRANDOM_0_1()はCocos2d-xでランダムを扱う場合に便利なマクロです。0~1までのfloat値を返してくれます。その他の説明は特に新しいことをしていないので省きます。

DEMO PLAYの明滅は、フェードイン・アウトの繰り返し処理で実現しています。Blinkを使わない理由としては、Blinkの点滅処理はbVisibleを操作するため、ボタンを押した際のsetVisibile処理と不整合が出るためです。ちなみにFadeIn, FadeOutはopacityを操作します。

実行結果

デモプレイ。どうでしょうか。ソースコードはこちら

私はこういう勝手に操作しているのを眺めるのは大好きです。ランダムに力を加えているだけですが、見ていると結構楽しいですよね。

スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする