asdf

Dependencies:   NokiaLCD XMIT_IR mbed

Fork of 4180_mP_WirelessPong_revC by Curtis Mulady

Committer:
mesdoram
Date:
Tue Oct 09 23:28:34 2012 +0000
Revision:
20:a74fe4d43ec0
asdf

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mesdoram 20:a74fe4d43ec0 1 #include "pong.h"
mesdoram 20:a74fe4d43ec0 2 using namespace std;
mesdoram 20:a74fe4d43ec0 3
mesdoram 20:a74fe4d43ec0 4 pong::pong()
mesdoram 20:a74fe4d43ec0 5 {
mesdoram 20:a74fe4d43ec0 6 lcd = new NokiaLCD(p5, p7, p8, p9, NokiaLCD::LCD6610);
mesdoram 20:a74fe4d43ec0 7 //for all dimensions: x, y, width, height
mesdoram 20:a74fe4d43ec0 8 ball[0] = 65; ball[1] = 65; ball[2] = 3; ball[3] = 3;
mesdoram 20:a74fe4d43ec0 9 ballDir[0] = -1; ballDir[1] = 1;
mesdoram 20:a74fe4d43ec0 10 rightPaddle[0] = 10; rightPaddle[1] = 55; rightPaddle[2] = 5; rightPaddle[3] = 20;
mesdoram 20:a74fe4d43ec0 11 leftPaddle[0] = 115; leftPaddle[1] = 55; leftPaddle[2] = 5; leftPaddle[3] = 20;
mesdoram 20:a74fe4d43ec0 12 score[0] = 0; score[1] = 0;
mesdoram 20:a74fe4d43ec0 13
mesdoram 20:a74fe4d43ec0 14 }
mesdoram 20:a74fe4d43ec0 15
mesdoram 20:a74fe4d43ec0 16 void pong::drawObjects()
mesdoram 20:a74fe4d43ec0 17 {
mesdoram 20:a74fe4d43ec0 18 lcd->background(0x000000);
mesdoram 20:a74fe4d43ec0 19 lcd->fill(leftPaddle[0], leftPaddle[1], leftPaddle[2], leftPaddle[3], 0xFFFFFF);
mesdoram 20:a74fe4d43ec0 20 lcd->fill(rightPaddle[0], rightPaddle[1], rightPaddle[2], rightPaddle[3], 0xFFFFFF);
mesdoram 20:a74fe4d43ec0 21 lcd->fill(ball[0], ball[1], ball[2], ball[3], 0xFFFFFF);
mesdoram 20:a74fe4d43ec0 22 }
mesdoram 20:a74fe4d43ec0 23
mesdoram 20:a74fe4d43ec0 24 void pong::update(double left, double right)
mesdoram 20:a74fe4d43ec0 25 {
mesdoram 20:a74fe4d43ec0 26 leftPaddle[1] = left * 110;
mesdoram 20:a74fe4d43ec0 27 rightPaddle[1] = right * 110;
mesdoram 20:a74fe4d43ec0 28
mesdoram 20:a74fe4d43ec0 29 //right paddle collision check -- reverse if true
mesdoram 20:a74fe4d43ec0 30 if ( (ball[0] + ball[2] -1 + ballDir[0]) == leftPaddle[0] ) {
mesdoram 20:a74fe4d43ec0 31 if ( ( (ball[1] + ball[3]-1 + ballDir[1]) >= leftPaddle[1] ) && ( (ball[1] + ballDir[1]) <= (leftPaddle[1] + leftPaddle[3]-1) ) )
mesdoram 20:a74fe4d43ec0 32 ballDir[0] = -1;
mesdoram 20:a74fe4d43ec0 33 }
mesdoram 20:a74fe4d43ec0 34
mesdoram 20:a74fe4d43ec0 35 //left paddle collision check -- reverse if true
mesdoram 20:a74fe4d43ec0 36 if ( (ball[0] + ballDir[0]) == (rightPaddle[0] + rightPaddle[2]-1) ) {
mesdoram 20:a74fe4d43ec0 37 if ( ( (ball[1] + ball[3]-1 + ballDir[1]) >= rightPaddle[1] ) && ( (ball[1] + ballDir[1]) <= (rightPaddle[1] + rightPaddle[3]-1) ) )
mesdoram 20:a74fe4d43ec0 38 ballDir[0] = 1;
mesdoram 20:a74fe4d43ec0 39 }
mesdoram 20:a74fe4d43ec0 40
mesdoram 20:a74fe4d43ec0 41 ball[0] = ball[0] + ballDir[0];
mesdoram 20:a74fe4d43ec0 42 ball[1] = ball[1] + ballDir[1];
mesdoram 20:a74fe4d43ec0 43
mesdoram 20:a74fe4d43ec0 44 //if the ball hits the left wall, increment right player's score and reset
mesdoram 20:a74fe4d43ec0 45 if ( ball[0] == 0 )
mesdoram 20:a74fe4d43ec0 46 {
mesdoram 20:a74fe4d43ec0 47 score[1]++;
mesdoram 20:a74fe4d43ec0 48 ball[0] = 65; ball[1] = 65; ball[2] = 3; ball[3] = 3;
mesdoram 20:a74fe4d43ec0 49 ballDir[0] = -1; ballDir[1] = 1;
mesdoram 20:a74fe4d43ec0 50 }
mesdoram 20:a74fe4d43ec0 51 //if the ball hits the right wall, increment left player's score and reset
mesdoram 20:a74fe4d43ec0 52 else if ( (ball[0] + ball[2]-1) == 130 )
mesdoram 20:a74fe4d43ec0 53 {
mesdoram 20:a74fe4d43ec0 54 score[0]++;
mesdoram 20:a74fe4d43ec0 55 ball[0] = 65; ball[1] = 65; ball[2] = 3; ball[3] = 3;
mesdoram 20:a74fe4d43ec0 56 ballDir[0] = 1; ballDir[1] = 1;
mesdoram 20:a74fe4d43ec0 57 }
mesdoram 20:a74fe4d43ec0 58
mesdoram 20:a74fe4d43ec0 59 if ( (ball[1] + 2 == 130) && (ballDir[1] == 1) ) ballDir[1] = -1;
mesdoram 20:a74fe4d43ec0 60 else if ( (ball[1] - 1 == 0) && (ballDir[1] == -1) ) ballDir[1] = 1;
mesdoram 20:a74fe4d43ec0 61
mesdoram 20:a74fe4d43ec0 62 }
mesdoram 20:a74fe4d43ec0 63
mesdoram 20:a74fe4d43ec0 64 void pong::clear()
mesdoram 20:a74fe4d43ec0 65 {
mesdoram 20:a74fe4d43ec0 66 lcd->fill(leftPaddle[0], leftPaddle[1], leftPaddle[2], leftPaddle[3], 0x000000);
mesdoram 20:a74fe4d43ec0 67 lcd->fill(rightPaddle[0], rightPaddle[1], rightPaddle[2], rightPaddle[3], 0x000000);
mesdoram 20:a74fe4d43ec0 68 lcd->fill(ball[0], ball[1], ball[2], ball[3], 0x000000);
mesdoram 20:a74fe4d43ec0 69 }