ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Skateboarder/Stakeboarder.cpp

Committer:
lewisgw
Date:
2019-03-20
Revision:
7:bbc2b75c1418
Parent:
6:8741d2011692
Child:
8:5327418f823a

File content as of revision 7:bbc2b75c1418:

#include "Skateboarder.h"

int skate_right[17][10] =   {
    
    { 0,0,0,1,1,1,0,0,0,0 },
    { 0,0,0,1,1,1,1,0,0,0 },
    { 0,1,1,1,1,1,1,0,0,0 },
    { 0,0,0,1,0,1,1,0,0,0 },
    { 0,0,0,1,1,1,0,0,0,0 },
    { 0,0,0,1,1,0,0,0,0,0 },
    { 0,0,0,1,1,0,0,0,0,0 },
    { 0,1,1,1,1,1,1,1,0,0 },
    { 1,1,0,1,1,0,0,1,1,0 },
    { 1,0,0,1,1,0,0,0,0,0 },
    { 0,0,0,1,1,0,0,0,0,0 },
    { 0,0,0,1,1,0,0,0,0,0 },
    { 0,0,0,1,0,1,0,0,0,0 },
    { 0,0,0,1,0,0,1,0,0,0 },
    { 1,0,0,1,0,0,0,1,0,1 },
    { 0,1,1,1,1,1,1,1,1,0 },
    { 0,0,1,0,0,0,0,1,0,0 },
    
    
};

int skate_left[17][10] =   {
    
    { 0,0,0,0,1,1,1,0,0,0 },
    { 0,0,0,1,1,1,1,0,0,0 },
    { 0,0,0,1,1,1,1,1,1,0 },
    { 0,0,0,1,1,0,1,0,0,0 },
    { 0,0,0,0,1,1,1,0,0,0 },
    { 0,0,0,0,0,1,1,0,0,0 },
    { 0,0,0,0,0,1,1,1,0,0 },
    { 0,1,1,1,1,1,1,1,0,0 },
    { 0,0,0,1,1,1,1,1,1,0 },
    { 0,0,0,0,1,1,0,0,1,0 },
    { 0,0,0,0,1,1,0,0,0,1 },
    { 0,0,0,0,1,1,0,0,0,0 },
    { 0,0,0,1,0,1,0,0,0,0 },
    { 0,0,1,0,0,1,0,0,0,0 },
    { 1,1,0,0,0,1,0,0,0,1 },
    { 0,1,1,1,1,1,1,1,1,0 },
    { 0,0,0,1,0,0,0,0,1,0 },
    
    
};

int skate_stand_left[17][10] =   {
    
    { 0,0,0,0,1,1,0,0,0,0 },
    { 0,0,0,1,1,1,1,0,0,0 },
    { 0,0,0,1,1,1,1,1,1,0 },
    { 0,0,0,1,0,0,1,0,0,0 },
    { 0,0,0,1,1,1,1,0,0,0 },
    { 0,0,0,0,1,1,0,0,0,0 },
    { 0,0,0,1,1,1,1,0,0,0 },
    { 0,0,1,1,1,1,0,1,0,0 },
    { 1,1,0,1,1,1,0,1,0,0 },
    { 0,0,0,1,1,1,0,0,0,0 },
    { 0,0,1,1,1,1,0,0,0,0 },
    { 1,0,1,0,0,1,0,0,0,0 },
    { 1,1,0,0,0,1,0,0,0,0 },
    { 0,1,0,0,0,1,0,0,0,0 },
    { 1,0,1,0,0,1,0,0,0,0 },
    { 0,0,0,1,0,1,0,0,0,0 },
    { 0,0,1,0,1,1,1,0,0,0 },
    
    
};

int skate_stand_right[17][10] =   {
    
    { 0,0,0,1,1,0,0,0,0,0 },
    { 0,0,1,1,1,1,0,0,0,0 },
    { 1,1,1,1,1,1,0,0,0,0 },
    { 0,0,1,0,0,1,0,0,0,0 },
    { 0,0,1,1,1,1,0,0,0,0 },
    { 0,0,0,1,1,0,0,0,0,0 },
    { 0,0,1,1,1,1,0,0,0,0 },
    { 0,1,1,1,1,0,1,0,0,0 },
    { 1,0,1,1,1,0,0,1,0,0 },
    { 1,0,1,1,1,0,0,0,0,0 },
    { 0,0,1,1,1,1,1,0,0,0 },
    { 0,0,1,0,0,0,1,0,1,0 },
    { 0,0,1,0,0,0,1,1,0,0 },
    { 0,0,1,0,0,0,1,0,1,0 },
    { 0,0,1,0,0,1,0,0,0,0 },
    { 0,0,1,0,1,0,0,0,0,0 },
    { 0,1,1,1,0,1,0,0,0,0 },
    
    
};

