ELEC2645 (2018/19) / Mbed 2 deprecated ll16o2l_ELEC2645

Dependencies:   mbed Gamepad

Committer:
ll16o2l
Date:
Mon Mar 25 11:54:51 2019 +0000
Revision:
1:2d3139578aca
Made Main file with the starting message.

Who changed what in which revision?

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