ELEC2645 (2018/19) / Mbed 2 deprecated el17m2h_public

Dependencies:   mbed

Floors/Floors.cpp

Committer:
el17m2h
Date:
2019-05-06
Revision:
22:0d2ac98a8b48
Parent:
21:6b16ca9834e6
Child:
23:9be87557b89a

File content as of revision 22:0d2ac98a8b48:

#include "Floors.h"
Floors::Floors(){
}
Floors::~Floors(){
}

void Floors::init(int y, int width, int height){
    _height = height;
    _width = width;
//  x-coordinate initially random: 2-30 or 40-71 so doodler falls to bottom floor
    int decide = rand() % 2;
    if (decide == 0){ // right
        _position.x = 2 + (rand()% 28); 
    } else { // left
        _position.x = 40 + (rand()% 31); 
    }
    _position.y = y;
}

void Floors::draw(N5110 &lcd){
    lcd.drawRect(_position.x, _position.y, _width, _height, FILL_BLACK);
}

void Floors::update(float doodler_pos_y){
// when they leave the screen they will re-appear in random x-coordinate so that 10 floors are always on screen
 //rectangle (1-82 & 9 - 48 )
    _doodler_pos_y = doodler_pos_y;
    
    if (_position.y > 45 ){ 
    _position.y = 9;   
    _position.x = 1 + (rand()% 70); 
    place = rand()% 8;
    if (place == 2){ // 1/8 chance of placing an enemy
        _eny.init(_position.x, _position.y);
    }
    }
    if (_doodler_pos_y < 25){ // shift floors once doodler reaches over halfway the screen
        _position.y  += 1; 
        _eny.update(_position.x, _position.y);
    }
}

Vector2D Floors::get_position(){
    Vector2D p = {_position.x,_position.y};
    return p;
}

void Floors::set_position(Vector2D pos){
    _position.x = pos.x;
    _position.y = pos.y;
}