Exemple #1
0
    void Update()
    {
        //Health
        if (curHealth <= 0)
        {
            transform.position = new Vector3(-7, -2, -4);
            curHealth          = maxHealth;
            score.MinusScoreDeath();
        }

        // Walk
        if (Input.GetKey("d"))
        {
            transform.position += Vector3.right * speed * Time.deltaTime;
            attackPos           = attackPosR;
        }
        if (Input.GetKey("a"))
        {
            transform.position += Vector3.left * speed * Time.deltaTime;
            attackPos           = attackPosL;
        }
        //Jump
        if (Input.GetKey("w") && Mathf.Abs(_rigidbody.velocity.y) < 0.001f)
        {
            _rigidbody.AddForce(new Vector2(0, JumpForce), ForceMode2D.Impulse);
        }
        //Attack
        if (timeBtwAttack <= 0)
        {
            if (Input.GetKey(KeyCode.Space))
            {
                Collider2D[] enemiesToDamage = Physics2D.OverlapCircleAll(attackPos.position, attackRange, whatIsEnemies);
                for (int i = 0; i < enemiesToDamage.Length; i++)
                {
                    SlimeEnemyMovement Senemy = enemiesToDamage[i].GetComponent <SlimeEnemyMovement>();
                    if (Senemy != null)
                    {
                        Senemy.TakeDamage(damage);
                    }

                    EnemyShooting Eenemy = enemiesToDamage[i].GetComponent <EnemyShooting>();
                    if (Eenemy != null)
                    {
                        Eenemy.TakeDamage(damage);
                    }

                    ShootingBoss Benemy = enemiesToDamage[i].GetComponent <ShootingBoss>();
                    if (Benemy != null)
                    {
                        Benemy.TakeDamage(damage);
                    }
                }
            }
            timeBtwAttack = startTimeBtwAttack;
        }
        else
        {
            timeBtwAttack -= Time.deltaTime;
        }
    }
Exemple #2
0
    void Shoot()
    {
        Debug.Log("Shoot");

        shootTimer -= Time.deltaTime;

        /*   if (enemyUnit != null)
         * {
         *     laserShotLine.SetPosition(0, laserShotLine.transform.position);
         *     laserShotLine.SetPosition(1, enemyUnit.transform.position + Vector3.up);
         *     laserShotLine.enabled = true;
         * }
         */
        if (friendlyQueue.Count > 0)
        {
            var dir = enemyUnit.transform.position - transform.position;
            //    dir.y = 0;
            var rotation = Quaternion.LookRotation(dir);
            transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * 2);
            Rigidbody instantiatedProjectile = Instantiate(projectile,
                                                           bulletSpawnPoint.transform.position,
                                                           transform.rotation) as Rigidbody;


            instantiatedProjectile.velocity = transform.TransformDirection(Vector3.forward * 100);
        }

        /*      if (enemyUnit != null)
         *    {
         *        transform.LookAt(enemyUnit.transform);
         *        GameObject go = (GameObject)Instantiate(bullet, bulletSpawnPoint.position, Quaternion.identity);
         *        go.GetComponent<Rigidbody>().AddForce(bulletSpawnPoint.forward * 5000);
         *    }
         */
        enemyProp.TakeDamage(10);
        if (enemyProp.health < 0)
        {
            enemyProp.destroyed = true;
            friendlyQueue.Dequeue();
            if (friendlyQueue.Count > 0)
            {
                enemyUnit = friendlyQueue.Peek();
                enemyProp = enemyUnit.GetComponent <EnemyShooting>();
            }
        }
    }