45 lines
889 B
C#
45 lines
889 B
C#
|
using Godot;
|
||
|
|
||
|
namespace Pong.Scripts;
|
||
|
|
||
|
public partial class Paddle : RigidBody2D
|
||
|
{
|
||
|
[Export] private double _moveSpeed;
|
||
|
|
||
|
private double _verticalInput;
|
||
|
|
||
|
/// <summary>
|
||
|
/// property that multiples the moveSpeed by the Meter constant.
|
||
|
/// </summary>
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// a method that returns a number that represents input on the vertical axis.
|
||
|
/// </summary>
|
||
|
/// <returns>1 for up, -1 for down, 0 for nothing.</returns>
|
||
|
private static double GetVerticalInput()
|
||
|
{
|
||
|
if (Input.IsActionPressed("paddle_up"))
|
||
|
{
|
||
|
return 1;
|
||
|
}
|
||
|
|
||
|
if (Input.IsActionPressed("paddle_down"))
|
||
|
{
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
}
|