NScripter Ver.8.00
■ このスレッドは過去ログ倉庫に格納されています
0450名前は開発中のものです。
2006/10/27(金) 20:56:10ID:/wN8VReA俺ならタイマー測って、コマ数を変化するようにする。
例えば、100ドットほど移動させる場合、
for〜nextで1ドットずつスプライト移動させたら
マシン性能によって移動スピードが異なってしまう。
けど、その100ドット移動させるのに1秒(1000ミリ秒)とかける決めてしまって、
移動開始時にresettimerしておき、
スプライトを表示する際にgettimerで時間を取得し、
その数値÷1000ミリ秒で全体の移動割合を求め、
それと始点、終点の座標から表示座標を
求めれば、マシン性能に関わらず、移動スピードは一定にできる。
1回のスプライト表示に対して
10ミリ秒かかるなら、1ドットずつ移動して、
50ミリ秒かかるなら、5ドットずつ移動する。
始点を(X1,Y1)、終点を(X2,Y2)、移動にかける時間をTとする。
最初にresettimerしておき、スプライトを表示する際にgettimerで取得した時間をGとすると、
その時点で表示すべき座標(X3,Y3)は
X3 = X1 + ( X2 - X1 ) * G / T
Y3 = Y1 + ( Y2 - Y1 ) * G / T
で求められる。
■ このスレッドは過去ログ倉庫に格納されています