lcd accelerometer
physics.cpp@0:a0e65c86809d, 2017-10-31 (annotated)
- 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?
User | Revision | Line number | New 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 | } |