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

Committer:
Nathanj94
Date:
Tue Mar 21 11:12:18 2017 +0000
Revision:
3:fc9133faec7a
Parent:
2:8410e09b77aa
Child:
4:84e29254b988
collision functions added to check for catch or miss, new objects fall at the end of each function and score is updated if the object is caught. Score is printed on the screen but it flickers so needs to be moved to a different function

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nathanj94 0:8d02400f792a 1 #include "Catch_Model.h"
Nathanj94 0:8d02400f792a 2
Nathanj94 0:8d02400f792a 3 Catch_Model::Catch_Model()
Nathanj94 0:8d02400f792a 4 {
Nathanj94 0:8d02400f792a 5
Nathanj94 0:8d02400f792a 6 }
Nathanj94 0:8d02400f792a 7
Nathanj94 0:8d02400f792a 8 Catch_Model::~Catch_Model()
Nathanj94 0:8d02400f792a 9 {
Nathanj94 0:8d02400f792a 10
Nathanj94 0:8d02400f792a 11 }
Nathanj94 0:8d02400f792a 12
Nathanj94 1:43fbcc3584d6 13 void Catch_Model::init(int basket_y, int basket_width, int objects_speed)
Nathanj94 0:8d02400f792a 14 {
Nathanj94 0:8d02400f792a 15 _basket_y = basket_y;
Nathanj94 0:8d02400f792a 16 _basket_width = basket_width;
Nathanj94 0:8d02400f792a 17
Nathanj94 1:43fbcc3584d6 18 _objects_speed = objects_speed;
Nathanj94 1:43fbcc3584d6 19
Nathanj94 0:8d02400f792a 20 _basket.Basket_init(_basket_y, _basket_width);
Nathanj94 1:43fbcc3584d6 21 _objects.Objects_init(_objects_speed);
Nathanj94 0:8d02400f792a 22 }
Nathanj94 0:8d02400f792a 23
Nathanj94 0:8d02400f792a 24 void Catch_Model::input(Gamepad &pad)
Nathanj94 0:8d02400f792a 25 {
Nathanj94 0:8d02400f792a 26 _d = pad.get_direction();
Nathanj94 0:8d02400f792a 27 _mag = pad.get_mag();
Nathanj94 0:8d02400f792a 28 }
Nathanj94 0:8d02400f792a 29
Nathanj94 3:fc9133faec7a 30 void Catch_Model::update(N5110 &lcd, Gamepad &pad)
Nathanj94 0:8d02400f792a 31 {
Nathanj94 3:fc9133faec7a 32 check_basket_catch(lcd, pad);
Nathanj94 3:fc9133faec7a 33 check_basket_miss(lcd, pad);
Nathanj94 3:fc9133faec7a 34
Nathanj94 3:fc9133faec7a 35 print_score(lcd);
Nathanj94 3:fc9133faec7a 36
Nathanj94 1:43fbcc3584d6 37 _basket.Basket_move(_d, _mag);
Nathanj94 1:43fbcc3584d6 38 _objects.Objects_move();
Nathanj94 0:8d02400f792a 39 }
Nathanj94 0:8d02400f792a 40
Nathanj94 0:8d02400f792a 41 void Catch_Model::draw(N5110 &lcd)
Nathanj94 0:8d02400f792a 42 {
Nathanj94 0:8d02400f792a 43 _basket.Basket_draw(lcd);
Nathanj94 1:43fbcc3584d6 44 _objects.Objects_draw(lcd);
Nathanj94 2:8410e09b77aa 45 }
Nathanj94 2:8410e09b77aa 46
Nathanj94 3:fc9133faec7a 47 void Catch_Model::check_basket_catch(N5110 &lcd, Gamepad &pad)
Nathanj94 2:8410e09b77aa 48 {
Nathanj94 3:fc9133faec7a 49 int b_x_pos = _basket.get_Basket_x();
Nathanj94 3:fc9133faec7a 50 int b_y_pos = _basket.get_Basket_y();
Nathanj94 3:fc9133faec7a 51 int o_x_pos = _objects.get_Objects_x();
Nathanj94 3:fc9133faec7a 52 int o_y_pos = _objects.get_Objects_y();
Nathanj94 2:8410e09b77aa 53
Nathanj94 3:fc9133faec7a 54 if(
Nathanj94 3:fc9133faec7a 55 (o_y_pos >= b_y_pos) &&
Nathanj94 3:fc9133faec7a 56 (o_x_pos > b_x_pos) &&
Nathanj94 3:fc9133faec7a 57 (o_x_pos <= (b_x_pos + 5))
Nathanj94 3:fc9133faec7a 58 ) {
Nathanj94 3:fc9133faec7a 59 _objects.Objects_undraw(lcd);
Nathanj94 3:fc9133faec7a 60 _basket.Basket_score();
Nathanj94 3:fc9133faec7a 61 _objects.Objects_init(_objects_speed);
Nathanj94 3:fc9133faec7a 62 }
Nathanj94 2:8410e09b77aa 63 }
Nathanj94 2:8410e09b77aa 64
Nathanj94 3:fc9133faec7a 65 void Catch_Model::check_basket_miss(N5110 &lcd, Gamepad &pad)
Nathanj94 2:8410e09b77aa 66 {
Nathanj94 3:fc9133faec7a 67 int b_x_pos = _basket.get_Basket_x();
Nathanj94 3:fc9133faec7a 68 int b_y_pos = _basket.get_Basket_y();
Nathanj94 3:fc9133faec7a 69 int o_x_pos = _objects.get_Objects_x();
Nathanj94 3:fc9133faec7a 70 int o_y_pos = _objects.get_Objects_y();
Nathanj94 3:fc9133faec7a 71
Nathanj94 3:fc9133faec7a 72 if (o_y_pos > b_y_pos) {
Nathanj94 3:fc9133faec7a 73 _objects.Objects_undraw(lcd);
Nathanj94 3:fc9133faec7a 74 _objects.Objects_init(_objects_speed);
Nathanj94 3:fc9133faec7a 75 }
Nathanj94 3:fc9133faec7a 76 }
Nathanj94 3:fc9133faec7a 77
Nathanj94 3:fc9133faec7a 78 void Catch_Model::print_score(N5110 &lcd)
Nathanj94 3:fc9133faec7a 79 {
Nathanj94 3:fc9133faec7a 80 char buffer[14];
Nathanj94 2:8410e09b77aa 81
Nathanj94 3:fc9133faec7a 82 int score = _basket.get_Basket_score();
Nathanj94 3:fc9133faec7a 83 int print_score = sprintf(buffer, "SCORE: %2d", score);
Nathanj94 3:fc9133faec7a 84 if (print_score <= 14) {
Nathanj94 3:fc9133faec7a 85 lcd.printString(buffer,0,0);
Nathanj94 3:fc9133faec7a 86 lcd.refresh();
Nathanj94 3:fc9133faec7a 87 }
Nathanj94 3:fc9133faec7a 88 }
Nathanj94 3:fc9133faec7a 89