All there but errors need fixing

Dependencies:   mbed

TetrisGame/TetrisGame.cpp

Committer:
el18rs
Date:
2020-05-31
Revision:
4:7ddd287a5d28
Parent:
3:522c6f850e91
Child:
5:53e021832adc

File content as of revision 4:7ddd287a5d28:

#include "TetrisGame.h"

TetrisGame::TetrisGame()
{
    
}

TetrisGame::~TetrisGame()
{
    
}

void TetrisGame::init(int number, int x, int y, int speed)
{
    // initialise game parameters
    _number = blockArray[blocknumber];
    _x = x;
    _y = y;
    _speed = speed;
    
    _tetromino.init(_number, WIDTH/2 - 2, HEIGHT, _speed); // puts tetromino in middle SHOULD THIS INCLUDE ARRAY????
    
}


void TetrisGame::read_input(Gamepad &pad)
{
    _d = pad.get_direction();
    _mag = pad.get_mag();
}

void TetrisGame::draw(N5110 &lcd)
{
    // draw elements in lcd buffer 
    
    // board
    lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT);
    
    _tetromino.draw(lcd, _number);
    
    
}

void TetrisGame::update(Gamepad &pad)
{
    // check_score(pad);
    
    // _p1.update(_d,_mag);
    _tetromino.update(_d,_mag);
    
    check_wall_collision(pad);
    check_tetromino_collisions();
}


void TetrisGame::check_wall_collision(Gamepad &pad)
{
    Vector2D tetromino_pos = _tetromino.get_pos();
    Vector2D tetromino_velocity = _tetromino.get_velocity();
    
    // check if hit floor
    if (tetromino_pos.y + 4 >= (HEIGHT-1) ) {
        
        tetromino_pos.y = (HEIGHT-1) - 4;
        tetromino_velocity.y = 0;
        
        pad.tone(750.0,0.1);
        
        cancel_line(); // check if line full and cancel + drop down if it is 
                
        _tetromino.init(_number, WIDTH/2 - 2, HEIGHT, _speed); // drop new shame
        
        blocknumber ++;
        if (blocknumber > 4) {
            blocknumber = 0;
            }
    }
    // check if hit roof
    else if (tetromino_pos.y <= 1) {
        
        exit_game();
                
    }
    
    // SAVE OLD SCREEN AND DROP NEW TETROMINO???? //
 // update tetromino parameters??   
}