OCE 360 Assignment #4

Dependents:   Barros_Assignment4

Committer:
Kaitlyn_Barros
Date:
Thu Dec 07 23:20:16 2017 +0000
Revision:
3:d4138ad4f452
Parent:
2:6ba843cde0bb
Assignment 6

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kaitlyn_Barros 0:9591bae8d04c 1 //Library for physics of LCD ball bouncing controlled by accelerometer
Kaitlyn_Barros 0:9591bae8d04c 2 //Based on MMA8452Q and 4DGL-uLCD-SE library.
Kaitlyn_Barros 0:9591bae8d04c 3
Kaitlyn_Barros 0:9591bae8d04c 4 #include "mbed.h"
Kaitlyn_Barros 0:9591bae8d04c 5 #include "MMA8452Q.h"
Kaitlyn_Barros 0:9591bae8d04c 6
Kaitlyn_Barros 2:6ba843cde0bb 7 #define DEFAULT_WIDTH 128
Kaitlyn_Barros 2:6ba843cde0bb 8 #define DEFAULT_HEIGHT 128
Kaitlyn_Barros 2:6ba843cde0bb 9 #define DEFAULT_SPEEDX 7
Kaitlyn_Barros 2:6ba843cde0bb 10 #define DEFAULT_SPEEDY 7
Kaitlyn_Barros 2:6ba843cde0bb 11 #define DEFAULT_POSX 64
Kaitlyn_Barros 2:6ba843cde0bb 12 #define DEFAULT_POSY 64
Kaitlyn_Barros 2:6ba843cde0bb 13 #define DEFAULT_RADIUS 10
Kaitlyn_Barros 2:6ba843cde0bb 14
Kaitlyn_Barros 0:9591bae8d04c 15 // Class declaration
Kaitlyn_Barros 0:9591bae8d04c 16 class physics_ball
Kaitlyn_Barros 0:9591bae8d04c 17 {
Kaitlyn_Barros 0:9591bae8d04c 18 public:
Kaitlyn_Barros 0:9591bae8d04c 19 physics_ball(); //Constructor
Kaitlyn_Barros 0:9591bae8d04c 20 float speedx; //Returns ball speed in X direction
Kaitlyn_Barros 0:9591bae8d04c 21 float speedy; //Returns ball speed in Y direction
Kaitlyn_Barros 0:9591bae8d04c 22
Kaitlyn_Barros 2:6ba843cde0bb 23 int posx; //Returns ball location in X
Kaitlyn_Barros 2:6ba843cde0bb 24 int posy; //Returns ball location in Y
Kaitlyn_Barros 2:6ba843cde0bb 25
Kaitlyn_Barros 2:6ba843cde0bb 26 int old_posx; //Saves old posx
Kaitlyn_Barros 2:6ba843cde0bb 27 int old_posy; //Saves old posy
Kaitlyn_Barros 0:9591bae8d04c 28
Kaitlyn_Barros 0:9591bae8d04c 29 int color; //Assigns ball color
Kaitlyn_Barros 0:9591bae8d04c 30 int radius; //Assigns ball radius
Kaitlyn_Barros 0:9591bae8d04c 31
Kaitlyn_Barros 0:9591bae8d04c 32 int width; //Screen Spec: 128 pixel width
Kaitlyn_Barros 0:9591bae8d04c 33 int height; //Screen Spec: 128 pixel Height
Kaitlyn_Barros 0:9591bae8d04c 34
Kaitlyn_Barros 2:6ba843cde0bb 35 void update(MMA8452Q & accel);
Kaitlyn_Barros 0:9591bae8d04c 36 // Calculates new ball position given time elapsed since last position
Kaitlyn_Barros 0:9591bae8d04c 37
Kaitlyn_Barros 0:9591bae8d04c 38 void define_space(int width, int height);
Kaitlyn_Barros 0:9591bae8d04c 39 // Defines environment, i.e the width & height of the area in which the ball can travel.
Kaitlyn_Barros 2:6ba843cde0bb 40
Kaitlyn_Barros 0:9591bae8d04c 41 void set_param(int radius, int color); // Defines ball parameters: radius, color (1 or 2)
Kaitlyn_Barros 0:9591bae8d04c 42
Kaitlyn_Barros 2:6ba843cde0bb 43 void set_state(float x, float y, float speedx, float speedy); //Sets new ball position & speed
Kaitlyn_Barros 2:6ba843cde0bb 44
Kaitlyn_Barros 2:6ba843cde0bb 45 private:
Kaitlyn_Barros 2:6ba843cde0bb 46
Kaitlyn_Barros 2:6ba843cde0bb 47 float posx_f;
Kaitlyn_Barros 2:6ba843cde0bb 48 float posy_f;
Kaitlyn_Barros 0:9591bae8d04c 49
Kaitlyn_Barros 0:9591bae8d04c 50 };