2014年10月25日土曜日

Stencyl 点数を表示してみよう!

前回、ゲーム画面に文字を表示させる方法を紹介しました。
ここからは、更に一歩進めて、画面に点数を表示してみましょう。


まず、そのためには簡単な準備が必要になります。
上のメニューにあるSettingsを押下してください。



こんな画面が出ます。










左に並ぶアイコンからAttributesを選んでください。




するといつものClick hereが出ますので
クリックします。


Nameに適当な名前を入力します。
今回はscoreにしました。
その他の項目は変更しなくてもOKです。
ちなみにInitial Valueに設定した数値が、scoreの初期値になりますので、例えば点数を10000点から始めたい場合は、ここに10000と入れます。

なぜこのような準備が必要かというと、ブロックを破壊する毎に点数が加算されていくわけですが、その点数を表示する前に、一旦保存しておく入れ物が必要になるからです。TypeのところがNumberになっていますが、今回に設定によってscoreという入れ物にNumber(数値)が入れられるようになったというわけです。
ではOKで進めましょう。


左図のようになれば完了です。



前回のおさらいも兼ねつつ、Brakeoutの文字を表示するブロックの下に、同じパーツをくっつけてみてください。







できましたか?
この部分にscoreを表示します。






draw textの後の空白を選択してみてください。
左図のようにNumber→Game Attributesからscoreを選択します。











表示する位置ですが、yに30を入れて少し下にずらします。

Test Sceneしてみましょう。





scoreは出てきましたが、0のまま増えません。

どうしてでしょうか?
ブロックを破壊した後にscoreに点数を加算する仕組みを作ってないからですね。これではいつまでたっても0のままです。

さて、どうしたものか・・・。

ブロックを破壊する時の処理に戻ってみましょう。












ブロックのBehaviorsには、以前設定したDie On Collition・・・があります。
これがブロックを破壊する役割を担っています。
ちょっとこの中を詳しく覗いてみましょう。


















右上にEdit Behaviorというボタンがあるので押してみます。


こんなブロックが出てきました。
When以下に記載されている条件を満たした時に、kill Selfという事で、自分自身を破壊する仕組みになっているようです。
という事は、自分自身を破壊する前に、scoreに数値を加算すればいいのではないでしょうか。

Attributesの項目を選択すると、set score toというブロックが見つかりました。
これを使いましょう。


















kill Selfの上にくっ付けて、空白をクリックします。左図のようにMath→0+0を選択しましょう。





左側はscoreのブロックを入れて(やり方は先ほどやった方法と同じです)、右側に加算したい点数を直接入力します。
なぜこのようなことをするのかというと、set score to 10だと、ただ10を何度も入れるだけで、増えていかないからです。図のようにすることでscoreに10を加えるという仕組みになります。

Test Sceneすると、ブロックが壊れる毎に10点入るようになりました!

0 件のコメント:

コメントを投稿