Пример #1
0
    // Use this for initialization
    void Start()
    {
        gamecon     = GameObject.FindWithTag("Respawn").GetComponent <Gemecon>();
        fadasc      = GameObject.FindWithTag("fada").GetComponent <fadascript>();
        enemydamege = GetComponent <EnemyDamege>();
        circoli     = GetComponent <CircleCollider2D>();
        bossstate   = Bossstate.spawn;
        check       = turn;
        rigid2d     = GetComponent <Rigidbody2D>();


        bullet.transform.localScale  = new Vector2(1.5f, 2.0f);
        bullet2.transform.localScale = new Vector2(1.0f, 2.0f);


        StartCoroutine("shot");
    }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        if (bossstate == Bossstate.spawn)
        {
            circoli.enabled = false;
        }
        else
        {
            circoli.enabled = true;
        }

        if (bossstate == Bossstate.move && gamecon.gamestate != Gemecon.Gamestate.clear)
        {
            Vector2 limitleft  = Camera.main.ViewportToWorldPoint(new Vector2(0.1f, 0));
            Vector2 limitright = Camera.main.ViewportToWorldPoint(new Vector2(0.9f, 0));

            check -= Time.deltaTime;
            if (check <= 0)
            {
                check = turn;
                int muki = Random.Range(1, 3);
                if (muki == 1)
                {
                    rigid2d.velocity = new Vector2(Random.Range(1, 6) * speed, 0);
                }
                else
                {
                    rigid2d.velocity = new Vector2(Random.Range(1, 6) * -speed, 0);
                }
            }

            if (transform.position.x >= limitright.x)
            {
                rigid2d.velocity = new Vector2(Random.Range(1, 6) * -speed, 0);
            }
            if (transform.position.x <= limitleft.x)
            {
                rigid2d.velocity = new Vector2(Random.Range(1, 6) * speed, 0);
            }

            if (atack == false)
            {
                int num = Random.Range(1, 4);
                switch (num)
                {
                case 1:
                    StartCoroutine("atack1");
                    break;

                case 2:
                    StartCoroutine("atack2");
                    break;

                case 3:
                    StartCoroutine("atack3");
                    break;

                default:
                    break;
                }
            }
        }
        else if (bossstate == Bossstate.spawn && gamecon.gamestate != Gemecon.Gamestate.clear)
        {
            rigid2d.velocity = new Vector2(0, spawnspeed);
        }
        else if (gamecon.gamestate == Gemecon.Gamestate.clear)
        {
            rigid2d.velocity = new Vector2(0, 0);
        }

        if (Camera.main.WorldToViewportPoint(transform.position).y <= 0.8f)
        {
            if (bossstate == Bossstate.spawn)
            {
                int muki = Random.Range(1, 3);
                if (muki == 1)
                {
                    rigid2d.velocity = new Vector2(Random.Range(1, 6) * speed, 0);
                }
                else
                {
                    rigid2d.velocity = new Vector2(Random.Range(1, 6) * -speed, 0);
                }
            }
            if (gamecon.gamestate != Gemecon.Gamestate.clear)
            {
                bossstate = Bossstate.move;
            }
        }

        if (enemydamege.HP <= 0 && gamecon.gamestate != Gemecon.Gamestate.clear)
        {
            gamecon.gamestate = Gemecon.Gamestate.clear;
            fadasc.StartCoroutine("second");
            StartCoroutine("bossexplo");
        }
    }