Project1
标题:
这个速度的计算方法是正确的么?
[打印本页]
作者:
TheRebirth
时间:
2013-4-4 17:24
标题:
这个速度的计算方法是正确的么?
源代码如下:
int Radioshoot(int Type,int Index,int Health,GLfloat Red,GLfloat Green,GLfloat Blue,GLfloat Alpha,int Way,int Length,GLfloat MinSpeed,GLfloat MaxSpeed,GLfloat XScale,GLfloat YScale,GLfloat ZScale)
{
for(i=0;i<Way;i++)
{
for(j=0;j<Length;j++)
{
BulletInitialize(Type,Index,Health,Red,Green,Blue,Alpha,XCoord,YCoord,ZCoord,
(cos(360.0f/Way*i+90.0f)*(MaxSpeed-MinSpeed)/(Length-1)*j+MinSpeed)*XScale,
(sin(360.0f/Way*i)*(MaxSpeed-MinSpeed)/(Length-1)*j+MinSpeed)*YScale,
sqrt(XSpeed*XSpeed/XScale/XScale+YSpeed*YSpeed/YScale/YScale)*ZScale,
);
}
}
return TRUE;
}
其中X方向速度为(cos(360.0f/Way*i+90.0f)*(MaxSpeed-MinSpeed)/(Length-1)*j+MinSpeed)*XScale,
Y方向速度为(sin(360.0f/Way*i)*(MaxSpeed-MinSpeed)/(Length-1)*j+MinSpeed)*YScale,
Z方向速度为sqrt(XSpeed*XSpeed/XScale/XScale+YSpeed*YSpeed/YScale/YScale)*ZScale。
Way变量将决定发射器将向多少个互成角度均等的方向发射子弹,而Length变量将决定每个方向上发射的子弹数。
而XScale则是该子弹的速度在X方向上的缩放值。
比如,如果三个缩放值都相等,那么,无论你从哪里看,这个弹幕都是完美的球体。
但若其中一个缩放值变为0,则该弹幕便会变为一个平面上的正圆。
若再将另外一个缩放值降低,则你将看到一个平面上的椭圆。
别公式还没看完头就先晕了哟
作者:
诺亚之城
时间:
2013-4-4 18:06
这就是弹幕代码?……完全看不懂{:2_286:}
作者:
美丽晨露
时间:
2013-4-4 18:19
纯事件弹幕路过
作者:
你最珍贵
时间:
2013-4-4 19:45
不觉明历
作者:
TheRebirth
时间:
2013-4-4 21:49
あの...求数学帝……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1