{"id":16745322,"url":"https://github.com/gemisis/breakout-clone","last_synced_at":"2025-03-16T01:41:49.241Z","repository":{"id":25118444,"uuid":"28540049","full_name":"GEMISIS/Breakout-Clone","owner":"GEMISIS","description":"A breakout clone for Twitch!  Written in C++ to show simple game development using object oriented programming using SFML!","archived":false,"fork":false,"pushed_at":"2014-12-27T16:07:00.000Z","size":27416,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-22T14:33:03.130Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GEMISIS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-27T15:39:56.000Z","updated_at":"2014-12-27T16:07:00.000Z","dependencies_parsed_at":"2022-08-23T19:40:29.473Z","dependency_job_id":null,"html_url":"https://github.com/GEMISIS/Breakout-Clone","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GEMISIS%2FBreakout-Clone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GEMISIS%2FBreakout-Clone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GEMISIS%2FBreakout-Clone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GEMISIS%2FBreakout-Clone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GEMISIS","download_url":"https://codeload.github.com/GEMISIS/Breakout-Clone/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243814856,"owners_count":20352037,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T01:45:03.233Z","updated_at":"2025-03-16T01:41:49.220Z","avatar_url":"https://github.com/GEMISIS.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Breakout-Clone\n==============\nA breakout clone for Twitch!  Written in C++ to show simple game development using object oriented programming using SFML!\n\nRequirements\n============\nThis project uses the following IDE's and libraries when compiling:\n\n+ Microsoft Visual Studio 2013\n+ SFML (Simple Fast Media Library)\n+ a header.ttf font to be placed in the \"Breakout Clone\" directory.\n\nMicrosoft Visual Studio 2013 is the main IDE used in order to quickly setup the project.  SFML is used for graphics rendering and keyboard input, and header.ttf is the font file used to render text in the game.  Please make sure that you find a font that you can use, as it will not be distributed within this in order to prevent potential copyright issues.\n\nProject Structure\n==================\nAfter opening the Visual Studio Project, you will see a variety of filters in the \"Solution Explorer\" panel.  Under \"Header Files\" and \"Source Files\" you have the following filters:\n\n+ Core\n+ Entities\n+ States\n\nThese filters contain the following information:\n\n###Core\nContains core classes for the project.  These classes manage essential things related to any game.  The main parts in this breakout clone are entities (the paddle, the ball, walls, etc.), the game state (main menus', the game, etc.), and the scoring system.  The following classes are in available as headers only:\n\n+ entity.h\n+ game_state.h\n\nThese files are completely self contained and do not require a .cpp counterpart.  The last file that can be found is:\n\n+ score_system.h\n\nWhich does have a .cpp counterpart.  This is because of the fact that it is referencing the player's paddle, which also referenced it, and will created a circular reference if not split correctly.\n\n###Entities\nThis filter is used for managing the game's entities.  In this, we have three files that have headers in the \"Header Files\" filter, and .cpp counterparts in the \"Source Files\" filter.  The files are:\n\n+ ball.h/ball.cpp\n+ paddle.h/paddle.cpp\n+ wall.h/wall.cpp\n\nThe ball files manage the ball that moves around the game, and handles its collisions with the paddle and resulting actions.  The paddle file manages the player's movement of the paddle using the keyboard.  The wall files manage the walls and their collisions with the ball and resulting actions.  These again are split into header and .cpp files in order to prevent circular reference issues.\n\n###States\nThis filter is used for managing the game's states.  In this filter, we have two main files in both the \"Header Files\" filter and the \"Source Files\" filter:\n\n+ main_game.h/main_game.cpp\n+ main_menu.h/main_menu.cpp\n\nmain_game handles the game's state, and uses the paddle, ball, and wall entities to allow the player to play the game.  main_menu manages the main menu's state, with things like rendering the game's title, drawing a \"flashy\" background using the ball and wall entities, and handling user input on the menu.\n\nIf you have further questions, you can contact me via my personal website and I will try to get back to you about them.  I hope this small doucmentation is useful to those who read it!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemisis%2Fbreakout-clone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgemisis%2Fbreakout-clone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgemisis%2Fbreakout-clone/lists"}