示例#1
0
    float dangerZonePositionModifier = 1.255f; // hardcoded number, how much the x position of the zone is divded

    public override void _Ready()
    {
        if (laneImg == null)
        {
            GD.PushError("You must set laneImg for Lane!");
            GD.PrintStack();
            GetTree().Quit(1);
        }

        TextureButton button = GetNode <TextureButton>("Button");

        spawnPoint = button.RectGlobalPosition + new Vector2(70, 30);

        GetNode <Sprite>("Sprite").Texture = laneImg;
        Events.roundWon         += OnRoundWon;
        Events.dinoDiedInstance += OnDinoDiedInstance;

        // we're an empty lane, don't allow deploys
        if (Curve.GetPointCount() == 0)
        {
            button.Hide();
            return;
        }

        dangerZoneCollision = GetNode("DangerZone").GetNode <CollisionShape2D>("DangerZoneCollision");
        var dangerBox = new RectangleShape2D(); // make a hitbox for the danger zone

        dangerZoneCollision.Shape = dangerBox;

        // divide by 1/2 since that's how extents work
        // divide x by 1/3 since we want it to be that big
        dangerBox.Extents            = new Vector2(laneImg.GetSize().x / 2 / 3, laneImg.GetSize().y / 2 * GetNode <Sprite>("Sprite").Scale.y);
        dangerZoneCollision.Position = new Vector2(this.GlobalPosition.x / dangerZonePositionModifier, 0);
    }
示例#2
0
    private void PauseButtonPressed()
    {
        GUICommon.Instance.PlayButtonPressSound();

        paused = !paused;
        if (paused)
        {
            pauseButton.Hide();
            resumeButton.Show();
            pauseButton.Pressed = false;

            // Pause the game
            GetTree().Paused = true;
        }
        else
        {
            pauseButton.Show();
            resumeButton.Hide();
            resumeButton.Pressed = false;

            // Unpause the game
            GetTree().Paused = false;
        }
    }