【发布时间】:2021-05-24 19:40:18
【问题描述】:
我正在尝试创建驾驶员性能助手。
当我启动页面时,它需要从上次读取变量并使用它来计数。 (我创建了一个仪表板,它通过游戏中的插件读取数据。我正在尝试从 DAF(卡车品牌)创建驾驶员性能助手。它应该工作的方式是在推出车辆时,它会相应地计算一个变量它推出的时间(这部分我已经创建并且它可以工作)现在我的问题是。我也试图将它保存在本地存储中,这样它就不会丢失。但是当我尝试读取时变量正在做奇怪的事情本地存储数据。 此代码只需要在 javascript 中。
// variables for driver score
var startBrake = 0;
var endBrake = 0;
var timeDiffBrake = 0;
var countBrake = localStorage.getItem('brake');
var startRollout = 0;
var endRollout = 0;
var timeDiffRollout = 0;
var countRollout = localStorage.getItem('rollout');
var speed = Math.abs(data.truck.speed > 0 ? Math.floor(data.truck.speed) : Math.round(data.truck.speed));
var throttle = utils.formatFloat(data.truck.gameThrottle, 2);
var serviceBrake = utils.formatFloat(data.truck.userBrake, 2);
var retarder = data.truck.retarderBrake;
var engineBrake = data.truck.motorBrakeOn;
var cruiseControl = data.truck.cruiseControlOn;
var fuelConsumption = data.truck.fuelAverageConsumption * 100;
// ANTICIPATE
// Braking to long
if (speed >= 50) {
if (serviceBrake < 0.1) {
startBrake = new Date();
} else if (serviceBrake > 0.25) {
endBrake = new Date();
timeDiffBrake = (endBrake - startBrake) / 1000;
if (timeDiffBrake > 5) {
countBrake -= 0.01;
// add "te lang remmen" display
}
}
}
localStorage.setItem('brake', countBrake);
// Rolling out
if (speed > 30 && speed < 89) {
if (throttle > 0) {
startRollout = new Date();
} else if (throttle < 0.05 && serviceBrake == 0) {
endRollout = new Date();
timeDiffRollout = (endRollout - startRollout) / 1000;
if (timeDiffRollout > 1) {
countRollout += 0.01;
// maybe add display
}
}
}
localStorage.setItem('rollout', countRollout);
// EFFICIENT BRAKING
var brake = localStorage.getItem('brake');
var rollout = localStorage.getItem('rollout');
var anticipate = brake + rollout;
var efficientBraking = 0; // haven't done this yet
var driverScore = Math.round((efficientBraking + anticipate) / 2);
data.drivingScorePercent = driverScore <= 0 ? 0 : driverScore >= 100 ? 100 : driverScore;
主要问题是这个变量 var countRollout = localStorage.getItem('rollout'); 它一直说我的数据是 NAN(我认为未定义)
我将这些行更改为“jojo 先生”建议的内容,但不知何故我从本地存储中获得了一些奇怪的数据。我假设“var += 0.01”会增加 0.01,但不知何故它会像这样“0.010.010.010.010.01”而不是 0.01、0.02、0.03。
【问题讨论】:
标签: javascript