Musallam Bseiso / Friendly
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?

UserRevisionLine numberNew 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 }