Пример #1
0
    private void _ChasingBullet(int count)
    {
        if (count % 30 != 0 || Time.timeScale <= 0f)
        {
            return;
        }
        Vector3 self = new Vector3(t.position.x, t.position.y, 0);

        if (MarisaTrans)
        {
            velocity   = MarisaTrans.position - t.position;
            velocity.z = 0;
            velocity.Normalize();
        }
        else
        {
            // 金发的孩子真可怜
            velocity = new Vector3(0, -1, 0);            //* flySpeed;
        }
        GameObject o = (GameObject)GameObject.Instantiate(bullet,
                                                          self,
                                                          t.rotation);
        EBullet e = o.GetComponent <EBullet> ();

        e.SetMarisa(Marisa);
        e.flySpeed = ChasingBulletSpeed;
        e.SetVelocity(velocity);
    }
Пример #2
0
    private void _CircleBullet(int count)
    {
        if (count % 10 != 0 || Time.timeScale <= 0f)
        {
            return;
        }
        int     bias = (int)(Random.value * 30);
        Vector3 self = new Vector3(t.position.x, t.position.y, 0);

        for (int angle = -180 + bias; angle < 180 + bias; angle += 30)
        {
            GameObject o = (GameObject)GameObject.Instantiate(bullet,
                                                              self,
                                                              t.rotation);
            o.transform.Rotate(0, 0, angle);
            EBullet e = o.GetComponent <EBullet>();
            e.flySpeed = CircleBulletSpeed;
            e.SetVelocity(1, 0, 0);
        }
    }
Пример #3
0
    private IEnumerator _Cirno()
    {
        const int radius     = 2;
        const int deltaAngle = 15;
        Vector3   self       = new Vector3(t.position.x, t.position.y, 0);
        Vector3   cirPos     = new Vector3();
        int       angle      = -180;

        for (int i = 0; i < 30; angle += deltaAngle, i++)
        {
            //for (; angle < 180; angle += deltaAngle) {
            //angle%= 180;
            cirPos.x = Mathf.Cos(angle / 180f * Mathf.PI);
            cirPos.y = Mathf.Sin(angle / 180f * Mathf.PI);
            cirPos.z = 0;
            cirPos  *= radius;
            cirPos  += self;
            // Chasing
            if (MarisaTrans)
            {
                velocity   = MarisaTrans.position - cirPos;
                velocity.z = 0;
                velocity.Normalize();
            }
            else
            {
                // 金发的孩子真可怜
                velocity = new Vector3(0, -1, 0);                //* flySpeed;
            }
            GameObject o = (GameObject)GameObject.Instantiate(bullet_r,
                                                              cirPos,
                                                              t.rotation);
            EBullet e = o.GetComponent <EBullet> ();
            e.SetMarisa(Marisa);
            e.flySpeed = CirnoBulletSpeed;
            e.SetVelocity(velocity);
            o.GetComponent <AudioSource>().Play();

            yield return(null);
        }
    }