https://linen.dev logo
走行距離を取得する方法
# forum
n
現在地ATS-P的なものを作成しようとしているのですが走行距離を取得するのにはどうすればいいのかがわかりませんどうすればいいのでしょうか?
なるべく正確に取得したいです
r
タカミさんの検測機に距離表示するシステムあったのでスクリプトの参考になるのではないでしょうか
n
ありがとうございます試してみます
h
走行距離の計算は、距離=速度×時間から、距離を積算していくことで求められます。 ただし、長く走るほど誤差も積まれていくので、定期的に距離を校正するような仕組みが必要になります(地上子を利用するなど)。 また、描画スクリプトでは次に計算を実行するまでの時間(Δt)が不定なので計算はサーバースクリプトでの実装をおすすめします。(サーバースクリプトは20回/秒実行される)
Copy code
js
var dataMap = entity.getResourceState().getDataMap();
var mileage = dataMap.getDouble("mileage");//走行距離
var speed = entity.getSpeed() * 20;//m/tick → m/s
var deltaTime = 1 / 20;//sec
var distance = speed * deltaTime;//m
mileage += distance;
dataMap.setDouble("mileage", mileage, 1);
n
ありがとうございます試してみます