{"id":18271333,"url":"https://github.com/pjvds/iPong","last_synced_at":"2025-04-05T01:31:24.964Z","repository":{"id":65896509,"uuid":"1508721","full_name":"pjvds/iPong","owner":"pjvds","description":"Simple pong game running on IOS using ObjC and Cocos2D Box2D","archived":false,"fork":false,"pushed_at":"2011-04-05T20:18:06.000Z","size":895,"stargazers_count":95,"open_issues_count":0,"forks_count":50,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-03-28T22:07:38.707Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pjvds.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.box2d","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-03-21T21:43:23.000Z","updated_at":"2024-10-22T16:02:34.000Z","dependencies_parsed_at":"2023-02-15T03:31:58.898Z","dependency_job_id":null,"html_url":"https://github.com/pjvds/iPong","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/pjvds%2FiPong","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjvds%2FiPong/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjvds%2FiPong/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pjvds%2FiPong/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pjvds","download_url":"https://codeload.github.com/pjvds/iPong/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247276043,"owners_count":20912286,"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-11-05T11:39:14.308Z","updated_at":"2025-04-05T01:31:19.948Z","avatar_url":"https://github.com/pjvds.png","language":"Objective-C","funding_links":[],"categories":["etc"],"sub_categories":[],"readme":"# iPong\nA simple pong implementation that runs on IOS.\n\n# Tech stuff\nThe following stuff is used to create this Pong implementation for IOS:\n\n* XCode 4.x\n* Objective C\n* Cocos2D\n* Box2D\n* Freetime in an hotel in Rotterdam\n\n# Project structure\nAll real logic and non scaffolding code can be found in three classes.\n\n## iPongLayer\nMain entry point. Bootstraps all the game objects and is the layer where the game is drawn on. It also holds and manages the game score.\n\n## Paddle\nThe paddle game object. Contains logic to move itself on touch.\n\n## Ball\nThe ball game object. It contains logic to respawn.\n\n# What you need to know about Box2D\nBox2D works with several fundamental objects. We briefly define these objects here and more details are given later in this document.\n\n## world\nA physics world is a collection of bodies, fixtures, and constraints that interact together. Box2D supports the creation of multiple worlds, but this is usually not necessary or desirable.\n\n## shape\nA 2D geometrical object, such as a circle or polygon.\n\n## rigid body\nA chunk of matter that is so strong that the distance between any two bits of matter on the chunk is completely constant. They are hard like a diamond. In the following discussion we use body interchangeably with rigid body.\n\n## fixture\nA fixture binds a shape to a body and adds material properties such as density, friction, and restitution.\n\n## constraint\nA constraint is a physical connection that removes degrees of freedom from bodies. In 2D a body has 3 degrees of freedom (two translation coordinates and one rotation coordinate). If we take a body and pin it to the wall (like a pendulum) we have constrained the body to the wall. At this point the body can only rotate about the pin, so the constraint has removed 2 degrees of freedom.\n\n## contact constraint\nA special constraint designed to prevent penetration of rigid bodies and to simulate friction and restitution. You do not create contact constraints; they are created automatically by Box2D.\n\n## joint\nThis is a constraint used to hold two or more bodies together. Box2D supports several joint types: revolute, prismatic, distance, and more. Some joints may have limits and motors.\n\n## joint limit\nA joint limit restricts the range of motion of a joint. For example, the human elbow only allows a certain range of angles.\n\n## joint motor\nA joint motor drives the motion of the connected bodies according to the joint's degrees of freedom. For example, you can use a motor to drive the rotation of an elbow.\n\n# Code Fest\nI created this for the Devnology [Code Fest][1]. using XCode, ObjC and the Cocos2D Box2d framework.\n\n[1]: http://devnology.nl/en/meetings/details/33-the-legacy-code-fest","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjvds%2FiPong","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpjvds%2FiPong","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjvds%2FiPong/lists"}