示例#1
0
 public void Shoot()
 {
     if (Time.time > nextShotTime)
     {
         nextShotTime = Time.time + msBetweenShots / 1000;
         Proyectile newBala = Instantiate(bala, salidaBala.position, salidaBala.rotation);
         newBala.SetSpeed(balaSpeed);
     }
 }
示例#2
0
    void ShootProyectile(bool fromRightCannon, Quaternion rotation)
    {
        Vector2 position = fromRightCannon ? rightCannon.position : leftCannon.position;

        Proyectile newProyectile = Instantiate(proyectilePrefab, position, rotation, proyectileContainer).GetComponent <Proyectile>();

        newProyectile.InitializeAsPlayerProyectile(powerPlusOn, model.damage, model.movementSpeed);
        newProyectile.SetScreenLimits(leftScreenLimit, rightScreenLimit, upperScreenLimit, lowerScreenLimit);
    }
示例#3
0
    // Start is called before the first frame update
    private void Start()
    {
        outline          = GetComponent <Outline>();
        proyectile       = proyectileTemplate.GetComponent <Proyectile>();
        proyectile.speed = bulletSpeed;
        turretRadius.onTurretDetectEnemy = SetTarget;
        turretRadius.onTurretLostEnemy   = ChangeTarget;
        rig = GetComponent <Rigidbody>();

        generateTimer = 1;
    }
    void OnTriggerEnter2D(Collider2D collider)
    {
        Proyectile proyectile = collider.GetComponent <Proyectile>();

        if (proyectile)
        {
            health -= proyectile.damage;
            proyectile.Hit();
            if (health <= 0)
            {
                ScoreKeeper scoreText = GameObject.Find("ScoreText").GetComponent <ScoreKeeper>();
                //scoreText.ResetScore();
                Destroy(gameObject);
                GameObject.Find("LevelManager").GetComponent <GameManager>().LoadLevel("Win Screen");
            }
        }
    }
 private void Shoot()
 {
     if (Time.time > nextShot && gameController.getState() == GameController.STATES.PLAY)
     {
         if (enemies[0] != null)
         {
             GameObject shot = Instantiate(proyectile, this.transform.position, Quaternion.identity) as GameObject;
             Proyectile pb   = shot.GetComponent <Cannon>();
             pb.setTarget(enemies[0].gameObject.transform);
             nextShot = Time.time + fireRate;
         }
         else
         {
             enemies.Remove(enemies[0]);
         }
     }
 }
    void OnTriggerEnter2D(Collider2D collider)
    {
        Proyectile proyectile = collider.GetComponent <Proyectile>();

        if (proyectile)
        {
            proyectile.Hit();
            maxNumberOfHits = maxNumberOfHits - proyectile.damage;
            if (maxNumberOfHits <= 0)
            {
                AudioSource.PlayClipAtPoint(deathSound, transform.position);
                ScoreKeeper scoreText = GameObject.Find("ScoreText").GetComponent <ScoreKeeper>();
                scoreText.Score(pointsPerKill);
                SimplePool.Despawn(gameObject);
            }
        }
    }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        //Creamos un a variable proyectile, para acceder al script proyectile y le damos el mismo behaviur que en PlayerController
        Proyectile missile = collision.gameObject.GetComponent <Proyectile>();

        if (missile)
        {
            health -= missile.GetDamage();
            missile.Hit();

            if (health <= 0)
            {
                EnemyDown();
            }

            Debug.Log("Enemy hit!");
        }
    }
示例#8
0
 private void ShootTarget()
 {
     if (!isPreview)
     {
         if (currentTarget)
         {
             if (currentTarget.gameObject.tag != "dead")
             {
                 GameObject newProyectile = Instantiate(proyectileTemplate);
                 Proyectile proy          = newProyectile.GetComponent <Proyectile>();
                 proy.startPosition = transform.position + transform.up * 15;
                 proy.target        = currentTarget;
                 newProyectile.SetActive(true);
                 canShoot = false;
                 AkSoundEngine.PostEvent("torre_lanza", shootSound);
             }
         }
     }
 }
    /// <summary>
    /// Cuando colisiona un misil lanzado con un objeto, tanto enemigo como aliado
    /// </summary>
    /// <param name="collision"></param>
    private void OnTriggerEnter2D(Collider2D collision)
    {
        //Llamamos al script Proyectile en el cual hemos creado el proyectil, dandole un daño editable al chocar con un objeto
        //y se lo restará a la vida.
        Proyectile missile = collision.gameObject.GetComponent <Proyectile>();

        //Si el misil choca con un el jugador o con un enemigo, restará el valor del daño a la vida
        if (missile)
        {
            //Restamos a la variable health, el valor retornado de la función GetDamage() creada en el script Proyectile
            //Esta función retorna el valor del daño que causa un misil.
            //Restamos ese valor a heath
            health -= missile.GetDamage();
            missile.Hit();

            //Llamamos a la función Die() si la vida es igaul o menor a 0
            if (health <= 0)
            {
                Die();
            }

            Debug.Log("Enemy hit!");
        }
    }
示例#10
0
文件: Fighter.cs 项目: Prion6/SlimeGo
 public void Init(Proyectile basicAttack, Proyectile specialAttack, GameObject model)
 {
     this.basicAttack   = basicAttack;
     this.specialAttack = specialAttack;
     var m = Instantiate(model, this.model);
 }