ELEC2645 (2018/19) / Mbed 2 deprecated el17szs

Dependencies:   mbed

Committer:
shahidsajid
Date:
Tue Apr 16 10:17:21 2019 +0000
Revision:
5:915bcac4e9b9
Parent:
4:55a0509c4874
Child:
6:3e50f2cf4366
Updated the bat class;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shahidsajid 3:bd3465a70a5a 1 #include "Ball.h"
shahidsajid 3:bd3465a70a5a 2
shahidsajid 4:55a0509c4874 3
shahidsajid 3:bd3465a70a5a 4 Ball::Ball()
shahidsajid 3:bd3465a70a5a 5 {
shahidsajid 3:bd3465a70a5a 6
shahidsajid 3:bd3465a70a5a 7 }
shahidsajid 3:bd3465a70a5a 8
shahidsajid 3:bd3465a70a5a 9 Ball::~Ball()
shahidsajid 3:bd3465a70a5a 10 {
shahidsajid 3:bd3465a70a5a 11
shahidsajid 3:bd3465a70a5a 12 }
shahidsajid 3:bd3465a70a5a 13
shahidsajid 3:bd3465a70a5a 14 void Ball::init(int size,int speed)
shahidsajid 3:bd3465a70a5a 15 {
shahidsajid 3:bd3465a70a5a 16 _size = size;
shahidsajid 3:bd3465a70a5a 17
shahidsajid 3:bd3465a70a5a 18 _x = 42;
shahidsajid 3:bd3465a70a5a 19 _y = 15;
shahidsajid 3:bd3465a70a5a 20
shahidsajid 3:bd3465a70a5a 21 srand(time(NULL));
shahidsajid 3:bd3465a70a5a 22 int direction = rand() % 4; // randomise initial direction.
shahidsajid 3:bd3465a70a5a 23
shahidsajid 3:bd3465a70a5a 24 // 4 possibilities. Get random modulo and set velocities accordingly
shahidsajid 3:bd3465a70a5a 25 if (direction == 0) {
shahidsajid 3:bd3465a70a5a 26 _velocity.x = speed;
shahidsajid 3:bd3465a70a5a 27 _velocity.y = speed;
shahidsajid 3:bd3465a70a5a 28 } else if (direction == 1) {
shahidsajid 3:bd3465a70a5a 29 _velocity.x = speed;
shahidsajid 3:bd3465a70a5a 30 _velocity.y = -speed;
shahidsajid 3:bd3465a70a5a 31 } else if (direction == 2) {
shahidsajid 3:bd3465a70a5a 32 _velocity.x = speed;
shahidsajid 3:bd3465a70a5a 33 _velocity.y = speed;
shahidsajid 3:bd3465a70a5a 34 } else {
shahidsajid 3:bd3465a70a5a 35 _velocity.x = -speed;
shahidsajid 3:bd3465a70a5a 36 _velocity.y = -speed;
shahidsajid 3:bd3465a70a5a 37 }
shahidsajid 3:bd3465a70a5a 38 }
shahidsajid 3:bd3465a70a5a 39
shahidsajid 3:bd3465a70a5a 40 void Ball::start(N5110 &lcd){
shahidsajid 4:55a0509c4874 41 if (_y!=36){
shahidsajid 3:bd3465a70a5a 42 _y+=1;
shahidsajid 3:bd3465a70a5a 43 }
shahidsajid 3:bd3465a70a5a 44 }
shahidsajid 3:bd3465a70a5a 45
shahidsajid 3:bd3465a70a5a 46 void Ball::draw(N5110 &lcd)
shahidsajid 3:bd3465a70a5a 47 {
shahidsajid 3:bd3465a70a5a 48 lcd.drawCircle(_x,_y,1,FILL_BLACK);
shahidsajid 3:bd3465a70a5a 49 //lcd.drawRect(_x,_y,_size,_size,FILL_BLACK);
shahidsajid 3:bd3465a70a5a 50 }
shahidsajid 3:bd3465a70a5a 51
shahidsajid 3:bd3465a70a5a 52 void Ball::update()
shahidsajid 3:bd3465a70a5a 53 {
shahidsajid 3:bd3465a70a5a 54 _x += _velocity.x;
shahidsajid 3:bd3465a70a5a 55 _y += _velocity.y;
shahidsajid 3:bd3465a70a5a 56 }
shahidsajid 3:bd3465a70a5a 57
shahidsajid 3:bd3465a70a5a 58 void Ball::set_velocity(Vector2D v)
shahidsajid 3:bd3465a70a5a 59 {
shahidsajid 3:bd3465a70a5a 60 _velocity.x = v.x;
shahidsajid 3:bd3465a70a5a 61 _velocity.y = v.y;
shahidsajid 3:bd3465a70a5a 62 }
shahidsajid 3:bd3465a70a5a 63
shahidsajid 3:bd3465a70a5a 64 Vector2D Ball::get_velocity()
shahidsajid 3:bd3465a70a5a 65 {
shahidsajid 3:bd3465a70a5a 66 Vector2D v = {_velocity.x,_velocity.y};
shahidsajid 3:bd3465a70a5a 67 return v;
shahidsajid 3:bd3465a70a5a 68 }
shahidsajid 3:bd3465a70a5a 69
shahidsajid 3:bd3465a70a5a 70 Vector2D Ball::get_pos()
shahidsajid 3:bd3465a70a5a 71 {
shahidsajid 3:bd3465a70a5a 72 Vector2D p = {_x,_y};
shahidsajid 3:bd3465a70a5a 73 return p;
shahidsajid 3:bd3465a70a5a 74 }
shahidsajid 3:bd3465a70a5a 75
shahidsajid 3:bd3465a70a5a 76 void Ball::set_pos(Vector2D p)
shahidsajid 3:bd3465a70a5a 77 {
shahidsajid 3:bd3465a70a5a 78 _x = p.x;
shahidsajid 3:bd3465a70a5a 79 _y = p.y;
shahidsajid 3:bd3465a70a5a 80 }
shahidsajid 3:bd3465a70a5a 81 void Ball::get_direction(Gamepad &pad){
shahidsajid 3:bd3465a70a5a 82 _d = pad.get_direction();
shahidsajid 3:bd3465a70a5a 83 }
shahidsajid 3:bd3465a70a5a 84 void Ball::set_field(N5110 &lcd){
shahidsajid 4:55a0509c4874 85 lcd.drawLine(40,11,40,14,1);
shahidsajid 4:55a0509c4874 86 lcd.drawLine(42,11,42,14,1);
shahidsajid 4:55a0509c4874 87 lcd.drawLine(44,11,44,14,1);
shahidsajid 4:55a0509c4874 88 lcd.drawLine(40,14,44,14,2);
shahidsajid 4:55a0509c4874 89 /*
shahidsajid 3:bd3465a70a5a 90 lcd.drawCircle(25,2,2,FILL_BLACK); //NE
shahidsajid 3:bd3465a70a5a 91 lcd.drawCircle(65,2,2,FILL_BLACK); //NW
shahidsajid 3:bd3465a70a5a 92 lcd.drawCircle(65,40,2,FILL_BLACK); //SE
shahidsajid 3:bd3465a70a5a 93 lcd.drawCircle(25,40,2,FILL_BLACK); //SW
shahidsajid 3:bd3465a70a5a 94 lcd.drawCircle(3,20,2,FILL_BLACK); //E
shahidsajid 4:55a0509c4874 95 lcd.drawCircle(80,20,2,FILL_BLACK);
shahidsajid 4:55a0509c4874 96 */
shahidsajid 4:55a0509c4874 97 int d=0;
shahidsajid 5:915bcac4e9b9 98 srand(time(NULL));
shahidsajid 4:55a0509c4874 99 for(int i=0;i<3;i++){
shahidsajid 5:915bcac4e9b9 100 d = 1+ rand() % 6;
shahidsajid 5:915bcac4e9b9 101 //printf("Direction %i \n",d);
shahidsajid 4:55a0509c4874 102 //while (d==N||d==S){
shahidsajid 4:55a0509c4874 103 //get_direction(pad);
shahidsajid 4:55a0509c4874 104 //}
shahidsajid 4:55a0509c4874 105 if (d==1){ //NE
shahidsajid 4:55a0509c4874 106 field[i].x=25;
shahidsajid 4:55a0509c4874 107 field[i].y=2;
shahidsajid 4:55a0509c4874 108 field[i].position=1;
shahidsajid 3:bd3465a70a5a 109 }
shahidsajid 4:55a0509c4874 110 if (d==2){ //NW
shahidsajid 4:55a0509c4874 111 field[i].x=65;
shahidsajid 4:55a0509c4874 112 field[i].y=2;
shahidsajid 4:55a0509c4874 113 field[i].position=1;
shahidsajid 4:55a0509c4874 114 }
shahidsajid 4:55a0509c4874 115 if (d==3){ //SW
shahidsajid 4:55a0509c4874 116 field[i].x=25;
shahidsajid 4:55a0509c4874 117 field[i].y=40;
shahidsajid 4:55a0509c4874 118 field[i].position=1;
shahidsajid 4:55a0509c4874 119 }
shahidsajid 5:915bcac4e9b9 120 if (d==4){ //SE
shahidsajid 5:915bcac4e9b9 121 field[i].x=65;
shahidsajid 5:915bcac4e9b9 122 field[i].y=40;
shahidsajid 5:915bcac4e9b9 123 field[i].position=1;
shahidsajid 5:915bcac4e9b9 124 }
shahidsajid 5:915bcac4e9b9 125 if (d==5){ //E
shahidsajid 5:915bcac4e9b9 126 field[i].x=3;
shahidsajid 5:915bcac4e9b9 127 field[i].y=20;
shahidsajid 5:915bcac4e9b9 128 field[i].position=1;
shahidsajid 5:915bcac4e9b9 129 }
shahidsajid 5:915bcac4e9b9 130 if (d==3){ //W
shahidsajid 5:915bcac4e9b9 131 field[i].x=80;
shahidsajid 5:915bcac4e9b9 132 field[i].y=20;
shahidsajid 5:915bcac4e9b9 133 field[i].position=1;
shahidsajid 5:915bcac4e9b9 134 }
shahidsajid 4:55a0509c4874 135 }
shahidsajid 4:55a0509c4874 136 lcd.drawCircle(field[0].x,field[0].y,2,FILL_BLACK);
shahidsajid 4:55a0509c4874 137 lcd.drawCircle(field[1].x,field[1].y,2,FILL_BLACK);
shahidsajid 4:55a0509c4874 138 lcd.drawCircle(field[2].x,field[2].y,2,FILL_BLACK);
shahidsajid 4:55a0509c4874 139 lcd.drawCircle(field[3].x,field[3].y,2,FILL_BLACK);
shahidsajid 4:55a0509c4874 140
shahidsajid 4:55a0509c4874 141 }