ELEC2645 (2018/19) / Mbed 2 deprecated el17m2h_public

Dependencies:   mbed

Floors/Floors.cpp

Committer:
el17m2h
Date:
2019-04-23
Revision:
15:4efa04a6a376
Parent:
14:529f798adae4
Child:
19:5a7b0cdf013b

File content as of revision 15:4efa04a6a376:

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

void Floors::init(int y, int width, int height){
    _height = height;
    _width = width;
//  x-coordinate initially random: screen =84 (visible to 84-FLOORS_WIDTH): 0 left, 70 right
    int _array[] = {0,1,2,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,71,72,73,74}; 
    // 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
    _doodler_pos_y = doodler_pos_y;
    if (_position.y > 48 ){ 
    _position.y = 0;   
    _position.x = rand()% 74;
    }
    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;
}