Albert Tan-Mulligan / Mbed 2 deprecated ELEC2645_Project_el18ajst

Dependencies:   mbed

Committer:
Albutt
Date:
Sat May 23 13:26:19 2020 +0000
Revision:
9:62fe47a1374f
Parent:
4:b16b6078a432
Child:
10:71ced616a64f
Multiple Enemies Spawning, Bullets Despawn when hit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Albutt 2:c25ec0da7636 1 #include "Character.h"
Albutt 2:c25ec0da7636 2 #include <Bitmap.h>
Albutt 2:c25ec0da7636 3 Serial pcc(USBTX, USBRX);
Albutt 2:c25ec0da7636 4 // nothing doing in the constructor and destructor
Albutt 2:c25ec0da7636 5 Character::Character()
Albutt 2:c25ec0da7636 6 {
Albutt 2:c25ec0da7636 7
Albutt 2:c25ec0da7636 8 }
Albutt 2:c25ec0da7636 9
Albutt 2:c25ec0da7636 10 Character::~Character()
Albutt 2:c25ec0da7636 11 {
Albutt 2:c25ec0da7636 12
Albutt 2:c25ec0da7636 13 }
Albutt 2:c25ec0da7636 14
Albutt 2:c25ec0da7636 15 void Character::init(int x,int y)
Albutt 2:c25ec0da7636 16 {
Albutt 2:c25ec0da7636 17 _x = x; // initial x
Albutt 2:c25ec0da7636 18 _y = y; // initial y
Albutt 2:c25ec0da7636 19 _speed = 1; // default speed
Albutt 2:c25ec0da7636 20 _level = 0; // start score from zero
Albutt 2:c25ec0da7636 21 }
Albutt 2:c25ec0da7636 22
Albutt 2:c25ec0da7636 23 void Character::draw(N5110 &lcd)
Albutt 2:c25ec0da7636 24 { //sprite is facing left
Albutt 2:c25ec0da7636 25 static int sprite_data[] = {
Albutt 2:c25ec0da7636 26 0,1,1,1,1,
Albutt 2:c25ec0da7636 27 1,1,1,1,1,
Albutt 2:c25ec0da7636 28 1,1,1,1,1,
Albutt 2:c25ec0da7636 29 1,1,1,1,1,
Albutt 2:c25ec0da7636 30 0,1,1,1,1
Albutt 2:c25ec0da7636 31 };
Albutt 2:c25ec0da7636 32 //turning the sprite
Albutt 4:b16b6078a432 33 for(int i = 0; i < 25; i++){
Albutt 2:c25ec0da7636 34 sprite_data[i] = 1;
Albutt 2:c25ec0da7636 35 }
Albutt 4:b16b6078a432 36 if (_dir == 0) {
Albutt 2:c25ec0da7636 37 sprite_data[0] = 0;
Albutt 2:c25ec0da7636 38 sprite_data[4] = 0;
Albutt 2:c25ec0da7636 39 } else if (_dir == 1) {
Albutt 2:c25ec0da7636 40 sprite_data[4] = 0;
Albutt 2:c25ec0da7636 41 sprite_data[24] = 0;
Albutt 2:c25ec0da7636 42 } else if (_dir == 2) {
Albutt 2:c25ec0da7636 43 sprite_data[20] = 0;
Albutt 2:c25ec0da7636 44 sprite_data[24] = 0;
Albutt 2:c25ec0da7636 45 } else if (_dir == 3) {
Albutt 2:c25ec0da7636 46 sprite_data[0] = 0;
Albutt 2:c25ec0da7636 47 sprite_data[20] = 0;
Albutt 2:c25ec0da7636 48 }
Albutt 2:c25ec0da7636 49 // Instantiate the Bitmap
Albutt 2:c25ec0da7636 50 Bitmap sprite(sprite_data, 5, 5);
Albutt 2:c25ec0da7636 51
Albutt 2:c25ec0da7636 52 // Rendered at X and Y
Albutt 2:c25ec0da7636 53 sprite.render(lcd, _x, _y);
Albutt 2:c25ec0da7636 54 }
Albutt 2:c25ec0da7636 55
Albutt 2:c25ec0da7636 56 void Character::update(Direction d,float mag)
Albutt 2:c25ec0da7636 57 {
Albutt 4:b16b6078a432 58 _speed = 1; //scale of speed
Albutt 2:c25ec0da7636 59
Albutt 3:fcc9cf213a61 60 //printf statements for speed
Albutt 3:fcc9cf213a61 61 //pcc.printf("speed = %d \n", _speed);
Albutt 2:c25ec0da7636 62
Albutt 2:c25ec0da7636 63 // update x and y value depending on direction of movement
Albutt 2:c25ec0da7636 64 // Set direction and speed according to north south directions
Albutt 2:c25ec0da7636 65 if (d == N) {
Albutt 2:c25ec0da7636 66 _y-=_speed;
Albutt 2:c25ec0da7636 67 _dir = 0;
Albutt 2:c25ec0da7636 68 } else if (d == S) {
Albutt 2:c25ec0da7636 69 _y+=_speed;
Albutt 2:c25ec0da7636 70 _dir = 2;
Albutt 2:c25ec0da7636 71 } else if (d == E) {
Albutt 2:c25ec0da7636 72 _x+=_speed;
Albutt 2:c25ec0da7636 73 _dir = 1;
Albutt 2:c25ec0da7636 74 } else if (d == W) {
Albutt 2:c25ec0da7636 75 _x-=_speed;
Albutt 2:c25ec0da7636 76 _dir = 3;
Albutt 2:c25ec0da7636 77 }
Albutt 2:c25ec0da7636 78 //testing _x and _y
Albutt 3:fcc9cf213a61 79 //pcc.printf("x = %d \n", _x);
Albutt 3:fcc9cf213a61 80 //pcc.printf("y = %d \n", _y);
Albutt 2:c25ec0da7636 81
Albutt 2:c25ec0da7636 82 // check the x and y position] to ensure that the paddle doesn't go off screen
Albutt 2:c25ec0da7636 83 if (_x < 1) {
Albutt 2:c25ec0da7636 84 _x = 1;
Albutt 2:c25ec0da7636 85 }
Albutt 2:c25ec0da7636 86 if (_y < 1) {
Albutt 2:c25ec0da7636 87 _y = 1;
Albutt 2:c25ec0da7636 88 }
Albutt 2:c25ec0da7636 89 if (_x > 79){
Albutt 2:c25ec0da7636 90 _x = 79;
Albutt 2:c25ec0da7636 91 }
Albutt 2:c25ec0da7636 92 if (_y > 43){
Albutt 2:c25ec0da7636 93 _y = 43;
Albutt 2:c25ec0da7636 94 }
Albutt 2:c25ec0da7636 95 }
Albutt 4:b16b6078a432 96 int Character::get_x()
Albutt 4:b16b6078a432 97 {
Albutt 4:b16b6078a432 98 return _x;
Albutt 4:b16b6078a432 99
Albutt 4:b16b6078a432 100 }
Albutt 4:b16b6078a432 101 int Character::get_y()
Albutt 4:b16b6078a432 102 {
Albutt 4:b16b6078a432 103 return _y;
Albutt 4:b16b6078a432 104
Albutt 4:b16b6078a432 105 }
Albutt 4:b16b6078a432 106 int Character::get_direction(){
Albutt 4:b16b6078a432 107 return _dir;
Albutt 4:b16b6078a432 108 }