Yang Zhenye 201199680

Dependencies:   mbed

RooneyEngine/RooneyEngine.cpp

Committer:
yangzhenye
Date:
2020-05-14
Revision:
5:fcad75e9b9e1
Parent:
4:eb8dca1dc341
Child:
7:a69ae964412c

File content as of revision 5:fcad75e9b9e1:

/* 
ELEC2645 Embedded Systems Project
School of Electronic & Electrical Engineering
University of Leeds
2019/20

Name:Yang Zhenye
Username:el17zy
Student ID Number:201199680
Date:2020/5/12
*/

#include "RonneyEngine.h"


RooneyEngine::RooneyEngine(){}
RooneyEngine::~RooneyEngine(){}
void RooneyEngine::init() {
     reset();
     _start_flag = true;
     }
     
void RooneyEngine::reset() {
     _player_x=38;
     _player_y=5;
     _collisicon_flag = false;
     _player_score = 0;
     _x = WIDTH/2 -  _size/2;
     _y = HEIGHT/2 - _size/2;
     }

void RonneyEngine::check_reset(N5110 &lcd, Gamepad &gamepad) {
 if(get_reset_flag()){
     gamepad.leds_on();
     lcd.clear();
     for (int i = 0; i<60; i++) {
         lcd.printString("lose the game", 0, 2);
         lcd.printString("sccore:", 0, 4);
         lcd,refresh();
         wait(0.00001);
         sprintf(buffer,"%2d",_player_score); 
         lcd.printString(buffer,16,4);
         reset();
         }
         }

void RooneyEngine::check_start(N5110 &lcd, Gamepad &gamepad) {
     if(_start_flag == true) { 
     check_reset(lcd, gamepad);} 
    _start_flag = get_start_flag(); 
    }
    
void RooneyEngine::check_collision(Gamepad &gamepad) { 
    if ((_player_x == _x() - 2) && (_player_y == _y() - 5)) {  
    _collision_flag = true;
    _player_score++;
    }

void RooneyEngine::get_score() {
    return _player_score;
    }
    
void RooneyEngine::get_sprite() {
        lcd.drawLine(unsigned int const x0,
                     unsigned int const y0,
                     unsigned int const x1,
                     unsigned int const y1,
                     FullBlack);
        lcd.drawSprite(_player_x, _player_y, 5, 10, (int *)get_form(ronnybody));
        lcd.drawRect(_x,_y,_size,_size,FILL_BLACK);
        }

void RooneyEngine::update_lcd(N5110 &lcd) {
        get_sprite();
        sprintf(buffer,"%2d",_player_score);
        lcd.printString("score",0,0);
        lcd.printString(buffer,30,0); 
        }

void RooneyEngine::get_ronney_x(Gamepad &gamepad) {
     _speed=speed;
     if (joy_x < float(-0.5){ 
     _speed=-0.5;
     _player_x=38+_speed;
     else if (x<=0){
         _speed = 0
         }
     }
     if (joy_x > float(0.5){ 
     _speed=0.5;
     _player_x=38+_speed;
     else if (x>=80){
         _speed = 0
         }
        }
        
bool RooneyEngine::get_reset_flag() {
        return _reset_flag;
        }

bool RooneyEngine::get_start_flag() {
        return _start_flag;
        }        
        
void RooneyEngine::run_engine(N5110 &lcd, Gamepad &gamepad) {
    init();
    reset();
    check_reset(N5110 &lcd, Gamepad &gamepad);
    check_start(N5110 &lcd, Gamepad &gamepad);
    check_collision(Gamepad &gamepad);
    _player_score=get_score();
    get_sprite();
    update_lcd(N5110 &lcd);
    get_reset_flag();
    get_start_flag();
    get_rooney_x(Gamepad &gamepad);
    }