C++ 根据一点的角度射击子弹
我所做的是用一条直线扫描一个区域,我前后旋转20度 当我点击我的动作按钮时,我想朝着精灵旋转的方向射出一颗子弹 我通过做一个旋转来获得角度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
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上切换正反方向时,它对我起了作用。谢谢你给我指明了正确的方向。