Fries
9b0ebcefba
WallManager binds to the BodyEntered signal on the Area2D class and detects if the body that entered the area is the ball class, and if it is, it will reset the ball to its starting position. right now, theres no scoring system. this will be added later.
44 lines
929 B
C#
44 lines
929 B
C#
using Godot;
|
|
|
|
namespace Pong.Scripts.Nodes;
|
|
|
|
public partial class Paddle : RigidBody2D
|
|
{
|
|
[Export] private double _moveSpeed;
|
|
|
|
private double _verticalInput;
|
|
|
|
/// <summary>
|
|
/// property that multiples the moveSpeed by the <see cref="Constants.Meter">Meter</see> 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;
|
|
}
|
|
}
|