Ejemplo n.º 1
0
    void SpawnTadpole()
    {
        GameObject go = Instantiate(tadpolePrefab, new Vector3(0f, 0f, 0f), Quaternion.identity) as GameObject;
        Tadpole    t  = go.GetComponent <Tadpole>();
        int        vi = Random.Range(0, tadpoleColors.Length);

        t.SetFinColor(tadpoleColors[vi]);
        t.tadpoleValue = tadpoleValues[vi];
        //Debug.Log(vi);
        t.speed = (t.tadpoleValue / 2) + 10f;         //Random.Range(5f, 50f); //
        Vector3 pos;

        if (Random.value < 0.5f)
        {
            t.direction = new Vector3(1f, 0f, 0f);
            pos         = new Vector3(leftOfScreen, Random.Range(-10f, 40f), 0f);
            while (Vector3.Distance(lastSpawnPos, pos) < 10)
            {
                pos = new Vector3(leftOfScreen, Random.Range(-10f, 40f), 0f);
            }
            t.transform.position = pos;
            t.transform.Rotate(new Vector3(0f, 180f, 0f));
        }
        else
        {
            t.direction = new Vector3(-1f, 0f, 0f);
            pos         = new Vector3(rightOfScreen, Random.Range(-10f, 40f), 0f);
            while (Vector3.Distance(lastSpawnPos, pos) < 10)
            {
                pos = new Vector3(rightOfScreen, Random.Range(-10f, 40f), 0f);
            }
            t.transform.position = pos;
        }
        lastSpawnPos = new Vector3(pos.x, pos.y, pos.z);
    }
Ejemplo n.º 2
0
    void CreateWinnerText(Tadpole tadpole)
    {
        GameObject newObject = Instantiate(WinnerText, new Vector3(), Quaternion.identity);

        newObject.transform.SetParent(Canvas.transform, false);
        Text text = newObject.GetComponent <Text>();

        text.text = "[" + tadpole.PlayerName + "]" + "の勝ち!";
    }
Ejemplo n.º 3
0
    public void CreateTadpoleAI(Vector3 spawnPosition, int index)
    {
        TadpoleAI newTadpoleAI = Instantiate(TadpoleAI, spawnPosition, Quaternion.identity);

        newTadpoleAI.transform.SetParent(Canvas.transform, false);

        Tadpole tadpole = newTadpoleAI.gameObject.GetComponentInChildren <Tadpole>();

        if (tadpole)
        {
            tadpole.PlayerName = "AIその" + (index + 1).ToString();
        }
    }
Ejemplo n.º 4
0
    void CreatePlayerCore(Vector2 spawnPosition, Vector2 size, Color color, string name)
    {
        TadpoleTouchController newTadpolePlayer = Instantiate(TadpolePlayer, new Vector3(), Quaternion.identity);

        newTadpolePlayer.transform.SetParent(Canvas.transform, false);
        newTadpolePlayer.ChangePlayerTouchInfo(spawnPosition, size);

        Tadpole tadpole = newTadpolePlayer.gameObject.GetComponentInChildren <Tadpole>();

        if (tadpole)
        {
            tadpole.PlayerName = name;
            SpriteRenderer renderer = tadpole.GetComponent <SpriteRenderer>();
            if (renderer)
            {
                renderer.color = color;
            }
        }
    }
Ejemplo n.º 5
0
    /// <summary>
    /// コライダーと当たった瞬間.
    /// </summary>
    /// <param name="other"></param>
    void OnTriggerEnter2D(Collider2D other)
    {
        if (gameObject && other && isDroped && !isDead)
        {
            Tadpole tadPole = other.gameObject.GetComponent <Tadpole>();

            // ノックバック中は処理しない
            if (tadPole && !tadPole.CheckKockBack())
            {
                tadPole.LevelUp();

                // 餌死亡処理、callbackを呼び出す.
                isDead = true;
                if (OnDeadListeners != null)
                {
                    this.OnDeadListeners(this);
                }
                Destroy(gameObject);
            }
        }
    }
Ejemplo n.º 6
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (gameObject && other)
        {
            Tadpole otherTadPole = other.gameObject.GetComponent <Tadpole>();
            if (otherTadPole)
            {
                // ノックバック中は処理しない
                if (!otherTadPole.CheckKockBack() && !this.CheckKockBack())
                {
                    bool    bSpawnFood    = false;
                    Vector3 spawnPosition = new Vector3();
                    Tadpole activeTadpole = null;

                    // よりレベルの高い方を下げる
                    // 同レベルの場合は下がらない
                    if (otherTadPole.Level == this.Level)
                    {
                    }
                    else if (otherTadPole.Level < this.Level)
                    {
                        this.LevelDown();
                        bSpawnFood    = true;
                        spawnPosition = this.transform.position;
                        activeTadpole = otherTadPole;
                    }
                    else
                    {
                        otherTadPole.LevelDown();
                        bSpawnFood    = true;
                        spawnPosition = otherTadPole.transform.position;
                        activeTadpole = this;
                    }

                    float   popAccel  = 0.0f;
                    Vector3 direction = otherTadPole.transform.position - this.transform.position;
                    direction.Normalize();

                    // ヒットしてきた対象
                    otherTadPole.SetDirection(direction);
                    otherTadPole.KockBack();

                    popAccel = (activeTadpole == null)? POP_ACCEL_ACTIVE :
                               ((activeTadpole == otherTadPole)? POP_ACCEL_ACTIVE: POP_ACCEL_PASSIVE);
                    otherTadPole.AddAccel(popAccel, true);

                    // 自分自身
                    this.SetDirection(-direction);
                    this.KockBack();

                    popAccel = (activeTadpole == null)? POP_ACCEL_ACTIVE :
                               ((activeTadpole == this)? POP_ACCEL_ACTIVE: POP_ACCEL_PASSIVE);
                    this.AddAccel(popAccel, true);

                    // エサの配置
                    if (bSpawnFood)
                    {
                        GameObject.Find("GameMain").GetComponent <GameMain>().CreateFood(spawnPosition, false);
                    }
                }
            }
        }
    }