Example Pong game for mbed.

Dependencies:   mbed

Committer:
eencae
Date:
Fri Feb 16 13:37:49 2018 +0000
Revision:
5:3c9407e2fe55
Converted to folders.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 5:3c9407e2fe55 1 #include "Ball.h"
eencae 5:3c9407e2fe55 2
eencae 5:3c9407e2fe55 3 Ball::Ball()
eencae 5:3c9407e2fe55 4 {
eencae 5:3c9407e2fe55 5
eencae 5:3c9407e2fe55 6 }
eencae 5:3c9407e2fe55 7
eencae 5:3c9407e2fe55 8 Ball::~Ball()
eencae 5:3c9407e2fe55 9 {
eencae 5:3c9407e2fe55 10
eencae 5:3c9407e2fe55 11 }
eencae 5:3c9407e2fe55 12
eencae 5:3c9407e2fe55 13 void Ball::init(int size,int speed)
eencae 5:3c9407e2fe55 14 {
eencae 5:3c9407e2fe55 15 _size = size;
eencae 5:3c9407e2fe55 16
eencae 5:3c9407e2fe55 17 _x = WIDTH/2 - _size/2;
eencae 5:3c9407e2fe55 18 _y = HEIGHT/2 - _size/2;
eencae 5:3c9407e2fe55 19
eencae 5:3c9407e2fe55 20 srand(time(NULL));
eencae 5:3c9407e2fe55 21 int direction = rand() % 4; // randomise initial direction.
eencae 5:3c9407e2fe55 22
eencae 5:3c9407e2fe55 23 // 4 possibilities. Get random modulo and set velocities accordingly
eencae 5:3c9407e2fe55 24 if (direction == 0) {
eencae 5:3c9407e2fe55 25 _velocity.x = speed;
eencae 5:3c9407e2fe55 26 _velocity.y = speed;
eencae 5:3c9407e2fe55 27 } else if (direction == 1) {
eencae 5:3c9407e2fe55 28 _velocity.x = speed;
eencae 5:3c9407e2fe55 29 _velocity.y = -speed;
eencae 5:3c9407e2fe55 30 } else if (direction == 2) {
eencae 5:3c9407e2fe55 31 _velocity.x = speed;
eencae 5:3c9407e2fe55 32 _velocity.y = speed;
eencae 5:3c9407e2fe55 33 } else {
eencae 5:3c9407e2fe55 34 _velocity.x = -speed;
eencae 5:3c9407e2fe55 35 _velocity.y = -speed;
eencae 5:3c9407e2fe55 36 }
eencae 5:3c9407e2fe55 37 }
eencae 5:3c9407e2fe55 38
eencae 5:3c9407e2fe55 39 void Ball::draw(N5110 &lcd)
eencae 5:3c9407e2fe55 40 {
eencae 5:3c9407e2fe55 41 lcd.drawRect(_x,_y,_size,_size,FILL_BLACK);
eencae 5:3c9407e2fe55 42 }
eencae 5:3c9407e2fe55 43
eencae 5:3c9407e2fe55 44 void Ball::update()
eencae 5:3c9407e2fe55 45 {
eencae 5:3c9407e2fe55 46 _x += _velocity.x;
eencae 5:3c9407e2fe55 47 _y += _velocity.y;
eencae 5:3c9407e2fe55 48 }
eencae 5:3c9407e2fe55 49
eencae 5:3c9407e2fe55 50 void Ball::set_velocity(Vector2D v)
eencae 5:3c9407e2fe55 51 {
eencae 5:3c9407e2fe55 52 _velocity.x = v.x;
eencae 5:3c9407e2fe55 53 _velocity.y = v.y;
eencae 5:3c9407e2fe55 54 }
eencae 5:3c9407e2fe55 55
eencae 5:3c9407e2fe55 56 Vector2D Ball::get_velocity()
eencae 5:3c9407e2fe55 57 {
eencae 5:3c9407e2fe55 58 Vector2D v = {_velocity.x,_velocity.y};
eencae 5:3c9407e2fe55 59 return v;
eencae 5:3c9407e2fe55 60 }
eencae 5:3c9407e2fe55 61
eencae 5:3c9407e2fe55 62 Vector2D Ball::get_pos()
eencae 5:3c9407e2fe55 63 {
eencae 5:3c9407e2fe55 64 Vector2D p = {_x,_y};
eencae 5:3c9407e2fe55 65 return p;
eencae 5:3c9407e2fe55 66 }
eencae 5:3c9407e2fe55 67
eencae 5:3c9407e2fe55 68 void Ball::set_pos(Vector2D p)
eencae 5:3c9407e2fe55 69 {
eencae 5:3c9407e2fe55 70 _x = p.x;
eencae 5:3c9407e2fe55 71 _y = p.y;
eencae 5:3c9407e2fe55 72 }