add a random starting x direction to the ball
this means the ball can either go left or righ randomly instead of always going left.
This commit is contained in:
parent
133e0fb734
commit
e50f0aefb1
1 changed files with 18 additions and 1 deletions
|
@ -18,8 +18,9 @@ public partial class Ball : CharacterBody2D
|
||||||
{
|
{
|
||||||
// this should dispose when this method goes out of scope (this means after the velocity variable is assigned)
|
// this should dispose when this method goes out of scope (this means after the velocity variable is assigned)
|
||||||
using var rng = new RandomNumberGenerator();
|
using var rng = new RandomNumberGenerator();
|
||||||
|
rng.Randomize();
|
||||||
// set the velocity currently to the left of the screen with a random y angle.
|
// set the velocity currently to the left of the screen with a random y angle.
|
||||||
_velocity = Vector2.Left * BallSpeed + new Vector2(0, rng.RandfRange(-_maxRandomAngle, _maxRandomAngle) * BallSpeed);
|
_velocity = GetRandomStartingDirection() * BallSpeed + new Vector2(0, rng.RandfRange(-_maxRandomAngle, _maxRandomAngle) * BallSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _PhysicsProcess(double delta)
|
public override void _PhysicsProcess(double delta)
|
||||||
|
@ -38,4 +39,20 @@ public partial class Ball : CharacterBody2D
|
||||||
if (collision == null) return;
|
if (collision == null) return;
|
||||||
_velocity = _velocity.Bounce(collision.GetNormal());
|
_velocity = _velocity.Bounce(collision.GetNormal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// this method generates a random number between 0 and 1 and
|
||||||
|
/// either returns Vector2.Left or Vector2.Right based on that number.
|
||||||
|
/// </summary>
|
||||||
|
private Vector2 GetRandomStartingDirection() {
|
||||||
|
using var rng = new RandomNumberGenerator();
|
||||||
|
rng.Randomize();
|
||||||
|
var range = rng.RandiRange(0,1);
|
||||||
|
|
||||||
|
if (range == 0) {
|
||||||
|
return Vector2.Left;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Vector2.Right;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue