我和我的暴徒AI有麻烦
它在一定程度上起作用,但它的作用与我想要的相反,这意味着它向错误的方向旋转180度
Target = playerST.Posistion;
Vector2 trivial;
trivial.X = Posistion.X - Target.X;
trivial.Y = Posistion.Y - Target.Y;
instant = ((float)Math.Atan2(trivial.Y, trivial.X)) + 3.141592f;
这会告诉我目标在哪里,并计算出需要旋转的数字
它的弧度加上3.1etc等于180度,因为这样计算它的最小值为-3.141,最大值为3.141,但敌人的旋转是在0到6.28之间进行的,加上3.141使瞬变=在敌人旋转的范围内,而不是在敌人旋转的范围下3.141
不管怎么说,这就是我被困的地方。。。实际的旋转
// irrelevant
if (attack == true)
{
Vector2 modelVelocityAdd = Vector2.Zero;
modelVelocityAdd.Y = -(float)Math.Sin(rotation);
modelVelocityAdd.X = -(float)Math.Cos(rotation);
modelVelocityAdd *= (0.00002f * speed);
if ((((rotation) + 0.2f)) < instant && (rotation - 0.2f) > instant)
{
modelVelocity += modelVelocityAdd;
}
// not so irrelvant and needs fixing!
if (instant < rotation )
{
rotation -= rotationspeed / 2000;
}
else if (rotation < instant)
{
rotation += rotationspeed / 2000;
}
所以我的问题是,我如何阻止它朝着错误的方向旋转180度,让它面对玩家,而不是完全相反的方向
我不能简单地,做下面的事情,因为船被困,在5度到零下5度之间来回移动
if (instant < rotation )
{
rotation += rotationspeed / 2000;
}
else if (rotation < instant)
{
rotation -= rotationspeed / 2000;
}
谢谢任何帮助
我想出来了,
trivial.X = Posistion.X - Target.X;
trivial.Y = Posistion.Y - Target.Y;
你错了吗应该是的
trivial.X = Target.X -Posistion.X ;
trivial.Y = Target.Y - Posistion.Y ;
谢谢你,没有你的帮助,我永远不会注意到: D
而不是
if (instant < rotation )
{
rotation += rotationspeed / 2000;
}
else if (rotation < instant)
{
rotation -= rotationspeed / 2000;
}
尝试
rotation = Math.Lerp(rotation, instant, 0.1);
0.1控制旋转“速度”。使用lerp使运动更自然,并将解决角度在正负之间振荡的问题。
问题 你需要实现弧度和度之间的转换。 解决方案 使用 JavaScript 的 Math.PI 和一个简单的公式来转换两者。 # 弧度转换成度 radiansToDegrees = (radians) -> degrees = radians * 180 / Math.PI radiansToDegrees(1) # => 57.29577951308232 # 度转换成弧度 degr
我是XNA的新手。我只是陷入了某种困境——我必须在游戏中倾斜/翻转角色,这意味着围绕X轴和Z轴旋转(不是同时旋转!)我可以做旋转-这意味着绕Y轴旋转。我有旋转矩阵,角色的当前位置向量(也是可以从旋转矩阵中获得的朝向/方向向量)我通过将朝向向量围绕Y轴旋转R弧度来实现旋转,即围绕Y轴旋转。比如说,如果我现在绕X轴旋转,那么方法是什么?例如,从站立姿势改为“超人飞行”姿势需要角色倾斜。。。y旋转不涉及
我试图得到4个Vector2对象,它们代表一个精灵的4个角,在精灵自身围绕其中心旋转时旋转。但是,在下面的代码中,Vector2对象在客户端空间中围绕0,0旋转,而不是围绕对象的中心旋转。使用矩阵变换,是否有任何方法可以围绕对象的中心而不是全局坐标(0,0)旋转Vector2对象? 这是迄今为止旋转的函数:
问题内容: 我有一个SCNCamera场景设置,可以围绕一个对象旋转。 限制相机围绕物体旋转的最佳方式是什么? 示例:除了能够围绕整个球体旋转之外,我如何将旋转限制为单个半球? 我的第一个尝试是查看.allowsCameraControl是否存在任何限制。找不到任何东西。 然后,我尝试使用c#Unity:鼠标轨道脚本,不走运。 关于如何解决或解决此问题的一些指示将非常有用。 问题答案: 您似乎就快
没多久,绝影干脆在学校外面租了房子自己搬了出去。 超薄早在上上学期就在外面租了房子,本来超薄话不多,看起来又热爱学习,大家都以为他是个老实人,根本没想到他居然是寝室第一个谈恋爱的,更没想到他居然会租房子同居。上学期王江也出去租了房子,他有足够的理由:要搞音乐,搞乐队,还要搞平面设计,比如搞音乐的搞设计的标志是什么?当然是有一家属于自己的工作室。――所以租间房子作工作室是很让人信服的。 绝影也想出去
问题内容: 我正在尝试在用户创建对象时从x,y获得以度为单位的alpha角度。 我写了以下构造函数: 我是正确的_alpha现在是一个以度为单位的角度,而不是我从atan()方法获得的弧度吗? 有一个简单的方法吗? 谢谢 ! 问题答案: 为什么不使用Java SE附带的内置方法。