1人でゲームが作れるように修行します。2 (487レス)
1人でゲームが作れるように修行します。2 http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
99: SGGK ◆6pZCoAtaxk [sage] 2010/09/22(水) 23:13:48 ID:gcFU0B9v バグはまだ取れない。 選手が画面やレーダーに表示されてるという事は、画面の表示範囲を決めてるカメラ関係のところに原因があるという可能性はなさそう。 選手の座標を計算してる箇所を調べる。今書いてる計算式は、説明を省くのでわかりにくいけど、以下のような内容。 fp->xy = AddVector(fp->xy,MulVector(sv,Application::frametime/sq)); Application::frametimeの中身が気になったので、printfDx( " frametime = %f \n" , frametime ) ;で調べると、 15.100000と表示された。もう一回やり直すと15.633333と出た。 このframetimeは、dxライブラリのGetNowCount()を毎ループに1回計算し、 ループ前後の差を30回足して、それを30で割った平均値を意味してる。 調べるまで忘れてたけど、GetNowCount()の単位はミリ秒なので、先ほどの式では、1フレームで15ドット近い移動量になっているだろうから、 1秒が約60hzのパソコンだと1秒で1000ドット近く移動するはずなので、昨日の早すぎる移動スピードの原因だけはわかった。 とりあえず、 fp->xy = AddVector(fp->xy,MulVector(sv,Application::frametime/sq/1000)); のように書き直したら、選手がほとんど動かないけど、単位の間違いが原因だとわかった。 選手がボールに向かってくれない原因は未解決。 http://mevius.5ch.net/test/read.cgi/gamedev/1272901469/99
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s