相对于玩家角度调整玩家移动
问题描述:
我正在将向量2输入作为LeftStick并将其围绕Z轴旋转到玩家面对的角度。游戏不会施加旋转,玩家无论面对什么,都会朝相同的方向前进。相对于玩家角度调整玩家移动
Matrix movmentRotation = Matrix.CreateRotationZ(MathHelper.ToRadians(player.yaw));
Vector2 move = Vector2.Transform(leftStick, movmentRotation);
player.postion.X += move.X;
player.postion.Y += move.Y;
答
我觉得代码有没有意义的,我不明白你为什么要旋转leftstick
矢量...
如果你想扫射,你只需要添加
leftstick
矢量乘以速度因子。这样,您的玩家角度不会被修改,玩家会沿着左手方向移动。-
如果你希望你的球员面对的
leftStick
方向,你必须重新计算player.yawplayer.yaw = Math.atan2(leftStick.Y, leftStick.X);
或
player.yaw += (Math.atan2(leftStick.Y, leftStick.X) - player.yaw) * 0.1f;
如果玩家面朝-x和他向前推动左边的棍子会使他向+ x方向移动我希望移动命令与玩家面对的方式相关。如果玩家面向+ y或+ x和+ y的中间位置,那么他应该朝这个方向前进。现在无论玩家面向前进方向如何向+方向移动。 – FreakinaBox 2012-08-13 19:13:14