平滑直升机和装甲车第三人称准星

This commit is contained in:
Atsuihsio 2025-03-08 02:45:25 +08:00
parent 58198e1c3e
commit ee7b194bca
2 changed files with 4 additions and 4 deletions

View file

@ -149,7 +149,7 @@ public class HelicopterHudOverlay {
} }
Matrix4f transform = getVehicleTransform(mobileVehicle); Matrix4f transform = getVehicleTransform(mobileVehicle, event.getPartialTick());
float x0 = 0f; float x0 = 0f;
float y0 = 0.65f; float y0 = 0.65f;
float z0 = 0.8f; 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); 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(); 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.YP.rotationDegrees(-vehicle.getYRot()));
transform.rotate(Axis.XP.rotationDegrees(vehicle.getXRot())); transform.rotate(Axis.XP.rotationDegrees(vehicle.getXRot()));
transform.rotate(Axis.ZP.rotationDegrees(vehicle.getRoll())); transform.rotate(Axis.ZP.rotationDegrees(vehicle.getRoll()));

View file

@ -327,7 +327,7 @@ public class VehicleHudOverlay {
renderKillIndicator(guiGraphics, w, h); renderKillIndicator(guiGraphics, w, h);
} else if (Minecraft.getInstance().options.getCameraType() == CameraType.THIRD_PERSON_BACK && !ClientEventHandler.zoomVehicle) { } 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) { if (p != null) {
poseStack.pushPose(); poseStack.pushPose();