public override bool GetBulletPara(BulletParaType paraType, out float value)
    {
        switch (paraType)
        {
        case BulletParaType.Velocity:
            value = _movableObj.velocity;
            return(true);

        case BulletParaType.VAngel:
            value = _movableObj.vAngle;
            return(true);

        case BulletParaType.Acce:
            value = _movableObj.acce;
            return(true);

        case BulletParaType.AccAngle:
            value = _movableObj.accAngle;
            return(true);

        case BulletParaType.Alpha:
            value = _curAlpha;
            return(true);
        }
        value = 0;
        return(false);
    }
    public override bool GetBulletPara(BulletParaType paraType, out float value)
    {
        float returnValue;

        if (base.GetBulletPara(paraType, out returnValue))
        {
            value = returnValue;
            return(true);
        }
        switch (paraType)
        {
        case BulletParaType.Alpha:
            value = _curAlpha;
            return(true);

        case BulletParaType.ScaleX:
            value = _scaleX;
            return(true);

        case BulletParaType.ScaleY:
            value = _scaleY;
            return(true);
        }
        value = 0;
        return(false);
    }
Esempio n. 3
0
    /// <summary>
    /// 使用组件进行移动参数变更,
    /// <para>具体参数参考AddParaChangeEvent方法</para>
    /// <para>bullet</para>
    /// <para>para MovePara</para>
    /// <para>changeMode 改变方式 ChangeTo,IncBy,DecBy,ChangeTo</para>
    /// <para>valueType 参数类型</para>
    /// <para>arg0 参数0</para>
    /// <para>arg1 参数1</para>
    /// <para>valueOffset 随机偏移量</para>
    /// <para>delay 起始延迟</para>
    /// <para>duration 变化持续时间</para>
    /// <para>intMode 插值方式</para>
    /// <para>repeatCount 重复次数</para>
    /// <para>repeatInterval 每次重复的间隔</para>
    /// <para>总计12个参数</para>
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int AddBulletParaChangeEvent(ILuaState luaState)
    {
        EnemyBulletBase   bullet         = luaState.ToUserData(-12) as EnemyBulletBase;
        BulletParaType    para           = (BulletParaType)luaState.ToInteger(-11);
        ParaChangeMode    changeMode     = (ParaChangeMode)luaState.ToInteger(-10);
        int               valueType      = luaState.ToInteger(-9);
        float             arg0           = (float)luaState.ToNumber(-8);
        float             arg1           = (float)luaState.ToNumber(-7);
        float             valueOffset    = (float)luaState.ToNumber(-6);
        int               delay          = luaState.ToInteger(-5);
        int               duration       = luaState.ToInteger(-4);
        InterpolationMode intMode        = (InterpolationMode)luaState.ToInteger(-3);
        int               repeatCount    = luaState.ToInteger(-2);
        int               repeatInterval = luaState.ToInteger(-1);
        BCParasChange     bc             = bullet.AddOrGetComponent <BCParasChange>();
        ParaChangeValue   changeValue    = new ParaChangeValue
        {
            argType = valueType,
            arg0    = arg0,
            arg1    = arg1,
            offset  = valueOffset,
        };

        bc.AddParaChangeEvent(para, changeMode, changeValue, delay, duration, intMode, repeatCount, repeatInterval);
        return(0);
    }
Esempio n. 4
0
    public override bool GetBulletPara(BulletParaType paraType, out float value)
    {
        value = 0;
        switch (paraType)
        {
        case BulletParaType.Velocity:
            value = _curVelocity;
            return(true);

        case BulletParaType.Vx:
            value = _vx;
            return(true);

        case BulletParaType.Vy:
            value = _vy;
            return(true);

        case BulletParaType.VAngel:
            value = _curVAngle;
            return(true);

        case BulletParaType.Acce:
            value = _curAcce;
            return(true);

        case BulletParaType.AccAngle:
            value = _curAccAngle;
            return(true);

        case BulletParaType.MaxVelocity:
            value = _maxVelocity;
            return(true);

        case BulletParaType.CurveAngle:
            value = _curCurveAngle;
            return(true);

        case BulletParaType.CurveRadius:
            value = _curRadius;
            return(true);

        case BulletParaType.CurveDeltaR:
            value = _deltaRadius;
            return(true);

        case BulletParaType.CurveOmega:
            value = _curOmega;
            return(true);

        case BulletParaType.CurveCenterX:
            value = _centerPos.x;
            return(true);

        case BulletParaType.CurveCenterY:
            value = _centerPos.y;
            return(true);
        }
        return(false);
    }
