public void PerformJump(Vector2 playerPosition) { if (IsPlayerOnGround(playerPosition)) { verticalVelocity = PhysicsValues.GetJumpAcceleration(); } }
private bool IsPlayerOnGround(Vector2 playerPosition) { Vector2 leftFoot = PhysicsValues.GetLeftFootPosition(playerPosition); Vector2 rightFoot = PhysicsValues.GetRightFootPosition(playerPosition); return(LevelAnalysis.IsVectorOnGround(level, leftFoot) || LevelAnalysis.IsVectorOnGround(level, rightFoot)); }
public Vector2 DoPlayerPhysics(Vector2 playerPosition) { if (!IsPlayerOnGround(playerPosition)) { verticalVelocity -= PhysicsValues.GetGravityAccelerationPerFrame(); } return(playerPosition + new Vector2(PhysicsValues.GetHorizontalPlayerVelocityPerFrame(), verticalVelocity)); }