コード例 #1
0
ファイル: GirlController.cs プロジェクト: makhorin/bsbulls
    void Update()
    {
        if (GameStats.GameOver || _laserUsed || !InputHelper.Down())
        {
            return;
        }

        try
        {
            if (Laser.transform.position.x > TargetBull.transform.position.x)
            {
                return;
            }
        }
        catch (Exception)
        {
            return;
        }

        var eyes       = Laser.transform.position;
        var laserWidth = Laser.sprite.texture.width / Laser.sprite.pixelsPerUnit;

        var distance = Vector2.Distance(eyes, TargetBull.transform.position);
        var center   = Vector2.MoveTowards(eyes, TargetBull.transform.position, distance / 2f);
        var scale    = distance / laserWidth;

        Laser.transform.position   = center;
        Laser.transform.localScale = new Vector3(scale, Laser.transform.localScale.y, 1f);

        var vectorToTarget = TargetBull.transform.position - (Vector3)center;
        var angle          = Mathf.Atan2(vectorToTarget.y, vectorToTarget.x) * Mathf.Rad2Deg;

        Laser.transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
        Laser.enabled            = true;
        Destroy(Laser, 0.1f);
        LaserSound.Play();
        TargetBull.LaserHit();
        _laserUsed = true;
    }
コード例 #2
0
ファイル: GameStarter.cs プロジェクト: makhorin/bsbulls
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Application.Quit();
            return;
        }

        if (Input.GetKeyDown(KeyCode.F12))
        {
            if (!_isFullScreen)
            {
                Screen.SetResolution(1920, 1080, true);
            }
            else
            {
                Screen.SetResolution(1280, 720, false);
            }
            _isFullScreen = !_isFullScreen;
        }

        if (GameStats.CanStartGame && InputHelper.Down())
        {
            HandleStart();
        }

        else if (GameStats.GameOver)
        {
            HandleGameOver();
        }

        else if (_strip)
        {
            _strip = false;
            StartCoroutine("StripCoroutine");
        }
    }