在 1.12.2 forge 中将 Minecraft 播放器旋转 180 度
Rotating a Minecraft player 180 degrees in 1.12.2 forge
所以我正在为我的 Minecraft 1.12.2 mod 制作一把匕首。这把匕首应该将你传送到你面对的地方 3 个方块并让你转身,基本上这样你就可以传送到敌人身后并攻击他们。我之前只是将玩家的速度设置到他们正在寻找的地方,但现在我正在努力让最初的设计发挥作用。问题是,我不知道如何旋转播放器。现在,当不是让你转身时,它总是将你旋转到正 Z,我假设这是默认的玩家旋转。有人知道修复吗?这是我当前的匕首代码:
{
Vec3d look = player.getLookVec();
BlockPos pos = player.getPosition();
float rot = (float)(2 * (look.x));
double goToX = pos.getX() + look.x * 0;
double goToY = pos.getY() + look.y * 0;
double goToZ = pos.getZ() + look.z * 0;
if(player.isAirBorne || player.onGround)
{
System.out.println(rot);
player.setPositionAndRotation(goToX, goToY, goToZ, rot, rot);
System.out.println(rot);
}
return super.onItemRightClick(worldIn, player, handIn);
提前致谢!
您只需要将他们的偏航角增加 180:
player.setPositionAndRotation(goToX, goToY, goToZ, player.getPitchYaw().y + 180F, player.getPitchYaw().x);
所以我正在为我的 Minecraft 1.12.2 mod 制作一把匕首。这把匕首应该将你传送到你面对的地方 3 个方块并让你转身,基本上这样你就可以传送到敌人身后并攻击他们。我之前只是将玩家的速度设置到他们正在寻找的地方,但现在我正在努力让最初的设计发挥作用。问题是,我不知道如何旋转播放器。现在,当不是让你转身时,它总是将你旋转到正 Z,我假设这是默认的玩家旋转。有人知道修复吗?这是我当前的匕首代码:
{
Vec3d look = player.getLookVec();
BlockPos pos = player.getPosition();
float rot = (float)(2 * (look.x));
double goToX = pos.getX() + look.x * 0;
double goToY = pos.getY() + look.y * 0;
double goToZ = pos.getZ() + look.z * 0;
if(player.isAirBorne || player.onGround)
{
System.out.println(rot);
player.setPositionAndRotation(goToX, goToY, goToZ, rot, rot);
System.out.println(rot);
}
return super.onItemRightClick(worldIn, player, handIn);
提前致谢!
您只需要将他们的偏航角增加 180:
player.setPositionAndRotation(goToX, goToY, goToZ, player.getPitchYaw().y + 180F, player.getPitchYaw().x);