Giter Site home page Giter Site logo

pong's Introduction

Section: EA1
David Skrundz
Ryan Huard


BattlePong is a player vs player combination of the games Pong and Breakout.
All files required for running this game off of one arduino are included and 
they can be uploaded to the arduino for playing with the help of the university 
of Alberta arduino toolchain. Also enclosed are some Arduino wiring diagrams to 
ensure proper pin assignment on your Arduino.


Gameplay:

The goal of the game is the same as with the popular classic game Pong.

Each player has a paddle on their screen which is controlled with a joystick.
They can move their paddle left or right but not up and down.

A ball spawns initially on player one's side of the play area and is bounced 
between the player's paddles and the side walls of the play area. If the ball 
reaches the back of the player 1's (2's) side of the play area then player 2 (1) 
scores. Each time that a player scores the ball will spawn again on the opposing
player's side of the play area. The first player to score 5 times wins.

Also included in this game are collideable and breakable bricks similar to the 
game Breakout. When the ball hits a brick it will collide and rebound based on 
the direction of collision and eliminate the brick from play. These bricks can 
be placed on the field through the notGame.h file included. The base game only 
includes a single line of bricks along the far edge of Player 1's screen.


Code and Known Issues:

While the current state of the game is playable and complete there are certain 
issues in the code and some unused code.

Inside of many files there is commented code which in the current state serves 
no purpose. This code was used for a previous version of the game using serial 
communication and is left as legacy code for if serial communication is fixed 
in a later version. Also included is notSerial.h which contains all of the 
serial communication methods previously used.

There are some known issues with regards to destructable block placement and 
performance.

1. Blocks can currently only be properly placed on Player 1's screen owing to 
   math issues from mapping Player 2's screen as on the negative y-axis.
2. On occasion the ball will collide with 2 blocks at once if it collides where 
   two blocks meet. In this case only 1 block will be properly removed from play.
   One block will be drawn over and have it's collision box removed. The other 
   block will have it's collision box removed but will remain drawn on the screen.

pong's People

Contributors

davidskrundz avatar loonman avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.