ページ 11

DxLibでFPSゲーム

Posted: 2011年12月22日(木) 10:30
by TGD
今、DxLibを使ってFPSゲームを作っています。
そして、質問内容は"向きをマウスで操作する"というものです。
よかったらコードを書いてくれるとうれしいです。
ご回答よろしくお願いします。

Re: DxLibでFPSゲーム

Posted: 2011年12月22日(木) 10:54
by softya(ソフト屋)
フォーラムルールの確認をお願いをします。

「C言語何でも質問掲示板~規約~」
http://dixq.net/board/board.html

今現在のコードを提示した貰ったほうが的確な回答ができますが、とりあえず案だけ。
マウスの座標を取る関数は分かりますか?
その関数で座標を取り前回のフレームとどれだけ移動したのかベクトルを求めることで、そのベクトル(何倍かに拡大)を使って向きを変更します。
注視点をベクトルで移動させるって言ったほうが良いかも知れませんね。

Re: DxLibでFPSゲーム

Posted: 2011年12月22日(木) 11:15
by TGD
すみません。ルールをおおざっぱに見るだけでした。
本当に申し訳ありません。あとで開発環境のPCを起動させるので、その時に詳細を記載します。

Re: DxLibでFPSゲーム

Posted: 2011年12月22日(木) 11:24
by softya(ソフト屋)
少し説明が変だったので変えます。ベクトルを角度に置き換えないと上手くターンしないので、ベクトルが求まったらそれにマジックナンバー(テストの上に決めて下さい)を掛け算して、カメラの向いている方向のangleに加算して下さい。
それとマウスカーソルが端に移動するとマウスカーソルが止まってしまいますので毎回センターに再設定して下さい。

[補足]
これでうまくいくと思うのですが実はFPSは作ったことが無いので感覚的な物が良く分かりません。
もう少し、加速減速の事も考えないと3D酔いゲーになってしまうかも知れませんね。

Re: DxLibでFPSゲーム

Posted: 2011年12月22日(木) 19:26
by 史上最悪のデスペナ
softya(ソフト屋) さんが書きました:ベクトルを角度に置き換えないと上手くターンしないので、ベクトルが求まったらそれにマジックナンバー(テストの上に決めて下さい)を掛け算して、カメラの向いている方向のangleに加算して下さい。
FPSを実装したことがあるのですが、私も同じような方法でやっています。
ただ、マウスのX方向の移動度とY方向の移動度を直接、角度にしていますが。それを使ってベクトルを回転させてます。

例えば、1フレームの間に5移動したなら2.5度、10移動したなら5度という風にです。