【发布时间】:2013-08-28 21:02:42
【问题描述】:
我正在使用屏幕/虚拟操纵杆制作游戏。它自己的操纵杆工作正常。
我想要的是当你转动操纵杆时,一颗子弹朝那个方向发射。我也得到了那个工作。现在,当操纵杆不在边缘/半径时射击子弹时会出现问题。
当操纵杆位于边缘/半径时,子弹以最大速度移动,这正是我想要的。但是,当操纵杆位于操纵杆半径和中心之间的某个位置时,子弹移动得更慢。由于弧度和其他东西,这是合乎逻辑的。
但这不是我想要的。应该发生的是子弹总是以最大速度移动。
有谁知道如何做到这一点?我完全陷入了困境。
谢谢!
编辑:因为我仍然不明白这一点,基本上我想要的是我在一个圆内有一个弧度点,我想得到那个点在圆边缘的位置。
假设我有这个以弧度表示的 Vector2。
Vector2(-0.3, 0.3);
圆的半径是40。
从圆心到 Vector2 点的长度可能在附近的某个地方
radius = 40 * 0.3 = 12
现在当长度为 40 时,Vector2 点会是什么?
我似乎无法弄清楚这一点。三角学绝对不是我的强项。
【问题讨论】:
-
将速度钳制到最大速度,你可以通过我想像的中心点线的大小来找到这个,没有代码很难说
-
我明白你的想法,但我现在知道该怎么做。我添加了一些信息,你能再看一下吗?
-
量级是毕达哥拉斯 - x 平方差的平方根加上 y 平方差的平方,抱歉很难在手机上输入
-
是的,量级不是问题。但是这个量级如何帮助我获得圆圈边缘的位置?
-
你需要angle from the center of the circle,然后用它来确定我认为的速度
标签: c# unity3d trigonometry joystick radians