从一个角度射出子弹

shooting bullet based on an angle from a point

本文关键字:子弹 一个      更新时间:2023-10-16

我正在做的是用一条直线的精灵扫描一个区域,我来回旋转 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)
}