Пример #1
0
        private static void TestAsteroidCollision()
        {
            AsteroidCollision instance = new AsteroidCollision();

            Console.WriteLine(instance.Solution3(new[] { -2, 1, -2, -2 }));
            Console.WriteLine(instance.Solution3(new[] { 5, 10, -5 }));
        }
Пример #2
0
    void OnTriggerEnter(Collider collision)
    {
        ProjectileEnemy missle = collision.gameObject.GetComponent <ProjectileEnemy>();

        if (missle)
        {
            Debug.Log("trafiony pociskiem");
            health -= missle.GetDmg();
            missle.Hit();
            if (health <= 0)
            {
                Destroy(gameObject);
                Instantiate(ExplosionPlayer, transform.position, Quaternion.identity);
                AudioSource.PlayClipAtPoint(playerdestroyed, transform.position);
                GameController obj = GameObject.Find("Game Controller").GetComponent <GameController>();
                obj.GameOver();
            }
        }

        //LevelManager obj = GameObject.Find("LevelManager").GetComponent<LevelManager>();
        //obj.LoadLevel("Win Screen");

        AsteroidCollision Asteroid = collision.gameObject.GetComponent <AsteroidCollision>();

        if (Asteroid)
        {
            Debug.Log("Asteroida/statek");

            Asteroid.ExplosionAsteroid();
            Destroy(gameObject);
            GameController obj = GameObject.Find("Game Controller").GetComponent <GameController>();
            obj.GameOver();
            Debug.Log("Game Over");
        }

        if (collision.gameObject.tag == ("Enemy"))
        {
            Debug.Log("przeciwnik/statek");
            Instantiate(ExplosionPlayer, transform.position, Quaternion.identity);
            Destroy(gameObject);
            GameController obj = GameObject.Find("Game Controller").GetComponent <GameController>();
            obj.GameOver();
            Debug.Log("Game Over");
        }
    }
Пример #3
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        Destroy(gameObject);
        Debug.Log("Player Bullet collided with " + collision.name);

        AsteroidCollision asteroid = collision.GetComponent <AsteroidCollision>();
        EnemyShip         enemy    = collision.GetComponent <EnemyShip>();

        if (asteroid != null)
        {
            Debug.Log("Asteroid Hit by Player Bullet");
            Instantiate(poofParticle, transform.position, Quaternion.identity);
            asteroid.TakeDamage();
        }
        else if (enemy != null)
        {
            Debug.Log("Enemy hit by Player Bullet");
            Instantiate(poofParticle, transform.position, Quaternion.identity);
            enemy.TakeDamage();
        }
    }
Пример #4
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.tag == "Big_Asteroid" || other.gameObject.tag == "Medium_Asteroid" || other.gameObject.tag == "Small_Asteroid")
        {
            GameObject        asteroid = other.gameObject;
            AsteroidCollision script   = asteroid.GetComponent <AsteroidCollision>();
            script.BossAsteroidCollide();
        }
        if (other.gameObject.tag == "Shot" || other.gameObject.tag == "LongShot")
        {
            Destroy(other.gameObject);

            BossHealth script = gameObject.GetComponent <BossHealth> ();

            if (script.currentHealth != 0)
            {
                script.currentHealth -= 1;
                script.HandleHealth();
                if (script.currentHealth <= 0)
                {
                    // reset health
                    script.currentHealth = script.maxHealth;
                    script.HandleHealth();
                    AddToScore();
                    ExplosionSound();
                    RemoveBoss();
                    LeaveExplosion();
                    GameObject waveManager = GameObject.Find("WaveManager");
                    KeepWave   waveScript  = waveManager.GetComponent <KeepWave>();
                    waveScript.SpawnBossWave += 5;
                    waveScript.bossSpawned    = false;
                }
            }
        }
        else if (other.gameObject.tag == "Ship")
        {
            ShipCollide script = other.gameObject.GetComponent <ShipCollide>();
            script.ShipCollision();
        }
    }
Пример #5
0
    private void AddComponents()
    {
        AsteroidUtils.ApplyImpulse(gameObject.GetComponent <Rigidbody2D>());

        /* Collision Notification */
        AsteroidCollision collision = gameObject.AddComponent <AsteroidCollision>();

        collision.Initialize(this);

        /* Reallocator */
        SystemManager.RegisterSystem(new AsteroidReallocator(gameObject.transform, spawner),
                                     new UnityEventBind(GameEvents.GameOver));

        GameObject circleCollider = new GameObject("Circle Collider")
        {
            layer = Layers.SteeringAvoidance
        };
        CircleCollider2D collider = circleCollider.AddComponent <CircleCollider2D>();

        collider.radius = health / HealthSizeProportion * RandomUtils.MaxVertexDisplacement + 0.5f;
        circleCollider.transform.SetParent(gameObject.transform);
        circleCollider.transform.localPosition = Vector3.zero;
    }