Exemple #1
0
    // Akan dipanggil ketika objek lain ber-collider (bola) bersentuhan dengan dinding.
    void OnTriggerEnter2D(Collider2D anotherCollider)
    {
        // Jika objek tersebut bernama "Ball":
        if (anotherCollider.name == "Ball")
        {
            // Tambahkan skor ke pemain
            player.IncrementScore();

            // Jika skor pemain belum mencapai skor maksimal...
            if (player.Score < gameManager.maxScore)
            {
                // ...restart game setelah bola mengenai dinding.
                anotherCollider.gameObject.SendMessage("RestartGame", 2.0f, SendMessageOptions.RequireReceiver);
            }
        }

        // Ketika berabrakan dengan power
        if (anotherCollider.gameObject.name == "Buff")
        {
            PowerMovement target = anotherCollider.gameObject.GetComponent <PowerMovement>();
            target.ResetBall();
            gameManager.StartCoroutine(gameManager.BuffCycle());
        }
        if (anotherCollider.gameObject.name == "Debuff")
        {
            PowerMovement target = anotherCollider.gameObject.GetComponent <PowerMovement>();
            target.ResetBall();
            gameManager.StartCoroutine(gameManager.DebuffCycle());
        }
    }
Exemple #2
0
    // Method me-spawn power
    void SpawnPower(PowerMovement target, float speed)
    {
        float yForce      = Random.Range(-0.8f, 0.8f);
        float xForce      = Mathf.Sqrt(1 - yForce * yForce);
        float leftOrRight = Random.Range(0f, 2f);

        if (leftOrRight > 1)
        {
            xForce *= -1;
        }
        target.gameObject.SetActive(true);
        target.gameObject.transform.position = Vector3.zero;
        target.rb2D.AddForce(new Vector2(xForce, yForce) * speed);
    }