Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: Ball/Ball.cpp
- Revision:
- 5:ed71996c0534
- Parent:
- 4:08a0ff6668df
- Child:
- 8:5ede90f99a27
--- a/Ball/Ball.cpp Sat May 16 13:10:01 2020 +0000 +++ b/Ball/Ball.cpp Sat May 16 14:38:22 2020 +0000 @@ -1,109 +1,106 @@ #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}}, + { + { 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() { - - } +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); +} -Ball::~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;} + else if (i == 6){kar = 1;} + else if (i == 8){kar = 2;} + printf("%d \n", i); + i++; + wait_ms(100); -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); + lcd.refresh(); } -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(); - } - } +} + void Ball::bounceBall(int x_pos, int y_pos, int height, int status, N5110 &lcd){ - _user_input_x = x_pos; - _user_input_y = y_pos; - _height = height; - _status = status; - int dir =-2; - if(_status){ - lcd.drawSprite(_user_input_x, _user_input_y,11,15,(int *)ball[0]); - if(_user_input_y <= (y_pos - _height)) { - dir = 3; //falls faster than rises up - } - else if(_user_input_y >= (y_pos)) { - dir = -2; - } - _user_input_y+= dir; - wait(0.1); - lcd.refresh(); - //clears background only in the area the ball is moving - lcd.drawRect(_user_input_x,(48-y_pos),13,(y_pos + _height),FILL_WHITE); - } + _user_input_x = x_pos; + _user_input_y = y_pos; + _height = height; + _status = status; + int dir = -2; + if (_status){ + lcd.drawSprite(_user_input_x, _user_input_y, 11, 15, (int*) ball[0]); + if (_user_input_y <= (y_pos - _height)){dir = 3;} //falls faster + else if (_user_input_y >= (y_pos)){dir = -2;} + _user_input_y += dir; + wait(0.1); + lcd.refresh(); + //clears background only in the area the ball is moving + lcd.drawRect(_user_input_x, (48 - y_pos), 13, (y_pos + _height), FILL_WHITE); } -void Ball::set_status(bool status) { - _status = status; - } +} + +void Ball::set_status(bool status){_status = status;} + int Ball::get_status() { - int val = _status; - return val; - } \ No newline at end of file + int val = _status; + return val; +} \ No newline at end of file