簡単にやるとこんな感じ
#include "hgimg3.as"
pi=atan(1,0)*2 ;π
hgini
setfont 16,16,12,1
texload dir_exe+"\\sample\\hgimg3\\fontchr.bmp"
setuv 0,0,122,127
addmesh bgmod,1,1,0,100,100
texload dir_exe+"\\sample\\hgimg3\\btex.bmp"
regobj bgobj,bgmod
clscolor $4040
addpos HGOBJ_CAMERA,0,-10,0
repeat
stick key,$3ff
if key&128 {end}
if key&512 { ;右クリックが押されていたら
addcy=double(mx-mousex)*0.005 ;前回のマウス座標(mx,my)から現在のマウス座標を引いて適当に何百分の一ぐらいにする
addcx=double(my-mousey)*0.008
}else{
addcx=0.0
addcy=0.0
addcz=0.0
}
mx=mousex
my=mousey
addang HGOBJ_CAMERA,addcx,addcy,addcz ;現在のカメラアングルにマウスによる回転量を加算
hgdraw
getang HGOBJ_CAMERA,cx,cy,cz
fprt "cx("+strf("% 8.3f",(cx/pi)*180)+" )"+" cy("+strf("% 8.3f",((cy/pi)*180))+" )"+pi,8,8
fprt "addcx("+strf("% 8.3f",((addcx/pi)*180))+" )"+" addcy("+strf("% 8.3f",((addcy/pi)*180))+" )",8,32
hgsync 10
loop
これだとカメラの動きとしては機敏すぎて滑らかさに欠けるかな・・・
(滑らかさが欲しい時には目的の角度に少しずつ近づけたりする)