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にご協力をお願いします。↓↓↓
投稿者 shiozumi : 20:42 | トラックバック (0)