lcd accelerometer

Committer:
jakebonney10
Date:
Tue Oct 31 14:31:13 2017 +0000
Revision:
0:a0e65c86809d
tried using set_state finction

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jakebonney10 0:a0e65c86809d 1 //physics.cpp
jakebonney10 0:a0e65c86809d 2
jakebonney10 0:a0e65c86809d 3 #include "mbed.h"
jakebonney10 0:a0e65c86809d 4 #include "physics.h"
jakebonney10 0:a0e65c86809d 5 #include "MMA8452Q.h"
jakebonney10 0:a0e65c86809d 6
jakebonney10 0:a0e65c86809d 7 MMA8452Q accel(p28, p27, 0x1D);
jakebonney10 0:a0e65c86809d 8
jakebonney10 0:a0e65c86809d 9 physics_ball :: physics_ball()
jakebonney10 0:a0e65c86809d 10
jakebonney10 0:a0e65c86809d 11 {
jakebonney10 0:a0e65c86809d 12 //constructor
jakebonney10 0:a0e65c86809d 13
jakebonney10 0:a0e65c86809d 14 x=64;
jakebonney10 0:a0e65c86809d 15 y=64;
jakebonney10 0:a0e65c86809d 16 vx=4;
jakebonney10 0:a0e65c86809d 17 vy=4;
jakebonney10 0:a0e65c86809d 18 radius = 4;
jakebonney10 0:a0e65c86809d 19 }
jakebonney10 0:a0e65c86809d 20 void physics_ball :: update(float time_step){
jakebonney10 0:a0e65c86809d 21
jakebonney10 0:a0e65c86809d 22 // Initialize accelerometer
jakebonney10 0:a0e65c86809d 23 accel.init();
jakebonney10 0:a0e65c86809d 24
jakebonney10 0:a0e65c86809d 25 x -= (vx * accel.readY());
jakebonney10 0:a0e65c86809d 26 y -= (vy * accel.readX());
jakebonney10 0:a0e65c86809d 27
jakebonney10 0:a0e65c86809d 28 //Reset balls to original position
jakebonney10 0:a0e65c86809d 29 if (accel.readZ() < 0 ){
jakebonney10 0:a0e65c86809d 30 x = 64;
jakebonney10 0:a0e65c86809d 31 y = 64;
jakebonney10 0:a0e65c86809d 32 }
jakebonney10 0:a0e65c86809d 33
jakebonney10 0:a0e65c86809d 34 // Make red ball bounce
jakebonney10 0:a0e65c86809d 35 if ( x <= radius + 1 ) {
jakebonney10 0:a0e65c86809d 36 x = vx * radius + 1;
jakebonney10 0:a0e65c86809d 37 }
jakebonney10 0:a0e65c86809d 38 else if ( x >= 126 - radius ) {
jakebonney10 0:a0e65c86809d 39 x = 126 - vx *radius;
jakebonney10 0:a0e65c86809d 40 }
jakebonney10 0:a0e65c86809d 41 if ( y <= radius + 1 ) {
jakebonney10 0:a0e65c86809d 42 y = vy * radius + 1;
jakebonney10 0:a0e65c86809d 43 }
jakebonney10 0:a0e65c86809d 44 else if ( y >= 126 - radius ) {
jakebonney10 0:a0e65c86809d 45 y = 126 - vy * radius;
jakebonney10 0:a0e65c86809d 46 }
jakebonney10 0:a0e65c86809d 47 //void physics_ball :: define_space(int width,int height)
jakebonney10 0:a0e65c86809d 48
jakebonney10 0:a0e65c86809d 49 //void physics_ball :: set_param(int radius, int color)
jakebonney10 0:a0e65c86809d 50 }
jakebonney10 0:a0e65c86809d 51 //void physics_ball :: set_state(int x, int y, float vx, float vy){
jakebonney10 0:a0e65c86809d 52 //x=10;
jakebonney10 0:a0e65c86809d 53 //y=10;
jakebonney10 0:a0e65c86809d 54 //vx=6;
jakebonney10 0:a0e65c86809d 55 //vy=6;
jakebonney10 0:a0e65c86809d 56 //}
jakebonney10 0:a0e65c86809d 57 }