namespace Pong.Scripts.Objects; public partial class Paddle : RigidBody2D { [Export] private double _moveSpeed; private double _verticalInput; private readonly StringName _paddleUp = "paddle_up"; private readonly StringName _paddleDown = "paddle_down"; /// /// property that multiples the moveSpeed by the Meter constant. /// private double MoveSpeed => _moveSpeed * Constants.Meter; public override void _Process(double delta) { _verticalInput = GetVerticalInput(); } public override void _PhysicsProcess(double delta) { LinearVelocity = Vector2.Up * MoveSpeed * _verticalInput; } /// /// a method that returns a number that represents input on the vertical axis. /// /// 1 for up, -1 for down, 0 for nothing. private double GetVerticalInput() { if (Input.IsActionPressed(_paddleUp)) { return 1; } if (Input.IsActionPressed(_paddleDown)) { return -1; } return 0; } }