作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的程序中有两个按钮。左键用于刹车(减速),右键用于加速(加速)。当没有点击时,汽车有一个默认速度。并且有最小 (0.3) 和最大 (2) 速度。现在,我在这里写了这个:
private float _speed = 1f;
if (ButtonClicked) {
if (brake) {
float tempSpeed = _speed;
tempSpeed -= 0.05f;
if (tempSpeed <= 0.3) {
//
} else {
_speed -= 0.05f;
}
}
if (speed) {
float tempSpeed = _speed;
tempSpeed += 0.1f;
if (tempSpeed >= 2) {
//
} else {
_speed += 0.1f;
}
}
} else {
float tempSpeed = _speed;
if (tempSpeed < 1) {
_speed += 0.1f;
}
if (tempSpeed > 1) {
_speed -= 0.1f;
}
}
我不喜欢的部分是“ButtonsClicked”的“其他”部分。这是默认车速部分。我提高或降低速度。车动起来不好看,就是因为这个增减。我怎样才能让它变得更好?我的意思是,当什么都没有点击时,车速保持不变而不增加或减少?
最佳答案
我认为问题是一旦达到默认速度,它会不断加速/刹车以保持该速度。由于您的问题并没有真正很好地解释问题,我们不确定。
这是我的意思的一个例子,您需要在默认速度周围创建一个“死区”:
private final float MAX_SPEED = 2f;
private final float MIN_SPEED = 0.3f;
private final float DEFAULT_SPEED = 1f;
private final float ACCEL_SPEED = 0.1f;
private final float BRAKE_SPEED = 0.05f;
private float _speed = DEF_SPEED;
if (ButtonClicked)
{
if (accelerate)
{
_speed = Math.min(_speed + ACCEL_SPEED, MAX_SPEED);
}
if (brake)
{
_speed = Math.max(_speed - BRAKE_SPEED, MIN_SPEED);
}
}
else
{
// only modify the speed if its far off to
// prevent it from constantly accelerating and braking
// (modify the 0.5f to increase/decrease the 'dead zone')
if (Math.abs(_speed - DEFAULT_SPEED) > 0.5f)
{
// slowly reset to default speed
if (_speed < DEFAULT_SPEED)
_speed += ACCEL_SPEED;
if (_speed > DEFAULT_SPEED)
_speed -= BRAKE_SPEED;
}
}
关于java - 默认车速?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15782337/
我是一名优秀的程序员,十分优秀!