C++ 根据一点的角度射击子弹

C++ 根据一点的角度射击子弹,c++,math,cocos2d-iphone,cocos2d-x,trigonometry,C++,Math,Cocos2d Iphone,Cocos2d X,Trigonometry,我所做的是用一条直线扫描一个区域,我前后旋转20度 当我点击我的动作按钮时,我想朝着精灵旋转的方向射出一颗子弹 我通过做一个旋转来获得角度 sprite->getRotation(); 我有我单位的点数,假设它是(0,0) 我猜我需要在这条线上找到一个点,但我不知道它背后的数学原理 这可能吗?假设您知道子弹的速度(像素/秒),让我假设您将其称为v。横穿屏幕需要s秒。而x表示子弹在轴x上的位置(与y变量相同),您可以使用这个简单的三角函数实现这两个变量: x = 0; // initial

我所做的是用一条直线扫描一个区域,我前后旋转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)
}
x=0;//初始位置。你说它从(0,0)开始
y=0;
对于(int i=0;i
这就是我要找的。由于某种原因,当我在x和y上切换正反方向时,它对我起了作用。谢谢你给我指明了正确的方向。