GameSaladでシューティングゲームを作ろう(7)|スコア表示

GameSalad入門『GameSaladでシューティングゲームを作ろう(6)|ガメオベラ』の続きです。前回まででゲームの要素はあらかた揃ってきたのですが、まだ足りないものがあります。そう、スコアです。最近流行のゲーミフィケーションでも、課題を設定することによりモチベーションを上げる、ということが言われますが、言われるまでもなく目標とか締切がないとやる気にならないのが人間のサガというものです(?)
ということで、スコアの表示と、敵を撃ち落とすとスコアがアップする仕組みを実装したいと思います。今までの入門編では、ActorのAttributeを何度か使いました。オブジェクト指向的に言うと、オブジェクトの値はオブジェクト自身が持つ、ということになります。ではスコアはどのActorが持つのでしょうか?敵?自機?
敵が持ってしまうと、敵がやられた時にスコアが無くなってしまいますね。自機が持ってしまうと、例えば自機が3機あるときに、1機ごとにスコアがリセットされてしまいます。スコアは、Actorが持つのではなく、どのActorでもアクセスできる「グローバル変数」的なものである必要があります。
これを実現するのが、GameのAttributeです。Inspectorの下、Actorの隣に「Attribute」というタブがあります。これは、Actorに属する値ではなく、ゲーム全体の属性となります。Attributeを追加するために「+」をクリックすると、型を聞かれます。スコアなので整数型「Integer」を選択しましょう。そして、名前をScoreにします。
ScoreAttribute
これで、ゲーム内どこからでもアクセスできるScoreという入れ物ができました。
では、敵が撃墜された時にScoreを10増やす、という処理を入れます。ActorのEnemyを開いて、以前作ったルールに、「Change Attribute」を追加します。「Destroy」の下ですね。Change Attributeの最初の項目は、入力欄の横の「…」マークを押して、Attribute Browserを使ってに入力します。Attribute BrowserからGame>Scoreを選択(ダブルクリック)すると、[game.Score]と入力欄に入ります。To:の入力欄は[e]をクリックして、Expression Editorを開きます。Expression Editorの左下の下向き三角形を押すと、Attribute Browserが開きますので、またGame>Scoreを選択して下さい。そして、入力された[game.Score]の右側に、[+10]と入力します。
AttChange
このとき、game.Scoreの部分は手で入力しないで、必ずAttribute Browserから入力してください。手入力だとうまくいかない場合があります。
そして、スコアを表示してみましょう。Actorを追加して、Scoreという名前にします。BehaviorのDisplay Textを使って、スコアを表示します。先ほどと同じようにExpression Editorを使って、game.Scoreを入力してください。また、Score自体のColor>Alphaは0にして、透明になるようにしておきましょう。
ScoreText
このActorをScene(通常のゲーム画面と、ゲームオーバーのScene)に配置すれば、スコアが表示されるようになります。
これで一通り完成しました!
完成したゲーム、製作者本人はGameSalad上では遊べますが、これをみんなに遊んでもらうにはどうしましょう?今回はブラウザで遊べるようにしました。

(カーソルキーで移動、スペースキーでレーザー)
また、ここまでのGameSaladプロジェクトファイルはこちらです。
ということで、次回はHTML5やiOSへのPublish(書き出し)のことを書く予定です!

スポンサーリンク

シェアする

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

フォローする

スポンサーリンク

コメント

  1. […] ということで、GameSaladでiPhoneアプリを作っていきましょう。前回までに作ったシューティングゲームをちょっと改良して、iPhoneでも遊べるようにします。まずPCやHTML5のゲームとの大きな […]