Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Spaceship/Spaceship.cpp@18:53017c90bd26, 2018-05-08 (annotated)
- Committer:
- RehamFaqehi
- Date:
- Tue May 08 11:10:34 2018 +0000
- Revision:
- 18:53017c90bd26
- Parent:
- 16:106c27d03402
Final Submission. I have read and agreed with Statement of Academic Integrity.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| RehamFaqehi | 16:106c27d03402 | 1 | #include "Spaceship.h" |
| RehamFaqehi | 2:3fd0d3d69556 | 2 | |
| RehamFaqehi | 16:106c27d03402 | 3 | Spaceship::Spaceship() |
| RehamFaqehi | 2:3fd0d3d69556 | 4 | { |
| RehamFaqehi | 2:3fd0d3d69556 | 5 | |
| RehamFaqehi | 2:3fd0d3d69556 | 6 | } |
| RehamFaqehi | 2:3fd0d3d69556 | 7 | |
| RehamFaqehi | 16:106c27d03402 | 8 | Spaceship::~Spaceship() |
| RehamFaqehi | 2:3fd0d3d69556 | 9 | { |
| RehamFaqehi | 2:3fd0d3d69556 | 10 | |
| RehamFaqehi | 2:3fd0d3d69556 | 11 | } |
| RehamFaqehi | 2:3fd0d3d69556 | 12 | |
| RehamFaqehi | 16:106c27d03402 | 13 | void Spaceship::init() |
| RehamFaqehi | 2:3fd0d3d69556 | 14 | { |
| RehamFaqehi | 16:106c27d03402 | 15 | //initialise the Spaceship position, speed and collisions |
| RehamFaqehi | 12:4d7f1349d796 | 16 | _x = 15 ; |
| RehamFaqehi | 2:3fd0d3d69556 | 17 | _y = HEIGHT/2 ; |
| RehamFaqehi | 12:4d7f1349d796 | 18 | _speed = 1; |
| RehamFaqehi | 14:cf4a32245152 | 19 | _collision=0; |
| RehamFaqehi | 2:3fd0d3d69556 | 20 | } |
| RehamFaqehi | 2:3fd0d3d69556 | 21 | |
| RehamFaqehi | 16:106c27d03402 | 22 | void Spaceship::draw(N5110 &lcd) |
| RehamFaqehi | 2:3fd0d3d69556 | 23 | { |
| RehamFaqehi | 12:4d7f1349d796 | 24 | int sprite[7][10] = { |
| RehamFaqehi | 12:4d7f1349d796 | 25 | |
| RehamFaqehi | 12:4d7f1349d796 | 26 | { 0,1,1,1,1,0,0,0,0,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 27 | { 0,0,1,0,0,1,1,0,0,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 28 | { 0,0,0,1,0,0,0,1,1,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 29 | { 0,0,0,1,1,1,1,1,1,1, }, |
| RehamFaqehi | 12:4d7f1349d796 | 30 | { 0,0,0,1,0,0,0,1,1,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 31 | { 0,0,1,0,0,1,1,0,0,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 32 | { 0,1,1,1,1,0,0,0,0,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 33 | }; |
| RehamFaqehi | 2:3fd0d3d69556 | 34 | lcd.drawSprite(_x,_y,7,10,(int *)sprite); |
| RehamFaqehi | 2:3fd0d3d69556 | 35 | } |
| RehamFaqehi | 3:489437d4ebd7 | 36 | |
| RehamFaqehi | 16:106c27d03402 | 37 | void Spaceship::update(Direction d,float mag) |
| RehamFaqehi | 3:489437d4ebd7 | 38 | { |
| RehamFaqehi | 16:106c27d03402 | 39 | _speed = int(mag*10.0f); //shows how far from the center does the Spaceship move based on the joystick |
| RehamFaqehi | 3:489437d4ebd7 | 40 | |
| RehamFaqehi | 18:53017c90bd26 | 41 | // update y and x values based on direction of joystick movement |
| RehamFaqehi | 3:489437d4ebd7 | 42 | if (d == N) { |
| RehamFaqehi | 3:489437d4ebd7 | 43 | _y-=_speed; |
| RehamFaqehi | 3:489437d4ebd7 | 44 | } else if (d == S) { |
| RehamFaqehi | 3:489437d4ebd7 | 45 | _y+=_speed; |
| RehamFaqehi | 12:4d7f1349d796 | 46 | } else if (d == W) { |
| RehamFaqehi | 3:489437d4ebd7 | 47 | _x-=_speed; |
| RehamFaqehi | 3:489437d4ebd7 | 48 | } else if (d == E) { |
| RehamFaqehi | 3:489437d4ebd7 | 49 | _x+=_speed; |
| RehamFaqehi | 3:489437d4ebd7 | 50 | } |
| RehamFaqehi | 12:4d7f1349d796 | 51 | |
| RehamFaqehi | 18:53017c90bd26 | 52 | |
| RehamFaqehi | 16:106c27d03402 | 53 | // check the Spaceship coordinates so it doesn't go off screen |
| RehamFaqehi | 3:489437d4ebd7 | 54 | if (_y < 1) { |
| RehamFaqehi | 3:489437d4ebd7 | 55 | _y = 1; |
| RehamFaqehi | 3:489437d4ebd7 | 56 | } |
| RehamFaqehi | 9:e70179ff61c5 | 57 | if (_y > HEIGHT - 7) { |
| RehamFaqehi | 9:e70179ff61c5 | 58 | _y = HEIGHT - 7; |
| RehamFaqehi | 3:489437d4ebd7 | 59 | } |
| RehamFaqehi | 3:489437d4ebd7 | 60 | if (_x < 1) { |
| RehamFaqehi | 3:489437d4ebd7 | 61 | _x = 1; |
| RehamFaqehi | 3:489437d4ebd7 | 62 | } |
| RehamFaqehi | 9:e70179ff61c5 | 63 | if (_x > WIDTH - 9) { |
| RehamFaqehi | 9:e70179ff61c5 | 64 | _x = WIDTH - 9; |
| RehamFaqehi | 3:489437d4ebd7 | 65 | } |
| RehamFaqehi | 6:7b733b2a6cf6 | 66 | } |
| RehamFaqehi | 6:7b733b2a6cf6 | 67 | |
| RehamFaqehi | 16:106c27d03402 | 68 | Vector2D Spaceship::get_pos() |
| RehamFaqehi | 12:4d7f1349d796 | 69 | { |
| RehamFaqehi | 6:7b733b2a6cf6 | 70 | Vector2D p = {_x,_y}; |
| RehamFaqehi | 12:4d7f1349d796 | 71 | return p; |
| RehamFaqehi | 6:7b733b2a6cf6 | 72 | } |
| RehamFaqehi | 6:7b733b2a6cf6 | 73 | |
| RehamFaqehi | 16:106c27d03402 | 74 | void Spaceship::add_collisions() |
| RehamFaqehi | 6:7b733b2a6cf6 | 75 | { |
| RehamFaqehi | 12:4d7f1349d796 | 76 | _collision++; |
| RehamFaqehi | 6:7b733b2a6cf6 | 77 | } |
| RehamFaqehi | 6:7b733b2a6cf6 | 78 | |
| RehamFaqehi | 16:106c27d03402 | 79 | int Spaceship::get_collisions() |
| RehamFaqehi | 6:7b733b2a6cf6 | 80 | { |
| RehamFaqehi | 12:4d7f1349d796 | 81 | return _collision; |
| RehamFaqehi | 7:06c86ec1f19d | 82 | } |
| RehamFaqehi | 7:06c86ec1f19d | 83 | |
| RehamFaqehi | 16:106c27d03402 | 84 | void Spaceship::drawFullHearts(N5110 &lcd) |
| RehamFaqehi | 7:06c86ec1f19d | 85 | { |
| RehamFaqehi | 12:4d7f1349d796 | 86 | int sprite[5][17] = { |
| RehamFaqehi | 12:4d7f1349d796 | 87 | |
| RehamFaqehi | 12:4d7f1349d796 | 88 | { 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1, }, |
| RehamFaqehi | 12:4d7f1349d796 | 89 | { 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1, }, |
| RehamFaqehi | 12:4d7f1349d796 | 90 | { 1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1, }, |
| RehamFaqehi | 12:4d7f1349d796 | 91 | { 0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 92 | { 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 93 | }; |
| RehamFaqehi | 7:06c86ec1f19d | 94 | lcd.drawSprite(0,0,5,17,(int *)sprite); |
| RehamFaqehi | 7:06c86ec1f19d | 95 | } |
| RehamFaqehi | 7:06c86ec1f19d | 96 | |
| RehamFaqehi | 16:106c27d03402 | 97 | void Spaceship::drawTwoHearts(N5110 &lcd) |
| RehamFaqehi | 7:06c86ec1f19d | 98 | { |
| RehamFaqehi | 12:4d7f1349d796 | 99 | int sprite[5][17] = { |
| RehamFaqehi | 12:4d7f1349d796 | 100 | |
| RehamFaqehi | 12:4d7f1349d796 | 101 | { 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1, }, |
| RehamFaqehi | 12:4d7f1349d796 | 102 | { 1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1, }, |
| RehamFaqehi | 12:4d7f1349d796 | 103 | { 1,1,1,1,1,0,1,1,1,1,1,0,1,0,0,0,1, }, |
| RehamFaqehi | 12:4d7f1349d796 | 104 | { 0,1,1,1,0,0,0,1,1,1,0,0,0,1,0,1,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 105 | { 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 106 | }; |
| RehamFaqehi | 7:06c86ec1f19d | 107 | lcd.drawSprite(0,0,5,17,(int *)sprite); |
| RehamFaqehi | 7:06c86ec1f19d | 108 | } |
| RehamFaqehi | 7:06c86ec1f19d | 109 | |
| RehamFaqehi | 16:106c27d03402 | 110 | void Spaceship::drawOneHeart(N5110 &lcd) |
| RehamFaqehi | 7:06c86ec1f19d | 111 | { |
| RehamFaqehi | 12:4d7f1349d796 | 112 | int sprite[5][17] = { |
| RehamFaqehi | 12:4d7f1349d796 | 113 | |
| RehamFaqehi | 12:4d7f1349d796 | 114 | { 1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1, }, |
| RehamFaqehi | 12:4d7f1349d796 | 115 | { 1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1, }, |
| RehamFaqehi | 12:4d7f1349d796 | 116 | { 1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,1, }, |
| RehamFaqehi | 12:4d7f1349d796 | 117 | { 0,1,1,1,0,0,0,1,0,1,0,0,0,1,0,1,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 118 | { 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0, }, |
| RehamFaqehi | 12:4d7f1349d796 | 119 | }; |
| RehamFaqehi | 7:06c86ec1f19d | 120 | lcd.drawSprite(1,1,5,17,(int *)sprite); |
| RehamFaqehi | 3:489437d4ebd7 | 121 | } |