Exemple #1
0
    void Update()
    {
        if (!tankControl.HasShot && tankControl.IsMoving) // No shot and moving - wait 'till stop
        {
            return;
        }

        GetEnemy();
        if (currentEnemyType == EnemyType.None)
        {
            this.enabled = false;
            return;
        }

        Vector2 enemyPosition         = currentEnemy.transform.position;
        Vector2 enemyRelativePosition = enemyPosition - (Vector2)transform.position;
        float   newOrientation        = tankControl.GetOrientation(ref enemyRelativePosition);

        newOrientation += Random.Range(-shootingInaccuracy, shootingInaccuracy);

        enemyPosition += new Vector2(
            Random.Range(-movenmentInaccuracy, movenmentInaccuracy),
            Random.Range(-movenmentInaccuracy, movenmentInaccuracy));

        if (tankControl.HasShot)
        {
            tankControl.TurnCannonTo(ref newOrientation);
            tankControl.TryFire();
        }
        if (!tankControl.IsMoving)
        {
            tankControl.TryMoveAndTurnTo(ref enemyPosition);
        }
    }
Exemple #2
0
    // Update is called once per frame
    void Update()
    {
        Vector2 mousePosition         = (Vector2)Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector2 relativeMousePosition = mousePosition - (Vector2)transform.position;
        float   newOrientation        = tankControl.GetOrientation(ref relativeMousePosition);

        tankControl.TurnCannonTo(ref newOrientation);

        if (Input.GetMouseButtonDown(0))
        {
            if (tankControl.TryFire())
            {
                Assets.Scripts.Stats.getInstance().ShotFired();
            }
            tankControl.TryMoveAndTurnTo(ref mousePosition);
        }

        if (Input.GetMouseButtonDown(1) && Input.GetKey(KeyCode.LeftControl))
        {
            tankControl.BlowUp();
        }
    }