Skip to content

antonioldev/Pong

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pong

For the Pong project, I recreated the classic arcade game where two players control paddles to hit a ball back and forth. The goal is to score points by getting the ball past the opponent's paddle. After Timber, I moved on to building a more interactive game: Pong. This project was an important milestone because it introduced me to more advanced SFML features and game mechanics like collision detection. I created the classic Pong game where a ball bounces around the screen, and players control paddles to keep the ball in play.

Key takeaways from the Pong project:

  • $${\color{green}\textbf{Object-Oriented Programming (OOP)}}$$: I delved deeper into OOP concepts, creating and managing game objects such as paddles and the ball.
  • $${\color{green}\textbf{Complex User Input}}$$: I learned to handle more complex user inputs, including simultaneous inputs from multiple players.
  • $${\color{green}\textbf{Game Physics}}$$: I implemented game physics for realistic ball movement and collision detection between the ball and paddles.
  • $${\color{green}\textbf{Game States}}$$: I explored the concept of game states, such as starting, playing, and game over states, and how to manage transitions between them.
  • $${\color{green}\textbf{Collision Detection}}$$: One of the major challenges was detecting when the ball hit a paddle or wall. I learned how to calculate the position of game objects and detect intersections.
  • $${\color{green}\textbf{Game Objects and Logic}}$$: This project pushed me to organize the code better by breaking it into logical sections: paddle behavior, ball movement, and game reset conditions.
  • $${\color{green}\textbf{Scorekeeping and HUD}}$$: I added a basic heads-up display (HUD) to keep track of the score, which taught me how to integrate text rendering in SFML and manage game states like win conditions. Through Pong, I got a deeper understanding of how game physics work. Handling collisions, movement, and game boundaries gave me more confidence in managing a dynamic game world.

Game Scenes

Pong screenshot

SFML Library

Throughout these projects, I used the SFML (Simple and Fast Multimedia Library), which is a cross-platform library designed to provide a simple interface to various multimedia components in C++. SFML is particularly useful for game development due to its simplicity and ease of use.

Key Features:

  • $${\color{green}\textbf{Graphics}}$$: Rendering shapes, sprites, and text. SFML makes it easy to draw 2D graphics and handle basic animations.
  • $${\color{green}\textbf{Windowing}}$$: Creating and managing game windows. SFML provides a straightforward way to create windows and handle events such as resizing and closing.
  • $${\color{green}\textbf{Audio}}$$: Playing sound effects and music. SFML supports various audio formats and allows for easy playback and control of sounds.
  • $${\color{green}\textbf{Input}}$$: Handling keyboard, mouse, and joystick input. SFML simplifies the process of capturing and responding to user inputs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages