Library that draws a basket on a Nokia N5110 LCD display and allows it to be moved left/right on the display using buttons or a joystick.

Dependents:   Game_Controller_Project

Committer:
Nathanj94
Date:
Fri Mar 31 13:42:55 2017 +0000
Revision:
6:2aec1ed2a75a
Parent:
5:32421eb42841
Child:
7:7b71dd93b2f8
Replaced add_score() with four similar methods adding different scores, to be called depending on which "fruit" is caught in the basket

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nathanj94 0:7e132fca6044 1 #include "Basket.h"
Nathanj94 0:7e132fca6044 2
Nathanj94 0:7e132fca6044 3 Basket::Basket()
Nathanj94 0:7e132fca6044 4 {
Nathanj94 0:7e132fca6044 5
Nathanj94 0:7e132fca6044 6 }
Nathanj94 0:7e132fca6044 7
Nathanj94 0:7e132fca6044 8 Basket::~Basket()
Nathanj94 0:7e132fca6044 9 {
Nathanj94 0:7e132fca6044 10
Nathanj94 0:7e132fca6044 11 }
Nathanj94 2:5d4f2c3f3c0a 12
Nathanj94 5:32421eb42841 13 void Basket::init(int y, int width)
Nathanj94 0:7e132fca6044 14 {
Nathanj94 5:32421eb42841 15 y_ref = y;
Nathanj94 5:32421eb42841 16 x_ref = WIDTH/2 - width/2;
Nathanj94 0:7e132fca6044 17 basket_width = width;
Nathanj94 5:32421eb42841 18 score = 0;
Nathanj94 5:32421eb42841 19 }
Nathanj94 5:32421eb42841 20
Nathanj94 5:32421eb42841 21 void Basket::draw(N5110 &lcd)
Nathanj94 5:32421eb42841 22 {
Nathanj94 5:32421eb42841 23 lcd.drawRect(x_ref,y_ref, 1, 2, 0);
Nathanj94 5:32421eb42841 24 lcd.drawRect(x_ref + 1, y_ref + 2,1,2,0);
Nathanj94 5:32421eb42841 25 lcd.setPixel(x_ref + 2, y_ref + 4);
Nathanj94 5:32421eb42841 26 lcd.drawRect(x_ref + 2, y_ref + 5, basket_width - 4, 1, 0);
Nathanj94 5:32421eb42841 27 lcd.setPixel(x_ref + 9, y_ref + 4);
Nathanj94 5:32421eb42841 28 lcd.drawRect(x_ref + 10, y_ref + 2, 1, 2, 0);
Nathanj94 5:32421eb42841 29 lcd.drawRect(x_ref + 11, y_ref, 1, 2, 0);
Nathanj94 0:7e132fca6044 30 }
Nathanj94 0:7e132fca6044 31
Nathanj94 5:32421eb42841 32 void Basket::move(Direction d, float mag, Gamepad &pad)
Nathanj94 0:7e132fca6044 33 {
Nathanj94 5:32421eb42841 34 stick_speed = int(mag*8.0f);
Nathanj94 0:7e132fca6044 35
Nathanj94 2:5d4f2c3f3c0a 36 if (d == E) {
Nathanj94 5:32421eb42841 37 x_ref += stick_speed;
Nathanj94 2:5d4f2c3f3c0a 38 } else if (d == W) {
Nathanj94 5:32421eb42841 39 x_ref -= stick_speed;
Nathanj94 0:7e132fca6044 40 }
Nathanj94 0:7e132fca6044 41
Nathanj94 5:32421eb42841 42 bumper_speed = 5;
Nathanj94 5:32421eb42841 43
Nathanj94 5:32421eb42841 44 if (pad.check_event(Gamepad::R_PRESSED)) {
Nathanj94 5:32421eb42841 45 x_ref += bumper_speed;
Nathanj94 5:32421eb42841 46 } else if (pad.check_event(Gamepad::L_PRESSED)) {
Nathanj94 5:32421eb42841 47 x_ref -= bumper_speed;
Nathanj94 0:7e132fca6044 48 }
Nathanj94 5:32421eb42841 49
Nathanj94 5:32421eb42841 50 if (x_ref < 1) {
Nathanj94 5:32421eb42841 51 x_ref = 1;
Nathanj94 5:32421eb42841 52 }
Nathanj94 5:32421eb42841 53 if (x_ref > WIDTH - basket_width - 1) {
Nathanj94 5:32421eb42841 54 x_ref = WIDTH - basket_width - 1;
Nathanj94 0:7e132fca6044 55 }
Nathanj94 0:7e132fca6044 56 }
Nathanj94 0:7e132fca6044 57
Nathanj94 6:2aec1ed2a75a 58 void Basket::add_score_1()
Nathanj94 0:7e132fca6044 59 {
Nathanj94 5:32421eb42841 60 score++;
Nathanj94 0:7e132fca6044 61 }
Nathanj94 0:7e132fca6044 62
Nathanj94 6:2aec1ed2a75a 63 void Basket::add_score_2()
Nathanj94 6:2aec1ed2a75a 64 {
Nathanj94 6:2aec1ed2a75a 65 score = score + 2;
Nathanj94 6:2aec1ed2a75a 66 }
Nathanj94 6:2aec1ed2a75a 67
Nathanj94 6:2aec1ed2a75a 68 void Basket::add_score_5()
Nathanj94 6:2aec1ed2a75a 69 {
Nathanj94 6:2aec1ed2a75a 70 score = score + 5;
Nathanj94 6:2aec1ed2a75a 71 }
Nathanj94 6:2aec1ed2a75a 72
Nathanj94 6:2aec1ed2a75a 73 void Basket::add_score_10()
Nathanj94 6:2aec1ed2a75a 74 {
Nathanj94 6:2aec1ed2a75a 75 score = score + 10;
Nathanj94 6:2aec1ed2a75a 76 }
Nathanj94 6:2aec1ed2a75a 77
Nathanj94 5:32421eb42841 78 int Basket::get_score()
Nathanj94 0:7e132fca6044 79 {
Nathanj94 5:32421eb42841 80 return score;
Nathanj94 3:d8deea6454df 81 }
Nathanj94 3:d8deea6454df 82
Nathanj94 5:32421eb42841 83 int Basket::get_x()
Nathanj94 4:4ce558075c32 84 {
Nathanj94 5:32421eb42841 85 return x_ref;
Nathanj94 4:4ce558075c32 86 }
Nathanj94 4:4ce558075c32 87
Nathanj94 5:32421eb42841 88 int Basket::get_y()
Nathanj94 3:d8deea6454df 89 {
Nathanj94 5:32421eb42841 90 return y_ref;
Nathanj94 2:5d4f2c3f3c0a 91 }