Contains the main execution of the clock uses headers to import functions
Dependencies: RTC-DS1307 SPI_TFT_ILI9341 TFT_fonts mbed tsi_sensor
Fork of TFT_Mikroelectronika_IL9341_sketchpad by
Revision 14:e0fb408647cf, committed 2017-05-25
- Comitter:
- tunagonen
- Date:
- Thu May 25 09:32:06 2017 +0000
- Parent:
- 13:e74e09de81e4
- Child:
- 18:02667782b06f
- Commit message:
- single player pong game implemented;
Changed in this revision
singlepong.cpp | Show annotated file Show diff for this revision Revisions of this file |
singlepong.h | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/singlepong.cpp Thu May 25 09:32:06 2017 +0000 @@ -0,0 +1,28 @@ + +#include "libs.h" +#include "singlepong.h" + +int main() { + + float location_player = 120 - ( 120 * tsi_d() ); //reading analog inputs from the potentiometers + int SCREENH = 239 ; //screen height + int SCREENW = 319 ; //screen width + int PADDLEW = 10 ; // paddle width + int PADDLEH = 40 ; // paddle height + int PADDLEG = 10 ; // paddle gap from the touchscreen + int ABALL = 10 ; // ball size + int PADDLE_A = 0 ; // location paddle A + int PADDLE_AF = 0 ; // final location paddle A + float XBALL = 0 ; // ball's x location + float YBALL = 0 ; // ball's y location + + float VXball = 3 ; // velocity in x-direction + float VYball = 2 ; // velocity in y-direction + + while(1) { + draw(); + move(); + wait(0.01) ; + } +} + \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/singlepong.h Thu May 25 09:32:06 2017 +0000 @@ -0,0 +1,81 @@ +#include "libs.h" + +float map(float in, float inMin, float inMax, float outMin, float outMax) { + // check it's within the range + if (inMin<inMax) { + if (in <= inMin) + return outMin; + if (in >= inMax) + return outMax; + } + else { // cope with input range being backwards. + if (in >= inMin) + return outMin; + if (in <= inMax) + return outMax; + } + // calculate how far into the range we are + float scale = (in-inMin)/(inMax-inMin); + // calculate the output. + return outMin + scale*(outMax-outMin); +} + + +void move() { + + int player = location_player ; ; + PADDLE_A = map(player , 0 , 1023 , 0 , SCREENH - PADDLEH) ; + int VPADDLE_A = PADDLE_AF - PADDLE_A ; // speed of paddle A + + + XBALL += VXBALL ; //x location of the ball + YBALL += VYBALL ; //y location of the ball + + //bounce from the top and bottom + + if (YBALL >= SCREENH - ABALL || YBALL <=0) + { + VYBALL *= -1 ; + } + + //bounce from Paddle A + if (XBALL >= PADDLEG && XBALL <= PADDLEG + ABALL && VXBALL < 0) + { + if (YBALL > PADDLE_A - ABALL && YBALL < PADDLE_A + PADDLEH) + { + VXBALL *= -1 ; + } + } + + //bounce from the opposite wall + + if ( XBALL >= SCREENW ) + { + VXBALL *= -1 ; + } + + + // if the the wall scores + + if (XBALL <= 0 ) { + + // reset function // + + } + + } + + void draw() +{ + + + fillcircle(XBALL , YBALL , ABALL , 1 ) ; //draw ball + + fillrect( PADDLEG , PADDLE_A , PADDLEW , PADDLEH , 1) ; //draw paddle A + + + } + + + + \ No newline at end of file