ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_PROJECT_EL18KK

Dependencies:   mbed

Ball/Ball.cpp

Committer:
KaifK
Date:
2020-04-25
Revision:
2:21973e665a32
Child:
3:f86c1cf90d0d

File content as of revision 2:21973e665a32:

#include "Ball.h"

const int ball[3][11][15] = {
    {{0,0,0,0,0,1,1,1,1,1,0,0,0,0,0},
    {0,0,0,1,1,0,1,1,1,0,1,1,0,0,0},
    {0,0,1,0,0,0,0,1,0,0,0,0,1,0,0},
    {0,1,0,0,0,0,1,1,1,0,0,0,0,1,0},
    {0,1,1,0,0,1,1,1,1,1,0,0,1,1,0},
    {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
    {0,1,1,0,0,1,1,1,1,1,0,0,1,1,0},
    {0,1,0,0,0,0,1,1,1,0,0,0,0,1,0},
    {0,0,1,0,0,0,0,1,0,0,0,0,1,0,0},
    {0,0,0,1,1,0,1,1,1,0,1,1,0,0,0},
    {0,0,0,0,0,1,1,1,1,1,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,1,1,1,0,0,0,0,0},
    {0,0,0,0,1,0,0,1,0,0,1,0,0,0,0},
    {0,0,0,1,0,0,0,1,0,0,0,1,0,0,0},
    {0,0,1,1,0,0,1,1,1,0,0,1,1,0,0},
    {0,0,1,1,1,1,1,1,1,1,1,1,1,0,0},
    {0,0,1,1,0,0,1,1,1,0,0,1,1,0,0},
    {0,0,0,1,0,0,0,1,0,0,0,1,0,0,0},
    {0,0,0,0,1,0,1,1,1,0,1,0,0,0,0},
    {0,0,0,0,0,1,1,1,1,1,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,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,1,0,0,0,0,0,0},
    {0,0,0,0,0,1,0,1,0,1,0,0,0,0,0},
    {0,0,0,0,1,1,1,1,1,1,1,0,0,0,0},
    {0,0,0,0,0,1,0,1,0,1,0,0,0,0,0},
    {0,0,0,0,0,0,1,1,1,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,0,0,0,0,0,0,0}},
};

Ball::Ball() {
    
    }

Ball::~Ball() {
    
    }

void Ball::init(N5110 &lcd) {
        _ball_x = BALL_INIT_X;
        _ball_y = BALL_INIT_Y;
        lcd.drawSprite(_ball_x,_ball_y,11,15,(int *)ball);
    }
void Ball::set_location(int x, int y,N5110 &lcd) {
        lcd.drawSprite(x,y,11,15,(int *)ball);
    }
void Ball::play_shot_animation(int user_input_x, int user_input_y,N5110 &lcd) {
        _user_input_x = user_input_x;
        _user_input_y = user_input_y;
        int j = 0;
        
        while(_user_input_x != _ball_x || _user_input_y != _ball_y) {
                for(int i = 0; i < 12; i++ ) {
                if(_user_input_x < _ball_x ) { _ball_x --;}
                else if(_user_input_x > _ball_x ) { _ball_x ++;}
                
                if(_user_input_y < _ball_y ) { _ball_y --;}
                else if(_user_input_y > _ball_y ) { _ball_y ++;}
                lcd.drawSprite(_ball_x,_ball_y,11,15,(int *)ball[j]);
                
                
                        if(i == 4) {j = 0;}
                        if(i == 8) {j = 1;}
                        if(i == 12) {j = 2;}
                        break;
                    }
                wait_ms(50);
            }
    }