チャーリーのC

技術系の記録をしていきます。

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クラスのサンプルがあったので、

それをつかって表示できたらと思っています。

 

 

おわり

です