1

我正在做的是用我来回旋转 20 度的直线精灵扫描一个区域

当我点击我的动作按钮时,我想向精灵的旋转方向射击子弹

我通过做一个来获得角度

sprite->getRotation();

我有我的单位可用的点,可以说它是(0,0)

我猜我需要在线上找到一个点,但我不知道它背后的数学。

这甚至可能吗?

4

1 回答 1

2

鉴于您知道子弹的速度(像素/秒),让我假设您将调用它vs横穿你的屏幕需要几秒钟。这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)
}
于 2013-07-17T21:54:35.620 回答