LAST UPDATE 1998/07/18


『 その5-5 』



 ■ 中心座標を設定する

 中心座標を設定するためにはまず、玉の場所を知らなくてはならない。今回移動命令は相対座標系で移動させているので、プログラム内では玉の位置などというものは管理していない。知ったことではなかったのである。
 しかし今それを知る必要に迫られたのである。移動命令に絶対座標系を扱うMove_Aを使ってプログラムを改造するというのも1つの手である。暇があったら各自挑戦してみよう。しかし、今回私が用意したサルDLLには対象物の絶対位置と絶対角度を教えてくれる関数が用意されているのである。標準モジュール JmainB の Genral の Declarations を見てもらいたい。
    GetObjPosAng(ID&, Obj As PosAng)
がそれである。第1引数のIDは超整数型の0である。問題は次の Obj であるが、変数型が PosAng となっている。これはVBが最初から持っている変数型ではない。標準モジュールの中に

    Type PosAng
     px As Single
     py As Single
     pz As Single
     Ax As Single
     Ay As Single
     Az As Single
    End Type
という部分がある。これが第2引数の中身なのである。

では、このDecralationsの部分に玉の状態を表す変数を宣言する。
 こうしておいて Call GetObjPosAng(0, Ball) を実行すると、BallというPosAng型の変数の中に、座標と回転角度が格納される。
 例えば玉のX座標を知りたければ Ball.px とすれば良いわけである。Z軸の回転角を知りたければ、Ball.Azである。
 このようにして取得した玉の座標を回転の中心座標として設定すれば良いのであるが、その命令は SetPivot(ID, x, y, z) なので、

    Call SetPivot(0, Ball.px, Ball.py, Ball.pz)

という命令を実行すれば、玉の座標を新しい回転の中心座標として設定することができる。 ということで、「←」ボタンクリックのコードは次のようになる。

「→」「↑」「↓」の Clickイベント にも同様のコードを書き加えよう。




その5-1 | その5-2 | その5-3 | その5-4 | その5-5 | その5-6 | その5-7 | その5-8

『 サルのゲーム製作講座 』 目次 | その 1 | その 2 | その 3 | その 4 |
その 5 | その 6 | その 7 | その 8 | その 9 | その 10 | その 11


もどる

e-mail: sc_3da@magical2.egg.or.jp