Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages