Exemplo n.º 1
0
    public override void _Ready()
    {
        CrashAudio          = GetNode <AudioStreamPlayer2D>("CrashAudio");
        HookLaunchAudio     = GetNode <AudioStreamPlayer2D>("HookLaunchAudio");
        PickupCreatureAudio = GetNode <AudioStreamPlayer2D>("PickupCreatureAudio");

        CreaturesCaught         = new Godot.Collections.Dictionary <string, int>();
        CreaturesCost           = new Godot.Collections.Dictionary <string, int>();
        Hookable                = true;
        Hook                    = GetNode <Node2D>("Hook");
        HookChain               = GetNode <ColorRect>("HookChain");
        OriginalHookChainHeight = HookChain.GetRect().Size.y;

        HookHitBoxCollision          = GetNode <CollisionShape2D>("Hook/Claw/Area2D/CollisionShape2D");
        HookHitBoxCollision.Disabled = true;

        HookLaunch  = GetNode <Tween>("HookLaunch");
        HookRetract = GetNode <Tween>("HookRetract");

        HookChainLaunch  = GetNode <Tween>("HookChainLaunch");
        HookChainRetract = GetNode <Tween>("HookChainRetract");

        OriginalHookPosition = Hook.Position;
        CrashParticles       = GetNode <Particles2D>("CrashParticles");
        Bubbler = GetNode <Particles2D>("Bubbler");
    }
Exemplo n.º 2
0
 public override void _Input(InputEvent e)
 {
     if (e is InputEventMouseButton m)
     {
         if (Input.IsMouseButtonPressed((int)ButtonList.Left) && Rect.GetRect().HasPoint(m.Position))
         {
             Clicked?.Invoke(Position);
         }
     }
 }
Exemplo n.º 3
0
//  // Called every frame. 'delta' is the elapsed time since the previous frame.
    public override void _Process(float delta)
    {
        Vector2 playerVec = new Vector2();

        if (!GameIsStopped)
        {
            if (Input.IsActionPressed("ui_left"))
            {
                playerVec = new Vector2(-1, 0);
            }

            if (Input.IsActionPressed("ui_right"))
            {
                playerVec = new Vector2(1, 0);
            }

            if (!OnSurface)
            {
                if ((Input.IsActionPressed("ui_accept") || Input.IsActionPressed("ui_select")) && Hookable)
                {
                    Hookable = false;
                    GD.Print("activated");

                    int hookLength = 100;
                    HookChainLaunch.InterpolateProperty(HookChain, "rect_size:y", HookChain.GetRect().Size.y, HookChain.GetRect().Size.y + hookLength, 1, Tween.TransitionType.Quad, Tween.EaseType.InOut);
                    HookChainLaunch.Start();

                    HookLaunch.InterpolateProperty(Hook, "position", OriginalHookPosition, new Vector2(OriginalHookPosition.x, OriginalHookPosition.y + hookLength), 1, Tween.TransitionType.Quad, Tween.EaseType.InOut);
                    HookLaunch.Start();

                    HookLaunchAudio.Play();
                    HookHitBoxCollision.Disabled = false;
                }
            }
            MoveAndCollide(playerVec * delta * MOVE_SPEED);
        }
    }