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
Ball/Ball.cpp
- Committer:
- KaifK
- Date:
- 2020-05-16
- Revision:
- 4:08a0ff6668df
- Parent:
- 3:f86c1cf90d0d
- Child:
- 5:ed71996c0534
File content as of revision 4:08a0ff6668df:
#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(); } } 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); } } void Ball::set_status(bool status) { _status = status; } int Ball::get_status() { int val = _status; return val; }