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.
Friendly.cpp@4:879c4cb8a7e4, 2017-03-15 (annotated)
- Committer:
- musallambseiso
- Date:
- Wed Mar 15 14:34:43 2017 +0000
- Revision:
- 4:879c4cb8a7e4
- Child:
- 5:0cd7f779418a
Added frame, enemy ships, friendly ship, 4-directional movement, random-nature movement of enemy ships
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
musallambseiso | 4:879c4cb8a7e4 | 1 | #include "Friendly.h" |
musallambseiso | 4:879c4cb8a7e4 | 2 | |
musallambseiso | 4:879c4cb8a7e4 | 3 | // Class for friendly ship (the one you control) |
musallambseiso | 4:879c4cb8a7e4 | 4 | |
musallambseiso | 4:879c4cb8a7e4 | 5 | Friendly::Friendly() |
musallambseiso | 4:879c4cb8a7e4 | 6 | { |
musallambseiso | 4:879c4cb8a7e4 | 7 | } |
musallambseiso | 4:879c4cb8a7e4 | 8 | |
musallambseiso | 4:879c4cb8a7e4 | 9 | Friendly::~Friendly() |
musallambseiso | 4:879c4cb8a7e4 | 10 | { |
musallambseiso | 4:879c4cb8a7e4 | 11 | } |
musallambseiso | 4:879c4cb8a7e4 | 12 | |
musallambseiso | 4:879c4cb8a7e4 | 13 | void Friendly::init(int x,int height,int width) // initialization |
musallambseiso | 4:879c4cb8a7e4 | 14 | { |
musallambseiso | 4:879c4cb8a7e4 | 15 | _x = 2; // starting x position (fixed) |
musallambseiso | 4:879c4cb8a7e4 | 16 | _y = HEIGHT/2 - height/2; // starting y position (centre) |
musallambseiso | 4:879c4cb8a7e4 | 17 | } |
musallambseiso | 4:879c4cb8a7e4 | 18 | |
musallambseiso | 4:879c4cb8a7e4 | 19 | void Friendly::draw(N5110 &lcd) // draws friendly ship in screen buffer |
musallambseiso | 4:879c4cb8a7e4 | 20 | { |
musallambseiso | 4:879c4cb8a7e4 | 21 | lcd.drawLine(_x,_y,_x,_y+5,1); |
musallambseiso | 4:879c4cb8a7e4 | 22 | lcd.setPixel(_x+1,_y); |
musallambseiso | 4:879c4cb8a7e4 | 23 | lcd.setPixel(_x+1,_y+5); |
musallambseiso | 4:879c4cb8a7e4 | 24 | lcd.setPixel(_x+2,_y+1); |
musallambseiso | 4:879c4cb8a7e4 | 25 | lcd.setPixel(_x+2,_y+4); |
musallambseiso | 4:879c4cb8a7e4 | 26 | lcd.setPixel(_x+3,_y+1); |
musallambseiso | 4:879c4cb8a7e4 | 27 | lcd.setPixel(_x+3,_y+4); |
musallambseiso | 4:879c4cb8a7e4 | 28 | lcd.setPixel(_x+4,_y+2); |
musallambseiso | 4:879c4cb8a7e4 | 29 | lcd.setPixel(_x+4,_y+3); |
musallambseiso | 4:879c4cb8a7e4 | 30 | } |
musallambseiso | 4:879c4cb8a7e4 | 31 | |
musallambseiso | 4:879c4cb8a7e4 | 32 | void Friendly::update(Direction d,float mag) |
musallambseiso | 4:879c4cb8a7e4 | 33 | { |
musallambseiso | 4:879c4cb8a7e4 | 34 | _speed = int(mag*10.0f); |
musallambseiso | 4:879c4cb8a7e4 | 35 | |
musallambseiso | 4:879c4cb8a7e4 | 36 | // four-directional movement |
musallambseiso | 4:879c4cb8a7e4 | 37 | if (d == N) { |
musallambseiso | 4:879c4cb8a7e4 | 38 | _y-=_speed; |
musallambseiso | 4:879c4cb8a7e4 | 39 | } else if (d == S) { |
musallambseiso | 4:879c4cb8a7e4 | 40 | _y+=_speed; |
musallambseiso | 4:879c4cb8a7e4 | 41 | } else if (d == W) { |
musallambseiso | 4:879c4cb8a7e4 | 42 | _x-=_speed; |
musallambseiso | 4:879c4cb8a7e4 | 43 | } else if (d == E) { |
musallambseiso | 4:879c4cb8a7e4 | 44 | _x+=_speed; |
musallambseiso | 4:879c4cb8a7e4 | 45 | } |
musallambseiso | 4:879c4cb8a7e4 | 46 | |
musallambseiso | 4:879c4cb8a7e4 | 47 | // position check so the ship doesn't go out of bounds |
musallambseiso | 4:879c4cb8a7e4 | 48 | if (_y < 1) { |
musallambseiso | 4:879c4cb8a7e4 | 49 | _y = 1; |
musallambseiso | 4:879c4cb8a7e4 | 50 | } |
musallambseiso | 4:879c4cb8a7e4 | 51 | |
musallambseiso | 4:879c4cb8a7e4 | 52 | if (_y > 41) { |
musallambseiso | 4:879c4cb8a7e4 | 53 | _y = 41; |
musallambseiso | 4:879c4cb8a7e4 | 54 | } |
musallambseiso | 4:879c4cb8a7e4 | 55 | |
musallambseiso | 4:879c4cb8a7e4 | 56 | if (_x < 1) { |
musallambseiso | 4:879c4cb8a7e4 | 57 | _x = 1; |
musallambseiso | 4:879c4cb8a7e4 | 58 | } |
musallambseiso | 4:879c4cb8a7e4 | 59 | |
musallambseiso | 4:879c4cb8a7e4 | 60 | if (_x > WIDTH/1.5 - _width - 1) { |
musallambseiso | 4:879c4cb8a7e4 | 61 | _x = WIDTH/1.5 - _width - 1; |
musallambseiso | 4:879c4cb8a7e4 | 62 | } |
musallambseiso | 4:879c4cb8a7e4 | 63 | } |
musallambseiso | 4:879c4cb8a7e4 | 64 | |
musallambseiso | 4:879c4cb8a7e4 | 65 | Vector2D Friendly::get_pos() { |
musallambseiso | 4:879c4cb8a7e4 | 66 | Vector2D p = {_x,_y}; |
musallambseiso | 4:879c4cb8a7e4 | 67 | return p; |
musallambseiso | 4:879c4cb8a7e4 | 68 | } |