HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1123
UFJeasy3d モデル中心 カメラのマウス移動について6未解決


UFJ

リンク

2012/11/23(Fri) 23:45:16|NO.50829

HSP初心者で丸投げ状態で申し訳ありませんが具体的に教えてください。

HSP3.3のサンプルデータ/easy3d/e3dhsp3_toolscameraのカメラ移動について、

←↑↓↓キーなどのキーのカメラ移動は可能ですが、同じ動作を

マウスでできるようにしたいと考えてサンプルを探しましたが見つかりません。

もしよろしければ、マウスの右クリックを押した状態でのモデル中心のカメラ移動、
マウスのロールを回しての拡大/縮小表示を組み込んだプログラム
を教えていただけないでしょうか。

以上、よろしくお願い致します。



この記事に返信する


晩御飯

リンク

2012/11/24(Sat) 00:50:02|NO.50839

例えばマウスを上に動かしたとしてカメラはどう移動するんですかね



名無し

リンク

2012/11/24(Sat) 01:01:10|NO.50842

>←↑↓↓キーなどのキーのカメラ移動は可能ですが、同じ動作を
矢印キーでカメラ操作が出来てるなら

;dim keybuf, 256 ;E3DGetKeyboardState keybuf //こんな感じ仮想キーの状態を取得してるなら if keybuf.VK_RBUTTON = 1 { if rc_f {//rc_fに1が入ってるのは二回目から if mx>mousex {keybuf.VK_LEFT=1}//キーボードの←が押されたようにする if mx<mousex {keybuf.VK_RIGHT=1}//キーボードの→が押されたようにする if my>mousey {keybuf.VK_UP=1}//キーボードの↑が押されたようにする if my<mousey {keybuf.VK_DOWN=1}//キーボードの↓が押されたようにする } mx=mousex my=mousey rc_f=1//右クリックされた }else{ rc_f=0 }
こんな感じ
マウスホイールの回転はmousewで分かる
プラスなら奥にマイナスなら手前に回ってる(1や-1では無い)



ookenn

リンク

2012/11/25(Sun) 11:55:10|NO.50862

即出だと思いましたが、少し考え方が違ったのでのせます。


if keybuf.VK_RBUTTON = 1 { if mouse_flg = 0 {//おされたときに一回目だけ mouse_posx = mousex//マウスのクリック座標を保存 mouse_posy = mousey b_camdegxz = camdegxz//最初の度数を保存 b_camdegy = camdegy mouse_flg = 1//トリガー用のフラグ } move_x = mousex - mouse_posx//マウスの移動量 move_y = mousey - mouse_posy camdegxz = b_camdegxz - move_x/2//マウスの移動量に比例する camdegy = b_camdegy - move_y/2 }else{ mouse_flg = 0 }

>マウスのロールを回しての拡大/縮小表示
これは名無しさんの言うとおり、少し考えればできると思います。
がんばってください!
>(1や-1では無い)
これは、mousewの値が決して-1,1ではないということですよね?
すみません、個人的にきになったもので><



UFJ

リンク

2012/11/26(Mon) 20:49:41|NO.50894

お返事遅くなり申し訳ありません。
言い訳ですが、ずっと考えていました。
晩御飯さんお答えできなくて申し訳ありません。
名無しさん早速の回答ありがとうございます。
ookennさん ズバリこの動きです。
皆様ありがとうございます。

マウスロールについていろいろやってみて、

//マウスホイールによる縮小拡大
wheel = mousew
if wheel > 0 {
cameradist -= 100.0
if( cameradist < 500.0 ){
cameradist = 500.0
   }
     }
if wheel < 0 {
cameradist += 100.0
}

に行き着きました。
あとは、横移動で、移動量の制限をつけたら思ったものが完成する予定です。
申し訳ありませんが、またご教授お願いいたします。



UFJ

リンク

2012/11/26(Mon) 21:21:05|NO.50896

次に考えていることの補足です。

カメラの平行移動をマウスのホイール(中ボタン)を押した状態で動かそうとしています。

何か参考になる資料かサンプルがあれば教えてください。

以上、よろしくお願いいたします。



@key

リンク

2012/11/27(Tue) 20:23:33|NO.50924

少しは自分で調べましょう
getkeyのヘルプを見れば、4が中ボタンと書いています
あとはこれまでのスプリクトの応用です



ONION software Copyright 1997-2023(c) All rights reserved.