Uses accompanying Basket, Objects and Fruit libraries to create Fruit Basket game. If an object is caught, points are added; if an object in missed, a 'life' is lost.
Dependents: Game_Controller_Project
Diff: Catch_Model.cpp
- Revision:
- 3:fc9133faec7a
- Parent:
- 2:8410e09b77aa
- Child:
- 4:84e29254b988
diff -r 8410e09b77aa -r fc9133faec7a Catch_Model.cpp --- a/Catch_Model.cpp Sat Mar 18 14:06:17 2017 +0000 +++ b/Catch_Model.cpp Tue Mar 21 11:12:18 2017 +0000 @@ -27,8 +27,13 @@ _mag = pad.get_mag(); } -void Catch_Model::update(Gamepad &pad) +void Catch_Model::update(N5110 &lcd, Gamepad &pad) { + check_basket_catch(lcd, pad); + check_basket_miss(lcd, pad); + + print_score(lcd); + _basket.Basket_move(_d, _mag); _objects.Objects_move(); } @@ -39,12 +44,46 @@ _objects.Objects_draw(lcd); } -void Catch_Model::check_basket_catch(N5110 &lcd) +void Catch_Model::check_basket_catch(N5110 &lcd, Gamepad &pad) { + int b_x_pos = _basket.get_Basket_x(); + int b_y_pos = _basket.get_Basket_y(); + int o_x_pos = _objects.get_Objects_x(); + int o_y_pos = _objects.get_Objects_y(); + if( + (o_y_pos >= b_y_pos) && + (o_x_pos > b_x_pos) && + (o_x_pos <= (b_x_pos + 5)) + ) { + _objects.Objects_undraw(lcd); + _basket.Basket_score(); + _objects.Objects_init(_objects_speed); + } } -void Catch_Model::check_basket_miss(N5110 &lcd) +void Catch_Model::check_basket_miss(N5110 &lcd, Gamepad &pad) { + int b_x_pos = _basket.get_Basket_x(); + int b_y_pos = _basket.get_Basket_y(); + int o_x_pos = _objects.get_Objects_x(); + int o_y_pos = _objects.get_Objects_y(); + + if (o_y_pos > b_y_pos) { + _objects.Objects_undraw(lcd); + _objects.Objects_init(_objects_speed); + } +} + +void Catch_Model::print_score(N5110 &lcd) +{ + char buffer[14]; -} \ No newline at end of file + int score = _basket.get_Basket_score(); + int print_score = sprintf(buffer, "SCORE: %2d", score); + if (print_score <= 14) { + lcd.printString(buffer,0,0); + lcd.refresh(); + } +} + \ No newline at end of file