From ee7b194bca0670be4de6354875bdaf5eafeff18d Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Sat, 8 Mar 2025 02:45:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B3=E6=BB=91=E7=9B=B4=E5=8D=87=E6=9C=BA?= =?UTF-8?q?=E5=92=8C=E8=A3=85=E7=94=B2=E8=BD=A6=E7=AC=AC=E4=B8=89=E4=BA=BA?= =?UTF-8?q?=E7=A7=B0=E5=87=86=E6=98=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/client/overlay/HelicopterHudOverlay.java | 6 +++--- .../superbwarfare/client/overlay/VehicleHudOverlay.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/HelicopterHudOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/HelicopterHudOverlay.java index 5e6aaf194..73e5e1cb7 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/HelicopterHudOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/HelicopterHudOverlay.java @@ -149,7 +149,7 @@ public class HelicopterHudOverlay { } - Matrix4f transform = getVehicleTransform(mobileVehicle); + Matrix4f transform = getVehicleTransform(mobileVehicle, event.getPartialTick()); float x0 = 0f; float y0 = 0.65f; float z0 = 0.8f; @@ -244,9 +244,9 @@ public class HelicopterHudOverlay { preciseBlit(guiGraphics, ModUtils.loc("textures/screens/helicopter/heli_driver_angle.png"), k + diffY, l + diffX, 0, 0.0F, i, j, i, j); } - public static Matrix4f getVehicleTransform(VehicleEntity vehicle) { + public static Matrix4f getVehicleTransform(VehicleEntity vehicle, float partialTicks) { Matrix4f transform = new Matrix4f(); - transform.translate((float) vehicle.getX(), (float) vehicle.getY() + 1.45f, (float) vehicle.getZ()); + transform.translate((float) Mth.lerp(partialTicks, vehicle.xo, vehicle.getX()), (float) Mth.lerp(partialTicks, vehicle.yo + 1.45, vehicle.getY() + 1.45), (float) Mth.lerp(partialTicks, vehicle.zo, vehicle.getZ())); transform.rotate(Axis.YP.rotationDegrees(-vehicle.getYRot())); transform.rotate(Axis.XP.rotationDegrees(vehicle.getXRot())); transform.rotate(Axis.ZP.rotationDegrees(vehicle.getRoll())); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java index 4c18f8e58..7f49e9214 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/VehicleHudOverlay.java @@ -327,7 +327,7 @@ public class VehicleHudOverlay { renderKillIndicator(guiGraphics, w, h); } else if (Minecraft.getInstance().options.getCameraType() == CameraType.THIRD_PERSON_BACK && !ClientEventHandler.zoomVehicle) { - Vec3 p = RenderHelper.worldToScreen(new Vec3(player.getX(), player.getY(), player.getZ()).add(iLand.getBarrelVec(event.getPartialTick()).scale(192)), cameraPos); + Vec3 p = RenderHelper.worldToScreen(new Vec3(Mth.lerp(event.getPartialTick(), player.xo, player.getX()), Mth.lerp(event.getPartialTick(), player.yo + player.getEyeHeight(), player.getEyeY()), Mth.lerp(event.getPartialTick(), player.zo, player.getZ())).add(iLand.getBarrelVec(event.getPartialTick()).scale(192)), cameraPos); // 第三人称准星 if (p != null) { poseStack.pushPose();