Хочу сделать дэш на кнопке бега. Код следующий:
Он как бы работает и игрок летит по направлению взгляда, но есть проблема - движение очень дёрганое и фпс проседает с 60 до 40-50. Видимо, что-то я делаю не так и двигать энтитей нужно как-то хитрее, вопрос - как?
Java:
@SubscribeEvent
public static void onEvent(InputEvent.KeyInputEvent event){
KeyBinding runBinding = Minecraft.getInstance().gameSettings.keyBindSprint;
int key = event.getKey();
int runKey = runBinding.getKey().getKeyCode();
ClientPlayerEntity player = Minecraft.getInstance().player;
if (key == runKey){
//ещё несколько проверок, в итоге:
float yaw = player.rotationYaw;
float x = -MathHelper.sin(yaw * 0.017453292F);
float z = MathHelper.cos(yaw * 0.017453292F);
double groundMotion = 5, airMotion = 2;
if (player.isOnGround())
player.setMotion(new Vector3d(x * groundMotion, 0, z * groundMotion));
else
player.setMotion(new Vector3d(x * airMotion, 0, z * airMotion));
}
}