diff --git a/DSFML/samples/dsfml/pong/pong.d b/DSFML/samples/dsfml/pong/pong.d index 603a9011..ee92d9a3 100644 --- a/DSFML/samples/dsfml/pong/pong.d +++ b/DSFML/samples/dsfml/pong/pong.d @@ -7,12 +7,12 @@ import dsfml.graphics.all; version (Tango) { - import tango.io.Stdout; - import tango.math.Math; + import tango.io.Stdout; + import tango.math.Math; } else { - import std.math; + import std.math; } void main() @@ -20,114 +20,114 @@ void main() // Defines PI const float PI = 3.14159f; - // Create the window of the application - RenderWindow app = new RenderWindow(VideoMode(800, 600, 32), "SFML Pong"); + // Create the window of the application + RenderWindow app = new RenderWindow(VideoMode(800, 600, 32), "SFML Pong"); - app.useVerticalSync(true); - - Input i = app.getInput(); - - // Load the sounds used in the game - Sound BallSound = new Sound(new SoundBuffer("Data/ball.wav")); + app.useVerticalSync(true); + + Input i = app.getInput(); + + // Load the sounds used in the game + Sound BallSound = new Sound(new SoundBuffer("Data/ball.wav")); - // Load the images used in the game - Image PaddleImage = new Image("Data/paddle.tga"); - Image BallImage = new Image("Data/ball.tga"); + // Load the images used in the game + Image PaddleImage = new Image("Data/paddle.tga"); + Image BallImage = new Image("Data/ball.tga"); // Initialize the end text - String End = new String(""c); + Text End = new Text(""c); Font font = new Font("Data/cheeseburger.ttf"); - End.setFont(font); - End.setSize(60.f); - End.move(150.f, 200.f); - End.setColor(Color(50, 50, 250)); + End.setFont(font); + End.setCharacterSize(60); + End.move(150.f, 200.f); + End.setColor(Color(50, 50, 250)); - // Create the sprites of the background, the paddles and the ball - Sprite LeftPaddle = new Sprite(PaddleImage); - Sprite RightPaddle = new Sprite(PaddleImage); - Sprite Ball = new Sprite(BallImage); + // Create the sprites of the background, the paddles and the ball + Sprite LeftPaddle = new Sprite(PaddleImage); + Sprite RightPaddle = new Sprite(PaddleImage); + Sprite Ball = new Sprite(BallImage); - LeftPaddle.move(10, (app.getView().getRect().getHeight() - LeftPaddle.getSize().y) / 2); - RightPaddle.move(app.getView().getRect().getWidth() - RightPaddle.getSize().x - 10, (app.getView().getRect().getHeight() - RightPaddle.getSize().y) / 2); - Ball.move((app.getView().getRect().getWidth() - Ball.getSize().x) / 2, (app.getView().getRect().getHeight() - Ball.getSize().y) / 2); + LeftPaddle.move(10, (app.getView().getHeight() - LeftPaddle.getSize().y) / 2); + RightPaddle.move(app.getView().getWidth() - RightPaddle.getSize().x - 10, (app.getView().getHeight() - RightPaddle.getSize().y) / 2); + Ball.move((app.getView().getWidth() - Ball.getSize().x) / 2, (app.getView().getHeight() - Ball.getSize().y) / 2); - // Define the paddles properties - Clock AITimer = new Clock(); - const float AITime = 0.1f; - float LeftPaddleSpeed = 400.f; - float RightPaddleSpeed = 400.f; + // Define the paddles properties + Clock AITimer = new Clock(); + const float AITime = 0.1f; + float LeftPaddleSpeed = 400.f; + float RightPaddleSpeed = 400.f; - // Define the ball properties - float BallSpeed = 400.f; - float BallAngle = 0.f; - do - { - // Make sure the ball initial angle is not too much vertical - BallAngle = Randomizer.random(0.f, 2 * PI); - } while (abs(cos(BallAngle)) < 0.7f); + // Define the ball properties + float BallSpeed = 400.f; + float BallAngle = 0.f; + do + { + // Make sure the ball initial angle is not too much vertical + BallAngle = Randomizer.random(0.f, 2 * PI); + } while (abs(cos(BallAngle)) < 0.7f); bool IsPlaying = true; Event evt; - while (app.isOpened()) - { - app.clear(Color(255, 255, 255, 255)); - // Handle events - - while (app.getEvent(evt)) - { - // Window closed or escape key pressed : exit - if ((evt.Type == Event.EventType.CLOSED) || - ((evt.Type == Event.EventType.KEYPRESSED) && (evt.Key.Code == KeyCode.ESCAPE))) - { - app.close(); - break; - } - } + while (app.isOpened()) + { + app.clear(Color(255, 255, 255, 255)); + // Handle events + + while (app.getEvent(evt)) + { + // Window closed or escape key pressed : exit + if ((evt.Type == EventType.Closed) || + ((evt.Type == EventType.KeyPressed) && (evt.Key.Code == KeyCode.Escape))) + { + app.close(); + break; + } + } - if (IsPlaying) + if (IsPlaying) { // Move the player's paddle - if (i.isKeyDown(KeyCode.UP) && (LeftPaddle.getPosition().y > 5.f)) + if (i.isKeyDown(KeyCode.Up) && (LeftPaddle.getPosition().y > 5.f)) LeftPaddle.move(0.f, -LeftPaddleSpeed * app.getFrameTime()); - if (i.isKeyDown(KeyCode.DOWN) && (LeftPaddle.getPosition().y < app.getView().getRect().getHeight() - LeftPaddle.getSize().y - 5.f)) + if (i.isKeyDown(KeyCode.Down) && (LeftPaddle.getPosition().y < app.getView().getHeight() - LeftPaddle.getSize().y - 5.f)) LeftPaddle.move(0.f, LeftPaddleSpeed * app.getFrameTime()); - + // Move the computer's paddle - if (((RightPaddleSpeed < 0.f) && (RightPaddle.getPosition().y > 5.f)) || - ((RightPaddleSpeed > 0.f) && (RightPaddle.getPosition().y < app.getView().getRect().getHeight() - RightPaddle.getSize().y - 5.f))) - { - RightPaddle.move(0.f, RightPaddleSpeed * app.getFrameTime()); - } + if (((RightPaddleSpeed < 0.f) && (RightPaddle.getPosition().y > 5.f)) || + ((RightPaddleSpeed > 0.f) && (RightPaddle.getPosition().y < app.getView().getHeight() - RightPaddle.getSize().y - 5.f))) + { + RightPaddle.move(0.f, RightPaddleSpeed * app.getFrameTime()); + } - // Update the computer's paddle direction according to the ball position - if (AITimer.getElapsedTime() > AITime) - { - AITimer.reset(); - if ((RightPaddleSpeed < 0) && (Ball.getPosition().y + Ball.getSize().y > RightPaddle.getPosition().y + RightPaddle.getSize().y)) - RightPaddleSpeed = -RightPaddleSpeed; - if ((RightPaddleSpeed > 0) && (Ball.getPosition().y < RightPaddle.getPosition().y)) - RightPaddleSpeed = -RightPaddleSpeed; - } + // Update the computer's paddle direction according to the ball position + if (AITimer.getElapsedTime() > AITime) + { + AITimer.reset(); + if ((RightPaddleSpeed < 0) && (Ball.getPosition().y + Ball.getSize().y > RightPaddle.getPosition().y + RightPaddle.getSize().y)) + RightPaddleSpeed = -RightPaddleSpeed; + if ((RightPaddleSpeed > 0) && (Ball.getPosition().y < RightPaddle.getPosition().y)) + RightPaddleSpeed = -RightPaddleSpeed; + } // Move the ball float Factor = BallSpeed * app.getFrameTime(); - Ball.move(cos(BallAngle) * Factor, sin(BallAngle) * Factor); + Ball.move(cos(BallAngle) * Factor, sin(BallAngle) * Factor); // Check collisions between the ball and the screen if (Ball.getPosition().x < 0.f) { IsPlaying = false; - End.setText("You lost !\n(press escape to exit)"c); + End.setString("You lost !\n(press escape to exit)"c); } - if (Ball.getPosition().x + Ball.getSize().x > app.getView().getRect().getWidth()) + if (Ball.getPosition().x + Ball.getSize().x > app.getView().getWidth()) { IsPlaying = false; - End.setText("You won !\n(press escape to exit)"c); + End.setString("You won !\n(press escape to exit)"c); } if (Ball.getPosition().y < 0.f) @@ -137,11 +137,11 @@ void main() Ball.setY(0.1f); } - if (Ball.getPosition().y + Ball.getSize().y > app.getView().getRect().getHeight()) + if (Ball.getPosition().y + Ball.getSize().y > app.getView().getHeight()) { BallSound.play(); BallAngle = -BallAngle; - Ball.setY(app.getView().getRect().getHeight() - Ball.getSize().y - 0.1f); + Ball.setY(app.getView().getHeight() - Ball.getSize().y - 0.1f); } // Check the collisions between the ball and the paddles // Left Paddle @@ -167,17 +167,17 @@ void main() } } - // Draw the background, paddles and ball sprites + // Draw the background, paddles and ball sprites - app.draw(LeftPaddle); - app.draw(RightPaddle); - app.draw(Ball); + app.draw(LeftPaddle); + app.draw(RightPaddle); + app.draw(Ball); - // If the game is over, display the end message - if (!IsPlaying) - app.draw(End); + // If the game is over, display the end message + if (!IsPlaying) + app.draw(End); - // Display things on screen - app.display(); - } + // Display things on screen + app.display(); + } }