ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_PROJECT_EL18KK

Dependencies:   mbed

Ball/Ball.cpp

Committer:
KaifK
Date:
2020-04-27
Revision:
3:f86c1cf90d0d
Parent:
2:21973e665a32
Child:
4:08a0ff6668df

File content as of revision 3:f86c1cf90d0d:

#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::setLocation(int x, int y,N5110 &lcd) {
        lcd.drawSprite(x,y,11,15,(int *)ball);
    }
void Ball::playShot(int user_input_x, int user_input_y,N5110 &lcd) {
        _user_input_x = user_input_x;
        _user_input_y = user_input_y;
        int i = 0;
        int kar = 0;
        while(_user_input_x < _ball_x || _user_input_y < _ball_y) {
                
                if(_user_input_x < _ball_x ) { _ball_x -=2.5;}
                else if(_user_input_x > _ball_x ) { _ball_x +=2.5;}
                
                if(_user_input_y < _ball_y ) { _ball_y -=2.5;}
                else if(_user_input_y > _ball_y ) { _ball_y +=2.5;}
                lcd.drawSprite(_ball_x,_ball_y,11,15,(int *)ball[kar]);
                             
                        if(i == 4) {kar = 0;}
                        if(i == 6) {kar = 1;}
                        if(i == 8) {kar = 2;}
                printf("%d \n",i);       
                i++;    
                wait_ms(100);
                
                lcd.refresh();                
            }
    }