DarkBASIC Professional日本語版@Wiki

sample-3Dマウス

最終更新:

Bot(ページ名リンク)

- view
だれでも歓迎! 編集
2chより引用

3Dマウス、作ってみました。地面となるオブジェクトに高低差を設ける場合はintersect objectコマンドを使えば
簡単に実現できるのではないでしょうか。マウスクリックで移動、矢印キーでカメラの移動&パンです。
sync on:sync rate 60 
make camera 1 
set current camera 1 
color backdrop 1,0 
make object box 1,1000,1,1000 
make object sphere 2,30:color object 2,rgb(255,0,0) 
make object sphere 3,30:position object 3,0,1,0:scale object 3,100,3,100:color object 3,rgb(0,0,255) 
position camera 0,150,-300:position object 2,0,15,0 
do 
  fps$="3D mouse Example Fps: "+str$(screen fps()) 
  text screen width()-20-text width(fps$),screen height()-40,fps$ 
  text 0,20,mes$ 
  if mouseclick() 
    flag=pick object (mousex(),mousey(),1,1) 
    mx=get pick vector x():my=get pick vector y():mz=get pick vector z() 
    mes$="x;"+str$(mx)+"y;"+str$(my)+"z;"+str$(mz) 
    targetx=mx+camera position x(1) 
    targety=my+camera position y(1) 
    targetz=mz+camera position z(1) 
    position object 3,targetx,targety+1,targetz 
  endif 
  point object 2,targetx,targety+15,targetz 
  spd#=((abs(object position x(2)-object position x(3))+abs(object position z(2)-object position z(3)))) 
  move object 2,spd#/50 
  control camera using arrowkeys 1,2,2 
  sync 
loop 

タグ:

+ タグ編集
  • タグ:
記事メニュー
人気記事ランキング
ウィキ募集バナー