Library to calculate movement and to draw the objects in the pong game

Dependencies:   RTC-DS1307 SPI_TFT_ILI9341 TFT_fonts mbed

Fork of MainSketch by IoT Ox

Committer:
tunagonen
Date:
Wed May 24 15:18:13 2017 +0000
Revision:
11:d812de0e5136
l

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tunagonen 11:d812de0e5136 1 #include "libs.h"
tunagonen 11:d812de0e5136 2
tunagonen 11:d812de0e5136 3 float map(float in, float inMin, float inMax, float outMin, float outMax) {
tunagonen 11:d812de0e5136 4 // check it's within the range
tunagonen 11:d812de0e5136 5 if (inMin<inMax) {
tunagonen 11:d812de0e5136 6 if (in <= inMin)
tunagonen 11:d812de0e5136 7 return outMin;
tunagonen 11:d812de0e5136 8 if (in >= inMax)
tunagonen 11:d812de0e5136 9 return outMax;
tunagonen 11:d812de0e5136 10 }
tunagonen 11:d812de0e5136 11 else { // cope with input range being backwards.
tunagonen 11:d812de0e5136 12 if (in >= inMin)
tunagonen 11:d812de0e5136 13 return outMin;
tunagonen 11:d812de0e5136 14 if (in <= inMax)
tunagonen 11:d812de0e5136 15 return outMax;
tunagonen 11:d812de0e5136 16 }
tunagonen 11:d812de0e5136 17 // calculate how far into the range we are
tunagonen 11:d812de0e5136 18 float scale = (in-inMin)/(inMax-inMin);
tunagonen 11:d812de0e5136 19 // calculate the output.
tunagonen 11:d812de0e5136 20 return outMin + scale*(outMax-outMin);
tunagonen 11:d812de0e5136 21 }
tunagonen 11:d812de0e5136 22
tunagonen 11:d812de0e5136 23
tunagonen 11:d812de0e5136 24 void move() {
tunagonen 11:d812de0e5136 25
tunagonen 11:d812de0e5136 26 int player1 = Player1 ; ;
tunagonen 11:d812de0e5136 27 PADDLE_A = map(player1 , 0 , 1023 , 0 , SCREENH - PADDLEH) ;
tunagonen 11:d812de0e5136 28 int VPADDLE_A = PADDLE_AF - PADDLE_A ; // speed of paddle A
tunagonen 11:d812de0e5136 29
tunagonen 11:d812de0e5136 30
tunagonen 11:d812de0e5136 31 XBALL += VXBALL ; //x location of the ball
tunagonen 11:d812de0e5136 32 YBALL += VYBALL ; //y location of the ball
tunagonen 11:d812de0e5136 33
tunagonen 11:d812de0e5136 34 //bounce from the top and bottom
tunagonen 11:d812de0e5136 35
tunagonen 11:d812de0e5136 36 if (YBALL >= SCREENH - ABALL || YBALL <=0)
tunagonen 11:d812de0e5136 37 {
tunagonen 11:d812de0e5136 38 VYBALL *= -1 ;
tunagonen 11:d812de0e5136 39 }
tunagonen 11:d812de0e5136 40
tunagonen 11:d812de0e5136 41 //bounce from Paddle A
tunagonen 11:d812de0e5136 42 if (XBALL >= PADDLEG && XBALL <= PADDLEG + ABALL && VXBALL < 0)
tunagonen 11:d812de0e5136 43 {
tunagonen 11:d812de0e5136 44 if (YBALL > PADDLE_A - ABALL && YBALL < PADDLE_A + PADDLEH)
tunagonen 11:d812de0e5136 45 {
tunagonen 11:d812de0e5136 46 VXBALL *= -1 ;
tunagonen 11:d812de0e5136 47 }
tunagonen 11:d812de0e5136 48 }
tunagonen 11:d812de0e5136 49
tunagonen 11:d812de0e5136 50 //bounce from the opposite wall
tunagonen 11:d812de0e5136 51
tunagonen 11:d812de0e5136 52 if ( XBALL >= SCREENW )
tunagonen 11:d812de0e5136 53 {
tunagonen 11:d812de0e5136 54 VXBALL *= -1 ;
tunagonen 11:d812de0e5136 55 }
tunagonen 11:d812de0e5136 56
tunagonen 11:d812de0e5136 57
tunagonen 11:d812de0e5136 58 // if the the wall scores
tunagonen 11:d812de0e5136 59
tunagonen 11:d812de0e5136 60 if (XBALL <= 0 ) {
tunagonen 11:d812de0e5136 61
tunagonen 11:d812de0e5136 62 // reset function //
tunagonen 11:d812de0e5136 63
tunagonen 11:d812de0e5136 64 }
tunagonen 11:d812de0e5136 65
tunagonen 11:d812de0e5136 66 }
tunagonen 11:d812de0e5136 67
tunagonen 11:d812de0e5136 68 void draw()
tunagonen 11:d812de0e5136 69 {
tunagonen 11:d812de0e5136 70
tunagonen 11:d812de0e5136 71
tunagonen 11:d812de0e5136 72 fillcircle(XBALL , YBALL , ABALL , 1 ) ; //draw ball
tunagonen 11:d812de0e5136 73
tunagonen 11:d812de0e5136 74 fillrect( PADDLEG , PADDLE_A , PADDLEW , PADDLEH , 1) ; //draw paddle A
tunagonen 11:d812de0e5136 75
tunagonen 11:d812de0e5136 76
tunagonen 11:d812de0e5136 77 }
tunagonen 11:d812de0e5136 78
tunagonen 11:d812de0e5136 79
tunagonen 11:d812de0e5136 80
tunagonen 11:d812de0e5136 81