Reham Faqehi / Mbed 2 deprecated fy15raf

Dependencies:   mbed

Fork of fy15raf by ELEC2645 (2017/18)

Committer:
RehamFaqehi
Date:
Tue Apr 24 15:29:17 2018 +0000
Revision:
9:e70179ff61c5
Parent:
7:06c86ec1f19d
Child:
12:4d7f1349d796
'Game over' screen added

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 9:e70179ff61c5 55 if (_y > HEIGHT - 7) {
RehamFaqehi 9:e70179ff61c5 56 _y = HEIGHT - 7;
RehamFaqehi 3:489437d4ebd7 57 }
RehamFaqehi 3:489437d4ebd7 58 if (_x < 1) {
RehamFaqehi 3:489437d4ebd7 59 _x = 1;
RehamFaqehi 3:489437d4ebd7 60 }
RehamFaqehi 9:e70179ff61c5 61 if (_x > WIDTH - 9) {
RehamFaqehi 9:e70179ff61c5 62 _x = WIDTH - 9;
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 void Rocket::add_score()
RehamFaqehi 6:7b733b2a6cf6 72 {
RehamFaqehi 6:7b733b2a6cf6 73 _score++;
RehamFaqehi 6:7b733b2a6cf6 74 }
RehamFaqehi 6:7b733b2a6cf6 75
RehamFaqehi 6:7b733b2a6cf6 76 int Rocket::get_score()
RehamFaqehi 6:7b733b2a6cf6 77 {
RehamFaqehi 6:7b733b2a6cf6 78 return _score;
RehamFaqehi 7:06c86ec1f19d 79 }
RehamFaqehi 7:06c86ec1f19d 80
RehamFaqehi 7:06c86ec1f19d 81 void Rocket::drawFullHearts(N5110 &lcd)
RehamFaqehi 7:06c86ec1f19d 82 {
RehamFaqehi 7:06c86ec1f19d 83 int sprite[5][17] = {
RehamFaqehi 7:06c86ec1f19d 84
RehamFaqehi 7:06c86ec1f19d 85 { 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1, },
RehamFaqehi 7:06c86ec1f19d 86 { 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1, },
RehamFaqehi 7:06c86ec1f19d 87 { 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1, },
RehamFaqehi 7:06c86ec1f19d 88 { 0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0, },
RehamFaqehi 7:06c86ec1f19d 89 { 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0, },
RehamFaqehi 7:06c86ec1f19d 90 };
RehamFaqehi 7:06c86ec1f19d 91 lcd.drawSprite(0,0,5,17,(int *)sprite);
RehamFaqehi 7:06c86ec1f19d 92 }
RehamFaqehi 7:06c86ec1f19d 93
RehamFaqehi 7:06c86ec1f19d 94 void Rocket::drawTwoHearts(N5110 &lcd)
RehamFaqehi 7:06c86ec1f19d 95 {
RehamFaqehi 7:06c86ec1f19d 96 int sprite[5][17] = {
RehamFaqehi 7:06c86ec1f19d 97
RehamFaqehi 7:06c86ec1f19d 98 { 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1, },
RehamFaqehi 7:06c86ec1f19d 99 { 1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1, },
RehamFaqehi 7:06c86ec1f19d 100 { 1,1,1,1,1,0,1,1,1,1,1,0,1,0,0,0,1, },
RehamFaqehi 7:06c86ec1f19d 101 { 0,1,1,1,0,0,0,1,1,1,0,0,0,1,0,1,0, },
RehamFaqehi 7:06c86ec1f19d 102 { 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0, },
RehamFaqehi 7:06c86ec1f19d 103 };
RehamFaqehi 7:06c86ec1f19d 104 lcd.drawSprite(0,0,5,17,(int *)sprite);
RehamFaqehi 7:06c86ec1f19d 105 }
RehamFaqehi 7:06c86ec1f19d 106
RehamFaqehi 7:06c86ec1f19d 107 void Rocket::drawOneHeart(N5110 &lcd)
RehamFaqehi 7:06c86ec1f19d 108 {
RehamFaqehi 7:06c86ec1f19d 109 int sprite[5][17] = {
RehamFaqehi 7:06c86ec1f19d 110
RehamFaqehi 7:06c86ec1f19d 111 { 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1, },
RehamFaqehi 7:06c86ec1f19d 112 { 1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1, },
RehamFaqehi 7:06c86ec1f19d 113 { 1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,1, },
RehamFaqehi 7:06c86ec1f19d 114 { 0,1,1,1,0,0,0,1,0,1,0,0,0,1,0,1,0, },
RehamFaqehi 7:06c86ec1f19d 115 { 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0, },
RehamFaqehi 7:06c86ec1f19d 116 };
RehamFaqehi 7:06c86ec1f19d 117 lcd.drawSprite(1,1,5,17,(int *)sprite);
RehamFaqehi 3:489437d4ebd7 118 }