int skate_duck_right[17][10] =   {
    
    { 0,0,0,0,0,0,0,0,0,0 },
    { 0,0,0,0,0,0,0,0,0,0 },
    { 0,0,0,0,0,0,0,0,0,0 },
    { 0,0,0,0,0,0,0,0,0,0 },
    { 0,0,0,0,1,1,0,0,0,0 },
    { 0,0,0,1,1,1,1,0,0,0 },
    { 0,1,1,1,1,1,1,0,0,0 },
    { 0,0,0,1,0,0,1,0,0,0 },
    { 0,0,0,0,1,1,0,0,0,0 },
    { 0,0,1,1,1,1,1,1,0,0 },
    { 0,1,0,1,1,1,1,0,1,1 },
    { 1,0,0,1,1,1,1,0,0,0 },
    { 0,0,0,1,1,1,1,0,0,0 },
    { 0,0,1,1,0,0,1,1,0,0 },
    { 1,0,1,1,0,0,1,1,0,1 },
    { 0,1,1,1,1,1,1,1,1,0 },
    { 0,0,1,0,0,0,0,1,0,0 },
    
    
};

int skate_duck_left[17][10] =   {
    
    { 0,0,0,0,0,0,0,0,0,0 },
    { 0,0,0,0,0,0,0,0,0,0 },
    { 0,0,0,0,0,0,0,0,0,0 },
    { 0,0,0,0,0,0,0,0,0,0 },
    { 0,0,0,0,1,1,0,0,0,0 },
    { 0,0,0,1,1,1,1,0,0,0 },
    { 0,0,0,1,1,1,1,1,1,0 },
    { 0,0,0,1,0,0,1,0,0,0 },
    { 0,0,0,0,1,1,0,0,0,0 },
    { 0,0,1,1,1,1,1,1,0,0 },
    { 1,1,0,1,1,1,1,0,1,0 },
    { 0,0,0,1,1,1,1,0,0,1 },
    { 0,0,0,1,1,1,1,0,0,0 },
    { 0,0,1,1,0,0,1,1,0,0 },
    { 1,0,1,1,0,0,1,1,0,1 },
    { 0,1,1,1,1,1,1,1,1,0 },
    { 0,0,1,0,0,0,0,1,0,0 },
    
    
};

Skateboarder::Skateboarder(){} 

Skateboarder::~Skateboarder(){}

void Skateboarder::set_x_position(float joy_x, int moving_counter, Skate_Direction direction, float joy_y) {
    _skate_direction = direction;
    _moving_counter = moving_counter;
    if(joy_x > float(0.1)){
    _moving_counter = _moving_counter++;
    _skate_direction = Right;
    _sprite_value = Skate_right;
    } else if(joy_x < float(-0.1)) {
    _moving_counter = _moving_counter--;
    _skate_direction = Left;
    _sprite_value = Skate_left; 
    } else if (_skate_direction == Left){
    _sprite_value = Stand_left;
    } else { 
    _sprite_value = Stand_right;
    }      
    _x = 40 + 0.4*_moving_counter;
    if(joy_y < float(-0.1) && _skate_direction == Right){
    _sprite_value = Skate_duck_right;         
    } else if(joy_y < float(-0.1) && _skate_direction == Left){
    _sprite_value = Skate_duck_left;        
    }
    }
    
void Skateboarder::set_y_position(bool jump, int jump_counter, int level) {
    
    _jump_counter = jump_counter;
    _level = level;
   
    if(jump && _jump_counter < 10) {
    _jump_counter = 40;
    }
    if(_jump_counter !=0){
    _jump_counter--;        
    }
    _y = 23 - 0.5*_jump_counter;
    /*
    if(_level == 0){
    _y = 23 - 0.5*_jump_counter;
    }  
    else {
    _y = 5 - 0.25*_jump_counter;        
    }
    */
    }



int Skateboarder::get_x_position(){
    return _x;
    }

int Skateboarder::get_moving_counter(){
    return _moving_counter;
    }
  
int Skateboarder::get_y_position(){
    return _y;
    }

int Skateboarder::get_jump_counter(){
    return _jump_counter;
    }

Skate_Direction Skateboarder::get_direction(){
    return _skate_direction;
    }
    
Sprite_value Skateboarder::get_sprite_value(){
    return _sprite_value;
    }   

int * Skateboarder::get_sprite(Sprite_value sprite){
    if(sprite == Skate_right){
    return *skate_right;
    } else if(sprite == Skate_left){
    return *skate_left;
    } else if(sprite == Stand_left){
    return *skate_stand_left;
    } else if(sprite == Skate_duck_right){
    return *skate_duck_right;
    } else if(sprite == Skate_duck_left){
    return *skate_duck_left;
    } else {
    return *skate_stand_right;
    }
}