- 1,976
- 68
- 220
Доброго времени суток
У меня есть танк, на нём можно ездить, всё как бы нормально, но.. Ездит он "кустарно" - рывками, вращается тоже отнюдь не плавно. Более того скорость движения в разные стороны разная. Куда-то быстрее, куда-то медленнее, а почему - не ясно. В чём может быть причина? Вот код (в onUpdate):
Надеюсь, поможете =)
[merge_posts_bbcode]Добавлено: 03.07.2016 16:16:41[/merge_posts_bbcode]
P.S. speedModifier - переменная, которая меняет скорость, от 0 до 1 с шагом в 0.05F
[merge_posts_bbcode]Добавлено: 03.07.2016 16:17:39[/merge_posts_bbcode]
P.P.S. isInAir - улучшенный под мой танк аналог onGround, проверяет возможность упасть.
У меня есть танк, на нём можно ездить, всё как бы нормально, но.. Ездит он "кустарно" - рывками, вращается тоже отнюдь не плавно. Более того скорость движения в разные стороны разная. Куда-то быстрее, куда-то медленнее, а почему - не ясно. В чём может быть причина? Вот код (в onUpdate):
Код:
if (!this.worldObj.isRemote) {
this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
this.rotationYaw = this.rotationHorizontal;
if (this.riddenByEntity != null && rider != null) {
this.motionX = -Math.sin(Math.toRadians(this.rotationYaw)) / 4 * this.speedModifier;
this.motionZ = Math.cos(Math.toRadians(this.rotationYaw)) / 4 * this.speedModifier;
if (this.motionX > 0.1) this.motionX = 0.1;
if (this.motionZ > 0.1) this.motionZ = 0.1;
} else {
if (this.motionX > 0) {
this.motionX -= 0.05D;
if (this.motionX <= 0.05D) {
this.motionX = 0;
}
} else if (this.motionX < 0) {
this.motionX += 0.05D;
if (this.motionX >= -0.05D) {
this.motionX = 0;
}
}
if (this.motionZ > 0) {
this.motionZ -= 0.05D;
if (this.motionZ <= 0.05D) this.motionZ = 0;
} else if (this.motionZ < 0) {
this.motionZ += 0.05D;
if (this.motionZ >= -0.05D) this.motionZ = 0;
}
}
if (this.isInAir()) this.motionY -= 0.05D;
}
this.moveEntity(this.motionX, this.motionY, this.motionZ);
[merge_posts_bbcode]Добавлено: 03.07.2016 16:16:41[/merge_posts_bbcode]
P.S. speedModifier - переменная, которая меняет скорость, от 0 до 1 с шагом в 0.05F
[merge_posts_bbcode]Добавлено: 03.07.2016 16:17:39[/merge_posts_bbcode]
P.P.S. isInAir - улучшенный под мой танк аналог onGround, проверяет возможность упасть.