Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

006 カメラの位置

サンプルはカメラの位置が固定されている。
目玉の動きをカメラが追うような設定にしたい。

81行目に
setpos HGOBJ_CAMERA, 0,-60,150 ; カメラ位置の設定
とあるので、たぶんカメラの位置は0,-60,150に固定なんだろう。
これを、常に目玉の後方から見るような位置にする。
とりあえず、0,-60,150のところを目玉の位置と同じになるように変更してみよう。
目玉の位置は矢印キーの入力で変更されていて、これは97行からの
if key&2 : adddir mychr,0,0,-0.1
if key&8 : adddir mychr,0,0,0.1
if key&1 : adddir mychr,-0.1,0,0
if key&4 : adddir mychr,0.1,0,0
で行われているようだから、この行の直後にカメラの位置決めをすれば、カメラが目玉の動きに追随するはずだ。目玉の位置を得て、それを上の0,-60,150のところに代入して100行以降に置けばいい。

カメラ位置はどうやって得る?
位置決めがsetposなら位置取りはgetposに違いない。こういう場合には、
ヘルプ>HSP命令リファレンスを開く

20080609010742.jpg
こんな窓が開くので、右上にgetposと入れて検索すると
ビンゴのようだ。
20080609011537.jpg
101行に
getpos mychr,eyex,eyey,eyez ; 目玉の位置
setpos HGOBJ_CAMERA, eyex,eyey,eyez ; カメラの位置を変更
を追加した。実行して目玉を木の手前あたりにくるように動かすとこんな感じ、
20080609012125.jpg
わけがわからない絵だが、それもそのはず、カメラは目玉の中に入ってしまっているから、そこから外を映してる絵になる。白っぽい帯は目玉を内側から見た部分、外に木が見える。
なので、少し修正して
setpos HGOBJ_CAMERA, xyxx,eyey-20,eyez+20
すなわち、目玉の後ろ上方に位置させると、
20080609012943.jpg
それらしくなった。

このエントリーをはてなブックマークに追加

Posted under: HSPで3D


コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.