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