예제 #1
0
    public BasePattern GetPattern(PATTERN_NAME patternName)
    {
        GameObject go = popFromPool(patternName);

        go.SetActive(true);
        BasePattern bp = go.GetComponent <BasePattern>();

        return(bp);
    }
예제 #2
0
    public void setPattern
        (bool isMix, PATTERN_NAME patternName, float XScale, float YScale, float speed, float anlge, float speedRate, float angleRate, float interval, float BulletSpeedRate = 0.0f, float BulletAngleRate = 0.0f,
        int Count        = 1, float MinInterval      = 0.0f,
        float RotAngle   = 90.0f, float RotAngleRate = 90.0f, float MaxAngle = 90.0f, int GroupCount = 0,
        BULLET_TYPE type = BULLET_TYPE.BASE, BULLET_IMAGE image = BULLET_IMAGE.BASE_BULLET1_1, float HomingRate = 0.0f, bool isHoming = false, float MoveTime = 0.0f, float StopTime = 0.0f, bool isMyPos = true, float StartX = 0.0f, float StartY = 0.0f)
    {
        m_isPatternMix = isMix;
        m_ePattern     = patternName;

        ScaleXY.x = XScale;
        ScaleXY.y = YScale;

        m_fSpeed     = speed;
        m_fAngle     = anlge;
        m_fSpeedRate = speedRate;
        m_fAngleRate = angleRate;

        m_iFireCount    = Count;
        m_fFireInterval = interval;

        m_fBullet_SpeedRate = BulletSpeedRate;
        m_fBullet_AngleRate = BulletAngleRate;

        m_fMaxAngle = MaxAngle;

        m_fRotateAngle     = RotAngle;
        m_fRotateAngleRate = RotAngleRate;

        m_fMiniFireInterval = MinInterval;

        m_eType  = type;
        m_eImage = image;

        m_iGroupCount = GroupCount;

        m_HomingRate = HomingRate;
        m_isHoming   = isHoming;

        m_MoveTime = MoveTime;
        m_StopTime = StopTime;

        m_fStartPosX = StartX;
        m_fStartPosY = StartY;
        m_isMyPos    = isMyPos;

        m_sImage = SpriteMGR.Instance.GetSprite(m_eImage);
    }
예제 #3
0
    public void setPattern(PatternState stat)
    {
        m_isPatternMix = stat.m_isPatternMix;
        m_ePattern     = stat.m_ePattern;

        ScaleXY.x = stat.ScaleXY.x;
        ScaleXY.y = stat.ScaleXY.y;

        m_fSpeed     = stat.m_fSpeed;
        m_fAngle     = stat.m_fAngle;
        m_fSpeedRate = stat.m_fSpeedRate;
        m_fAngleRate = stat.m_fAngleRate;

        m_iFireCount    = stat.m_iFireCount;
        m_fFireInterval = stat.m_fFireInterval;

        m_fBullet_SpeedRate = stat.m_fBullet_SpeedRate;
        m_fBullet_AngleRate = stat.m_fBullet_AngleRate;

        m_fRotateAngle     = stat.m_fRotateAngle;
        m_fRotateAngleRate = stat.m_fRotateAngleRate;

        m_fMaxAngle = stat.m_fMaxAngle;

        m_fMiniFireInterval = stat.m_fMiniFireInterval;

        m_iGroupCount = stat.m_iGroupCount;

        m_eType  = stat.m_eType;
        m_eImage = stat.m_eImage;

        m_HomingRate = stat.m_HomingRate;
        m_isHoming   = stat.m_isHoming;

        m_StopTime = stat.m_StopTime;
        m_MoveTime = stat.m_MoveTime;


        m_fStartPosX = stat.m_fStartPosX;
        m_fStartPosY = stat.m_fStartPosY;

        m_isMyPos = stat.m_isMyPos;

        m_sImage = SpriteMGR.Instance.GetSprite(m_eImage);
    }
예제 #4
0
    private GameObject popFromPool(PATTERN_NAME pattern)
    {
        List <GameObject> objList = m_dPatternTable[pattern];
        GameObject        item;

        if (objList == null)
        {
            return(null);
        }

        if (objList.Count > 1)
        {
            item = objList[0];
            objList.RemoveAt(0);

            return(item);
        }

        item = objList[0];
        m_dPatternTable[pattern].Add(CreateItem(item));

        return(item);
    }