カタツムリ2007年09月26日

壁との当たり判定

さてみなさん、先日の課題はできましたか?

まだの人は、ここからファイルをダウンロードして下さい。

早速、プログラムを解説いたします。

Call my_box_exec(GL_actwork(i))

Private Sub my_box_exec(ByRef data As Type_Data)
 If data.speed_x >= 0 Then
  If data.pos_x >= RIGHT_LIMIT Then
   data.speed_x = data.speed_x * -1
  End If
Else
  If data.pos_x <= LEFT_LIMIT Then
   data.speed_x = data.speed_x * -1
  End If
End If

 If data.speed_y >= 0 Then
  If data.pos_y >= DOWN_LIMIT Then
   data.speed_y = data.speed_y * -1
  End If
 Else
  If data.pos_y <= UP_LIMIT Then
  data.speed_y = data.speed_y * -1
  End If
End If

End Sub

をご覧下さい。

data.speed_x スピードが正の場合は、右に進みますから、

右端の壁とX座標を比較します。data.pos_x が、RIGHT_LIMIT 以上になったら、

スピードを反転させております。

data.speed_x が負の場合は、左に進みますから、左の壁とX座標を比較して、

data.pos_x が、LEFT_LIMIT 以下になったら、スピードを反転させております。

上下も同じように、speed_y によって、data.pos_y と DOWN_LIMIT と、UP_LIMIT の比較を行なっております。

それでは、実際に動かして見ましょう。

たったこれだけですが、4つの四角が20×20マスの間で、

跳ね返って動くようになりました。

では、本日の課題です。

今度は、4つの四角同士の、当たり判定機能を実装してみましょう。

同じマスに重なったら、動きを反転させてください。

それでは、みなさんも、一緒に考えてみて下さい。


ツイッターはじめました~フォロー待ってま~す!!
↓↓↓下記の3つのバナーをクリックして下さい。ランキングUPにご協力をお願いします。↓↓↓

にほんブログ村 経営ブログへランキングUP!

ランキングUP!

banner2.gif 人気blogランキング!

投稿者 shiozumi : 20:42 | トラックバック (0)

このエントリーのトラックバックURL

http://blog.e-smile.ne.jp/cgi-bin/mt/mt-tb.cgi/68