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
Basket.cpp@1:5e564d218751, 2017-03-14 (annotated)
- 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?
User | Revision | Line number | New 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 | */ |