Reham Faqehi / Mbed 2 deprecated fy15raf

Dependencies:   mbed

Fork of fy15raf by ELEC2645 (2017/18)

Committer:
RehamFaqehi
Date:
Fri Apr 20 21:03:05 2018 +0000
Revision:
6:7b733b2a6cf6
Parent:
3:489437d4ebd7
Child:
7:06c86ec1f19d
get positions of the asteroid and the rocket added with comparing function to get the number of hits

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RehamFaqehi 2:3fd0d3d69556 1 #include "Rocket.h"
RehamFaqehi 2:3fd0d3d69556 2
RehamFaqehi 2:3fd0d3d69556 3 // nothing doing in the constructor and destructor
RehamFaqehi 2:3fd0d3d69556 4 Rocket::Rocket()
RehamFaqehi 2:3fd0d3d69556 5 {
RehamFaqehi 2:3fd0d3d69556 6
RehamFaqehi 2:3fd0d3d69556 7 }
RehamFaqehi 2:3fd0d3d69556 8
RehamFaqehi 2:3fd0d3d69556 9 Rocket::~Rocket()
RehamFaqehi 2:3fd0d3d69556 10 {
RehamFaqehi 2:3fd0d3d69556 11
RehamFaqehi 2:3fd0d3d69556 12 }
RehamFaqehi 2:3fd0d3d69556 13
RehamFaqehi 2:3fd0d3d69556 14 void Rocket::init()
RehamFaqehi 2:3fd0d3d69556 15 {
RehamFaqehi 2:3fd0d3d69556 16 _x = WIDTH/2 ;
RehamFaqehi 2:3fd0d3d69556 17 _y = HEIGHT/2 ;
RehamFaqehi 2:3fd0d3d69556 18 _speed = 1;
RehamFaqehi 2:3fd0d3d69556 19 }
RehamFaqehi 2:3fd0d3d69556 20
RehamFaqehi 2:3fd0d3d69556 21 void Rocket::draw(N5110 &lcd)
RehamFaqehi 2:3fd0d3d69556 22 {
RehamFaqehi 2:3fd0d3d69556 23 int sprite[7][10] = {
RehamFaqehi 2:3fd0d3d69556 24
RehamFaqehi 2:3fd0d3d69556 25 { 0,1,1,1,1,0,0,0,0,0, },
RehamFaqehi 2:3fd0d3d69556 26 { 0,0,1,0,0,1,1,0,0,0, },
RehamFaqehi 2:3fd0d3d69556 27 { 0,0,0,1,0,0,0,1,1,0, },
RehamFaqehi 2:3fd0d3d69556 28 { 0,0,0,1,1,1,1,1,1,1, },
RehamFaqehi 2:3fd0d3d69556 29 { 0,0,0,1,0,0,0,1,1,0, },
RehamFaqehi 2:3fd0d3d69556 30 { 0,0,1,0,0,1,1,0,0,0, },
RehamFaqehi 2:3fd0d3d69556 31 { 0,1,1,1,1,0,0,0,0,0, },
RehamFaqehi 2:3fd0d3d69556 32 };
RehamFaqehi 2:3fd0d3d69556 33 lcd.drawSprite(_x,_y,7,10,(int *)sprite);
RehamFaqehi 2:3fd0d3d69556 34 }
RehamFaqehi 3:489437d4ebd7 35
RehamFaqehi 3:489437d4ebd7 36 void Rocket::update(Direction d,float mag, N5110 &lcd)
RehamFaqehi 3:489437d4ebd7 37 {
RehamFaqehi 3:489437d4ebd7 38 _speed = int(mag*10.0f); // scale is arbitrary, could be changed in future
RehamFaqehi 3:489437d4ebd7 39
RehamFaqehi 3:489437d4ebd7 40 // update y and x values depending on direction of movement
RehamFaqehi 3:489437d4ebd7 41 if (d == N) {
RehamFaqehi 3:489437d4ebd7 42 _y-=_speed;
RehamFaqehi 3:489437d4ebd7 43 } else if (d == S) {
RehamFaqehi 3:489437d4ebd7 44 _y+=_speed;
RehamFaqehi 3:489437d4ebd7 45 }else if (d == W) {
RehamFaqehi 3:489437d4ebd7 46 _x-=_speed;
RehamFaqehi 3:489437d4ebd7 47 } else if (d == E) {
RehamFaqehi 3:489437d4ebd7 48 _x+=_speed;
RehamFaqehi 3:489437d4ebd7 49 }
RehamFaqehi 3:489437d4ebd7 50
RehamFaqehi 3:489437d4ebd7 51 // check the rocket coordinates so it doesn't go off screen
RehamFaqehi 3:489437d4ebd7 52 if (_y < 1) {
RehamFaqehi 3:489437d4ebd7 53 _y = 1;
RehamFaqehi 3:489437d4ebd7 54 }
RehamFaqehi 3:489437d4ebd7 55 if (_y > HEIGHT - 5) {
RehamFaqehi 3:489437d4ebd7 56 _y = HEIGHT - 5;
RehamFaqehi 3:489437d4ebd7 57 }
RehamFaqehi 3:489437d4ebd7 58 if (_x < 1) {
RehamFaqehi 3:489437d4ebd7 59 _x = 1;
RehamFaqehi 3:489437d4ebd7 60 }
RehamFaqehi 3:489437d4ebd7 61 if (_x > WIDTH - 7) {
RehamFaqehi 3:489437d4ebd7 62 _x = WIDTH - 7;
RehamFaqehi 3:489437d4ebd7 63 }
RehamFaqehi 6:7b733b2a6cf6 64 }
RehamFaqehi 6:7b733b2a6cf6 65
RehamFaqehi 6:7b733b2a6cf6 66 Vector2D Rocket::get_pos() {
RehamFaqehi 6:7b733b2a6cf6 67 Vector2D p = {_x,_y};
RehamFaqehi 6:7b733b2a6cf6 68 return p;
RehamFaqehi 6:7b733b2a6cf6 69 }
RehamFaqehi 6:7b733b2a6cf6 70
RehamFaqehi 6:7b733b2a6cf6 71
RehamFaqehi 6:7b733b2a6cf6 72 void Rocket::add_score()
RehamFaqehi 6:7b733b2a6cf6 73 {
RehamFaqehi 6:7b733b2a6cf6 74 _score++;
RehamFaqehi 6:7b733b2a6cf6 75 }
RehamFaqehi 6:7b733b2a6cf6 76
RehamFaqehi 6:7b733b2a6cf6 77 int Rocket::get_score()
RehamFaqehi 6:7b733b2a6cf6 78 {
RehamFaqehi 6:7b733b2a6cf6 79 return _score;
RehamFaqehi 3:489437d4ebd7 80 }