Esempio n. 5
0
    public override bool SetBulletPara(BulletParaType paraType, float value)
    {
        switch (paraType)
        {
        case BulletParaType.Velocity:
            Velocity = value;
            return(true);

        case BulletParaType.Vx:
            Vx = value;
            return(true);

        case BulletParaType.Vy:
            Vy = value;
            return(true);

        case BulletParaType.VAngel:
            VAngle = value;
            return(true);

        case BulletParaType.Acce:
            Acce = value;
            return(true);

        case BulletParaType.AccAngle:
            AccAngle = value;
            return(true);

        case BulletParaType.MaxVelocity:
            MaxVelocity = value;
            return(true);

        case BulletParaType.CurveAngle:
            CurveAngle = value;
            return(true);

        case BulletParaType.CurveRadius:
            CurveRadius = value;
            return(true);

        case BulletParaType.CurveDeltaR:
            CurveDeltaRadius = value;
            return(true);

        case BulletParaType.CurveOmega:
            CurveOmega = value;
            return(true);

        case BulletParaType.CurveCenterX:
            _centerPos.x = value;
            return(true);

        case BulletParaType.CurveCenterY:
            _centerPos.y = value;
            return(true);
        }
        return(false);
    }
Esempio n. 6
0
    private BulletParasChangeData CreateChangeData(BulletParaType paraType, InterpolationMode intMode)
    {
        BulletParasChangeData changeData = ObjectsPool.GetInstance().GetPoolClassAtPool <BulletParasChangeData>();

        changeData.paraType = paraType;
        changeData.mode     = intMode;
        changeData.GetInterpolationValueFunc = MathUtil.GetInterpolationFloatFunc(changeData.mode);
        return(changeData);
    }
    /// <summary>
    /// 设置子弹的属性
    /// <para>bullet</para>
    /// <para>BulletParaType paraType</para>
    /// <para>float value</para>
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int SetBulletPara(ILuaState luaState)
    {
        EnemyBulletBase bullet   = luaState.ToUserData(-3) as EnemyBulletBase;
        BulletParaType  paraType = (BulletParaType)luaState.ToInteger(-2);
        float           value    = (float)luaState.ToNumber(-1);

        luaState.Pop(3);
        bullet.SetBulletPara(paraType, value);
        return(0);
    }
    /// <summary>
    /// 获取子弹的属性
    /// <para>bullet</para>
    /// <para>BulletParaType paraType</para>
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int GetBulletPara(ILuaState luaState)
    {
        EnemyBulletBase bullet   = luaState.ToUserData(-2) as EnemyBulletBase;
        BulletParaType  paraType = (BulletParaType)luaState.ToInteger(-1);

        luaState.Pop(2);
        float value;

        if (bullet.GetBulletPara(paraType, out value))
        {
            luaState.PushNumber(value);
            return(1);
        }
        Logger.LogWarn("BulletPara " + paraType + " in " + bullet.Type + " is not exist!");
        return(0);
    }
Esempio n. 9
0
 public override bool SetBulletPara(BulletParaType paraType, float value)
 {
     switch (paraType)
     {
         case BulletParaType.Alpha:
             SetAlpha(value);
             return true;
         case BulletParaType.LaserLength:
             SetLength(value);
             return true;
         case BulletParaType.LaserWidth:
             SetWidth(value);
             return true;
         case BulletParaType.CurveOmega:
             _laserRotateOmega = value;
             return true;
     }
     return false;
 }
Esempio n. 10
0
    public override bool GetBulletPara(BulletParaType paraType, out float value)
    {
        switch (paraType)
        {
        case BulletParaType.Velocity:
            value = _movableObj.velocity;
            return(true);

        case BulletParaType.VAngel:
            value = _movableObj.vAngle;
            return(true);

        case BulletParaType.Acce:
            value = _movableObj.acce;
            return(true);

        case BulletParaType.AccAngle:
            value = _movableObj.accAngle;
            return(true);

        case BulletParaType.CurveRadius:
            value = _movableObj.curveRadius;
            return(true);

        case BulletParaType.CurveAngle:
            value = _movableObj.curveAngle;
            return(true);

        case BulletParaType.CurveDeltaR:
            value = _movableObj.curveDeltaRadius;
            return(true);

        case BulletParaType.CurveOmega:
            value = _movableObj.curveOmega;
            return(true);

        case BulletParaType.MaxVelocity:
            value = _movableObj.maxVelocity;
            return(true);
        }
        value = 0;
        return(false);
    }
