物体の位置は、3つの軸で決定します(X軸、Y軸、Z軸)
Xは左右(プラスになるほど 右)
Yは上下(プラスになるほど 上)
Zは奥行き(プラスになるほど 手前)
を表します。
以下のサンプルプログラムでは
赤い物体を左右に
青い物体を上下に
黄色い物体は、奥と手前(カメラ初期位置から見ると後ろ)
に配置しています。
物体の位置は、3つの軸で決定します(X軸、Y軸、Z軸)
Xは左右(プラスになるほど 右)
Yは上下(プラスになるほど 上)
Zは奥行き(プラスになるほど 手前)
を表します。
以下のサンプルプログラムでは
赤い物体を左右に
青い物体を上下に
黄色い物体は、奥と手前(カメラ初期位置から見ると後ろ)
に配置しています。
動きのあるブロックは、重力を受けるようになるのでそのままでは落下していきます。
「静止した物体」属性をつけたブロックは、動きのある物体に対して衝突判定があります。
静止した物体の大きさのXとZ方向を広くすれば、重力のある物体を受け止める土台として機能します。
以下のプログラムでは青色のブロックが土台となります。
BLOCKVROCKでは、物理法則をコンピュータで計算再現して、物体に重さや衝突の判定を設定することができます。 ブロックに「動きのある物体」の属性を繋げましょう。
Y座標を少し上にセットしておくと分かりやすいです。
実行すると物体が、上からしたに落ちていく様子がみられます。
重力を発生させたのですが、これだけではあっという間に落ちてしまいます。
Z軸は奥行きを表しますので、物体の中心を手前から奥に向かって通る軸を中心に回転します。
Z軸による回転は、カメラの目線が回転軸と平行になるため、時計回りであることがわかりやすいですね。
Y軸での回転は、物体の中心に縦の軸を通してそれを中心に回転するということです。
やはり+になるほど時計回りに回転し、マイナスになるほど反時計回りに回ります。
今回は、マイナスの回転もやってみます。
配列は、データを複数まとめて扱う仕組みであり「繰り返し」という構造をとても相性がいいのですが、繰り返しのためだけのデータ構造ではありません。
データが順番に並んでいるので、番号を指定して配列のデータを使うこともできます。
この時注意が必要なのは、先頭のデータの番号は0番であるということです。
以下のプログラムで「list」配列に含まれる「1」というデータは、「list[0]」という指定をして取り出すことができます。
また「list」は3つの要素を持つ配列ですが、最後のデータ「-4」の番号は「list[2]」です。直感的とは言えないのですが、様々なプログラム言語で配列の番号はこのように0から始まります。