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:
Tue Mar 14 10:47:43 2017 +0000
Revision:
1:5e564d218751
Parent:
0:7e132fca6044
Child:
2:5d4f2c3f3c0a
Basket.h complete with documentation
; Basket.cpp complete with most documentation finished
; Functionality tested, the basket can be moved across the screen with implemented boundary conditions to keep it on the screen

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 1:5e564d218751 12 /** Basket_init
Nathanj94 1:5e564d218751 13 *
Nathanj94 1:5e564d218751 14 * initialise the basket with a y-coordinate and width
Nathanj94 1:5e564d218751 15 * by default the y-coordinate will be 41 and the width
Nathanj94 1:5e564d218751 16 * is 12 pixels but this could be altered by
Nathanj94 1:5e564d218751 17 * difficulty settings
Nathanj94 1:5e564d218751 18 *
Nathanj94 1:5e564d218751 19 * @param y - column number (0 to 47)
Nathanj94 1:5e564d218751 20 * @param width - basket width (0 to 83)
Nathanj94 1:5e564d218751 21 *
Nathanj94 1:5e564d218751 22 */
Nathanj94 0:7e132fca6044 23 void Basket::Basket_init(int y, int width)
Nathanj94 0:7e132fca6044 24 {
Nathanj94 0:7e132fca6044 25 basket_y = y;
Nathanj94 0:7e132fca6044 26 basket_x = WIDTH/2 - width/2;
Nathanj94 0:7e132fca6044 27 basket_width = width;
Nathanj94 0:7e132fca6044 28 basket_speed = 1;
Nathanj94 0:7e132fca6044 29 basket_score = 0;
Nathanj94 0:7e132fca6044 30 }
Nathanj94 0:7e132fca6044 31
Nathanj94 1:5e564d218751 32 /** Basket_draw
Nathanj94 1:5e564d218751 33 *
Nathanj94 1:5e564d218751 34 * draw the basket on the lcd using x and y parameters set in Basket_init
Nathanj94 1:5e564d218751 35 *
Nathanj94 1:5e564d218751 36 * @param N5110 - lcd display
Nathanj94 1:5e564d218751 37 *
Nathanj94 1:5e564d218751 38 */
Nathanj94 0:7e132fca6044 39 void Basket::Basket_draw(N5110 &lcd)
Nathanj94 0:7e132fca6044 40 {
Nathanj94 0:7e132fca6044 41 lcd.drawRect(basket_x,basket_y, 1, 2, 0);
Nathanj94 0:7e132fca6044 42 lcd.drawRect(basket_x + 1, basket_y + 2,1,2,0);
Nathanj94 0:7e132fca6044 43 lcd.setPixel(basket_x + 2, basket_y + 4);
Nathanj94 0:7e132fca6044 44 lcd.drawRect(basket_x + 2, basket_y + 5, basket_width - 4, 1, 0);
Nathanj94 0:7e132fca6044 45 lcd.setPixel(basket_x + 9, basket_y + 4);
Nathanj94 0:7e132fca6044 46 lcd.drawRect(basket_x + 10, basket_y + 2, 1, 2, 0);
Nathanj94 0:7e132fca6044 47 lcd.drawRect(basket_x + 11, basket_y, 1, 2, 0);
Nathanj94 0:7e132fca6044 48 }
Nathanj94 0:7e132fca6044 49
Nathanj94 1:5e564d218751 50 /** Basket_move
Nathanj94 1:5e564d218751 51 *
Nathanj94 1:5e564d218751 52 * move the basket left and right at a set y-coordinate
Nathanj94 1:5e564d218751 53 * using the joystick or L/R buttons
Nathanj94 1:5e564d218751 54 *
Nathanj94 1:5e564d218751 55 * @param d - joystick direction (N,NE,E,SE,S,SW,W,NW)
Nathanj94 1:5e564d218751 56 * @param mag - joystick directional magnitude (0 to 1)
Nathanj94 1:5e564d218751 57 * @param pad - call the Gamepad class to interact w/ buttons
Nathanj94 1:5e564d218751 58 *
Nathanj94 1:5e564d218751 59 */
Nathanj94 0:7e132fca6044 60 void Basket::Basket_move(Direction d, float mag, Gamepad &pad)
Nathanj94 0:7e132fca6044 61 {
Nathanj94 0:7e132fca6044 62 basket_speed = int(mag*5.0f);
Nathanj94 0:7e132fca6044 63
Nathanj94 0:7e132fca6044 64 if (d == E || pad.check_event(Gamepad::R_PRESSED)) {
Nathanj94 0:7e132fca6044 65 basket_x += basket_speed;
Nathanj94 0:7e132fca6044 66 } else if (d == W || pad.check_event(Gamepad::L_PRESSED)) {
Nathanj94 0:7e132fca6044 67 basket_x -= basket_speed;
Nathanj94 0:7e132fca6044 68 }
Nathanj94 0:7e132fca6044 69
Nathanj94 0:7e132fca6044 70 if (basket_x < 1) {
Nathanj94 0:7e132fca6044 71 basket_x = 1;
Nathanj94 0:7e132fca6044 72 }
Nathanj94 0:7e132fca6044 73 if (basket_x > WIDTH - basket_width - 1) {
Nathanj94 0:7e132fca6044 74 basket_x = WIDTH - basket_width - 1;
Nathanj94 0:7e132fca6044 75 }
Nathanj94 0:7e132fca6044 76 }
Nathanj94 0:7e132fca6044 77
Nathanj94 1:5e564d218751 78 /** Basket_score
Nathanj94 1:5e564d218751 79 *
Nathanj94 1:5e564d218751 80 * set score
Nathanj94 1:5e564d218751 81 *
Nathanj94 1:5e564d218751 82 */
Nathanj94 0:7e132fca6044 83 void Basket::Basket_score()
Nathanj94 0:7e132fca6044 84 {
Nathanj94 0:7e132fca6044 85 basket_score++;
Nathanj94 0:7e132fca6044 86 }
Nathanj94 0:7e132fca6044 87
Nathanj94 1:5e564d218751 88 /** get_Basket_score
Nathanj94 1:5e564d218751 89 *
Nathanj94 1:5e564d218751 90 * return score
Nathanj94 1:5e564d218751 91 *
Nathanj94 1:5e564d218751 92 */
Nathanj94 0:7e132fca6044 93 int Basket::get_Basket_score()
Nathanj94 0:7e132fca6044 94 {
Nathanj94 0:7e132fca6044 95 return basket_score;
Nathanj94 0:7e132fca6044 96 }
Nathanj94 0:7e132fca6044 97 /*
Nathanj94 0:7e132fca6044 98 Vector2D Basket::Basket_position()
Nathanj94 0:7e132fca6044 99 {
Nathanj94 0:7e132fca6044 100 Vector2D pos = (basket_x,basket_y);
Nathanj94 0:7e132fca6044 101 return pos;
Nathanj94 0:7e132fca6044 102 }
Nathanj94 0:7e132fca6044 103 */