ELEC2645 (2018/19) / Mbed 2 deprecated el17m2h_public

Dependencies:   mbed

Floors/Floors.cpp

Committer:
el17m2h
Date:
2019-04-25
Revision:
19:5a7b0cdf013b
Parent:
15:4efa04a6a376
Child:
20:a359092079b0

File content as of revision 19:5a7b0cdf013b:

#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 left, 70 right
    int _array[] = {3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70}; 
    // excluding centre so doodler falls to the floor at bottom
    _position.x = _array[rand()%(sizeof(_array) / sizeof *_array)];
    _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 (2-81 & 10 - 45)
    _doodler_pos_y = doodler_pos_y;
    if (_position.y > 43 ){ 
    _position.y = 10;   
    _position.x = 2 + (rand()% 68);
    }
    if ( _doodler_pos_y < 25){ // shift floors once doodler reaches over halfway the screen
        _position.y  += 1; 
    }
}

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;
}