Esempio n. 11
0
    public override bool SetBulletPara(BulletParaType paraType, float value)
    {
        switch (paraType)
        {
        case BulletParaType.Velocity:
            _movableObj.velocity = value;
            return(true);

        case BulletParaType.VAngel:
            _movableObj.vAngle = value;
            return(true);

        case BulletParaType.Acce:
            _movableObj.acce = value;
            return(true);

        case BulletParaType.AccAngle:
            _movableObj.accAngle = value;
            return(true);

        case BulletParaType.CurveRadius:
            _movableObj.curveRadius = value;
            return(true);

        case BulletParaType.CurveAngle:
            _movableObj.curveAngle = value;
            return(true);

        case BulletParaType.CurveDeltaR:
            _movableObj.curveDeltaRadius = value;
            return(true);

        case BulletParaType.CurveOmega:
            _movableObj.curveOmega = value;
            return(true);

        case BulletParaType.MaxVelocity:
            _movableObj.maxVelocity = value;
            return(true);
        }
        return(false);
    }
Esempio n. 12
0
 public override bool GetBulletPara(BulletParaType paraType, out float value)
 {
     value = 0;
     switch (paraType)
     {
         case BulletParaType.Alpha:
             value = _curAlpha;
             return true;
         case BulletParaType.LaserLength:
             value = _curLength;
             return true;
         case BulletParaType.LaserWidth:
             value = _curWidth;
             return true;
         case BulletParaType.CurveOmega:
             value = _laserRotateOmega;
             return true;
     }
     return false;
 }
Esempio n. 13
0
    /// <summary>
    /// 添加改变参数的事件
    /// </summary>
    /// <param name="para">参数类型</param>
    /// <param name="changeMode">改变的模式,(增加到、减少到、变化到)</param>
    /// <param name="changeValue">改变的值</param>
    /// <param name="valueOffset">改变的值的上下偏移</param>
    /// <param name="delay">延迟</param>
    /// <param name="duration">变化的持续时间</param>
    /// <param name="intMode">变化的插值方式</param>
    /// <param name="repeatCount">重复次数</param>
    /// <param name="repeatInterval">重复的时间间隔</param>
    public void AddParaChangeEvent(BulletParaType para, ParaChangeMode changeMode,
                                   ParaChangeValue value, int delay, float duration, InterpolationMode intMode, int repeatCount, int repeatInterval)
    {
        BulletParasChangeData changeData = CreateChangeData(para, intMode);

        changeData.changeMode  = changeMode;
        changeData.changeValue = value;
        changeData.delay       = delay;
        changeData.changeTime  = 0;
        // duration小于等于0时默认设置为1,以免报错
        if (duration <= 0)
        {
            duration = 1;
        }
        changeData.changeDuration = duration;
        changeData.repeatCount    = repeatCount;
        changeData.repeatInterval = repeatInterval;
        _changeList.Add(changeData);
        _listCount++;
    }
    public override bool SetBulletPara(BulletParaType paraType, float value)
    {
        switch (paraType)
        {
        case BulletParaType.Velocity:
        {
            _movableObj.velocity = value;
            return(true);
        }

        case BulletParaType.VAngel:
            if (!_isInitAngle)
            {
                _movableObj.vAngle = value;
                _isInitAngle       = true;
            }
            return(true);

        case BulletParaType.Acce:
        {
            _movableObj.acce = value;
            return(true);
        }

        case BulletParaType.AccAngle:
            if (!_isInitAngle)
            {
                _movableObj.accAngle = value;
                _isInitAngle         = true;
            }
            return(true);

        case BulletParaType.Alpha:
            SetAlpha(value);
            return(true);
        }
        value = 0;
        return(false);
    }
    public override bool SetBulletPara(BulletParaType paraType, float value)
    {
        if (base.SetBulletPara(paraType, value))
        {
            return(true);
        }
        switch (paraType)
        {
        case BulletParaType.Alpha:
            SetAlpha(value);
            return(true);

        case BulletParaType.ScaleX:
            SetScaleX(value);
            return(true);

        case BulletParaType.ScaleY:
            SetScaleY(value);
            return(true);
        }
        return(false);
    }
Esempio n. 16
0
 public virtual bool GetBulletPara(BulletParaType paraType, out float value)
 {
     throw new System.NotImplementedException();
 }