DXRuby Part7
今日やったこと
今日は前回の記事の最後に書いた課題をやりました。
まずあたり判定に遊びを作りました。
具体的には、
Spriteクラスのcollisionを使い衝突範囲の設定をしました。
Sprite#collisionで衝突範囲の設定・取得ができ、
要素の数によって形状が変わります。
画像の四隅に遊びをつくりたかったので
要素は3つにしx,yを中心に半径rの円状に判定枠をつくろうと思いました。
meteo.collision = [meteo.x, meteo.y, 30]
隕石のx座標とy座標を中心に半径30の円ができます。
しかしmeteo.xとmeteo.yが画像の中心に無かったため、
実際の判定枠は画像の右の方に、円状にできてしまいました。(教えてもらって初めて気づいた)
このコードで改善できました。
meteo.collision = [meteoImage.width / 2, meteoImage.height / 2, 30]
右の方ずれた分を差し引いて中心にもっていきました。
これでロケットが隕石の四隅にかすっても、hit!の文字が出なくなりました。
次に、スコアをつくりました。
loopの外に変数scoreを書き、
隕石が落ちきるたびに1ずつ増やすようにします。
このとき、scoreをto_sを使って文字列に変換しないとエラーがでました。
dxrubyの掲示板に詳しく書いてありました。
つぎに隕石を同時に降らす
これはクラスの仕組みなどがよくわかっていないので、
とりあえずmeteoと同じコードをコピペし、meteo2としました。
これで2つ同時に降ってきます。
残りは、スタート画面(タイトル)です。
今日はできませんでしたが、
frontpageのdxrubyのサイトにsceneクラスのサンプルがあったので、
それをつかって表示できたらと思っています。
おわり
です