繁体   English   中英

如何让我的怪物面向正确的方向?

[英]How to make my monster face the right direction?

我在让怪物面向正确的方向时遇到了问题。 这是我的代码:

void RotateMonster(Monster monster)
{
     float deltaX = monster.Target.X - monster.coordinate.X;
     float deltaY = monster.Target.Y - monster.coordinate.Y;
     float tangentable = deltaX / deltaY;
     monster.Rotation = (float)Math.Atan(tangentable);
}

我遇到的问题是,有时怪物向后走,它面向错误的方向,有人可以帮我解释一下我做错了什么?

你必须检查的符号deltaXdeltaY值,以确定如何处理的结果做Atan方法。

Atan方法不知道您是使用正值还是负值来计算切线,例如它无法区分100/50-100/-50之间的差异。 对于某些组合,您必须为角度添加半个旋转。

我没有确切地掌握什么价值,但基本上是这样的:

float angle = (float)Math.Atan(tangentable);
if ((deltaX < 0 && deltaY >= 0) || (deltaX >= 0 && deltaY < 0)) {
  angle = angle + Math.PI;
}
monster.Rotation = angle;

......或正面和负面价值的其他组合。 您应该能够测试出什么能为您的坐标系提供正确的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM