我正在做的是用我来回旋转 20 度的直线精灵扫描一个区域
当我点击我的动作按钮时,我想向精灵的旋转方向射击子弹
我通过做一个来获得角度
sprite->getRotation();
我有我的单位可用的点,可以说它是(0,0)
我猜我需要在线上找到一个点,但我不知道它背后的数学。
这甚至可能吗?
我正在做的是用我来回旋转 20 度的直线精灵扫描一个区域
当我点击我的动作按钮时,我想向精灵的旋转方向射击子弹
我通过做一个来获得角度
sprite->getRotation();
我有我的单位可用的点,可以说它是(0,0)
我猜我需要在线上找到一个点,但我不知道它背后的数学。
这甚至可能吗?
鉴于您知道子弹的速度(像素/秒),让我假设您将调用它v
。s
横穿你的屏幕需要几秒钟。这x
代表了子弹在轴上的位置x
(与y
变量相同),您可以使用这个简单的三角函数来实现这两个变量:
x = 0; // initial position. You say that it start at (0,0)
y = 0;
for (int i = 0; i < s; i++) {
sleep(1); // look in unistd.h
x += v*cos(angle); // include math.h
y += v*sin(angle); // angle in radian, of course
// draw your sprite here, at (x, y)
}