XJEL2645 (19/20) / Mbed 2 deprecated Rooneypenalty

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers RooneyEngine.cpp Source File

RooneyEngine.cpp

00001 /* 
00002 ELEC2645 Embedded Systems Project
00003 School of Electronic & Electrical Engineering
00004 University of Leeds
00005 2019/20
00006 
00007 Name:Yang Zhenye
00008 Username:el17zy
00009 Student ID Number:201199680
00010 Date:2020/5/12
00011 */
00012 
00013 #include "RonneyEngine.h"
00014 
00015 
00016 RooneyEngine::RooneyEngine(){}
00017 RooneyEngine::~RooneyEngine(){}
00018 void RooneyEngine::init() {
00019      reset();
00020      _start_flag = true;
00021      }
00022      
00023 void RooneyEngine::reset() {
00024      _player_x=38;
00025      _player_y=5;
00026      _collisicon_flag = false;
00027      _player_score = 0;
00028      _x = WIDTH/2 -  _size/2;
00029      _y = HEIGHT/2 - _size/2;
00030      }
00031 
00032 void RonneyEngine::check_reset(N5110 &lcd, Gamepad &gamepad) {
00033  if(get_reset_flag()){
00034      gamepad.leds_on();
00035      lcd.clear();
00036      for (int i = 0; i<60; i++) {
00037          lcd.printString("lose the game", 0, 2);
00038          lcd.printString("sccore:", 0, 4);
00039          lcd,refresh();
00040          wait(0.00001);
00041          sprintf(buffer,"%2d",_player_score); 
00042          lcd.printString(buffer,16,4);
00043          reset();
00044          }
00045          }
00046 
00047 void RooneyEngine::check_start(N5110 &lcd, Gamepad &gamepad) {
00048      if(_start_flag == true) { 
00049      check_reset(lcd, gamepad);} 
00050     _start_flag = get_start_flag(); 
00051     }
00052     
00053 void RooneyEngine::check_collision(Gamepad &gamepad) { 
00054     if ((_player_x == _x() - 2) && (_player_y == _y() - 5)) {  
00055     _collision_flag = true;
00056     _player_score++;
00057     }
00058 
00059 void RooneyEngine::get_score() {
00060     return _player_score;
00061     }
00062     
00063 void RooneyEngine::get_sprite() {
00064         lcd.drawLine(unsigned int const x0,
00065                      unsigned int const y0,
00066                      unsigned int const x1,
00067                      unsigned int const y1,
00068                      FullBlack);
00069         lcd.drawSprite(_player_x, _player_y, 5, 10, (int *)get_form(ronnybody));
00070         lcd.drawRect(_x,_y,_size,_size,FILL_BLACK);
00071         }
00072 
00073 void RooneyEngine::update_lcd(N5110 &lcd) {
00074         get_sprite();
00075         sprintf(buffer,"%2d",_player_score);
00076         lcd.printString("score",0,0);
00077         lcd.printString(buffer,30,0); 
00078         }
00079 
00080 void RooneyEngine::get_ronney_x(Gamepad &gamepad) {
00081      _speed=speed;
00082      if (joy_x < float(-0.5){ 
00083      _speed=-0.5;
00084      _player_x=38+_speed;
00085      else if (x<=0){
00086          _speed = 0
00087          }
00088      }
00089      if (joy_x > float(0.5){ 
00090      _speed=0.5;
00091      _player_x=38+_speed;
00092      else if (x>=80){
00093          _speed = 0
00094          }
00095         }
00096         
00097 bool RooneyEngine::get_reset_flag() {
00098         return _reset_flag;
00099         }
00100 
00101 bool RooneyEngine::get_start_flag() {
00102         return _start_flag;
00103         }        
00104         
00105 void RooneyEngine::run_engine(N5110 &lcd, Gamepad &gamepad) {
00106     init();
00107     reset();
00108     check_reset(N5110 &lcd, Gamepad &gamepad);
00109     check_start(N5110 &lcd, Gamepad &gamepad);
00110     check_collision(Gamepad &gamepad);
00111     _player_score=get_score();
00112     get_sprite();
00113     update_lcd(N5110 &lcd);
00114     get_reset_flag();
00115     get_start_flag();
00116     get_rooney_x(Gamepad &gamepad);
00117     }        
00118         
00119         
00120         
00121         
00122 
00123     
00124     
00125     
00126     
00127