Player Library
Player.cpp@15:139ea93f06b8, 2017-05-04 (annotated)
- Committer:
- ll14c4p
- Date:
- Thu May 04 11:46:22 2017 +0000
- Revision:
- 15:139ea93f06b8
- Parent:
- 13:8a52aa715b32
Changed Starting Position
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ll14c4p | 1:933b7aa73bbc | 1 | #include "Player.h" |
ll14c4p | 0:a88279bdf8c0 | 2 | |
ll14c4p | 0:a88279bdf8c0 | 3 | Player::Player() |
ll14c4p | 0:a88279bdf8c0 | 4 | { |
ll14c4p | 0:a88279bdf8c0 | 5 | |
ll14c4p | 0:a88279bdf8c0 | 6 | } |
ll14c4p | 0:a88279bdf8c0 | 7 | |
ll14c4p | 0:a88279bdf8c0 | 8 | Player::~Player() |
ll14c4p | 0:a88279bdf8c0 | 9 | { |
ll14c4p | 0:a88279bdf8c0 | 10 | |
ll14c4p | 0:a88279bdf8c0 | 11 | } |
ll14c4p | 0:a88279bdf8c0 | 12 | |
ll14c4p | 12:1324d72d12a6 | 13 | //The Player Sprite. |
ll14c4p | 10:43b537436eb5 | 14 | int sprite[5][6] = { |
ll14c4p | 10:43b537436eb5 | 15 | {0,1,0,0,1,0}, |
ll14c4p | 10:43b537436eb5 | 16 | {1,1,0,0,1,1}, |
ll14c4p | 10:43b537436eb5 | 17 | {1,1,1,1,1,1}, |
ll14c4p | 10:43b537436eb5 | 18 | {1,1,1,1,1,1}, |
ll14c4p | 10:43b537436eb5 | 19 | {0,1,1,1,1,0}, |
ll14c4p | 1:933b7aa73bbc | 20 | }; |
ll14c4p | 1:933b7aa73bbc | 21 | |
ll14c4p | 12:1324d72d12a6 | 22 | int m = 0; //Variable used to allow a starting location for the player. |
ll14c4p | 6:79a9c37a0b80 | 23 | |
ll14c4p | 6:79a9c37a0b80 | 24 | |
ll14c4p | 11:1a8dc3242e13 | 25 | void Player::init() |
ll14c4p | 1:933b7aa73bbc | 26 | { |
ll14c4p | 6:79a9c37a0b80 | 27 | |
ll14c4p | 13:8a52aa715b32 | 28 | _speed = 0.15;// default speed |
ll14c4p | 1:933b7aa73bbc | 29 | |
ll14c4p | 1:933b7aa73bbc | 30 | } |
ll14c4p | 1:933b7aa73bbc | 31 | |
ll14c4p | 0:a88279bdf8c0 | 32 | |
ll14c4p | 0:a88279bdf8c0 | 33 | void Player::draw(N5110 &lcd) |
ll14c4p | 6:79a9c37a0b80 | 34 | { |
ll14c4p | 6:79a9c37a0b80 | 35 | if(m == 0){ |
ll14c4p | 12:1324d72d12a6 | 36 | _x = WIDTH/2 -3; //Spawns player sprite near the middle of the screen. |
ll14c4p | 15:139ea93f06b8 | 37 | _y = HEIGHT/2 +5; |
ll14c4p | 6:79a9c37a0b80 | 38 | m = m+1; |
ll14c4p | 6:79a9c37a0b80 | 39 | } |
ll14c4p | 8:4509ae53ca30 | 40 | //printf("SPRITE %d %d \n", _x, _y); |
ll14c4p | 12:1324d72d12a6 | 41 | lcd.drawSprite(_x,_y,5,6,(int *)sprite); //Function used to draw the sprite. |
ll14c4p | 1:933b7aa73bbc | 42 | } |
ll14c4p | 1:933b7aa73bbc | 43 | |
ll14c4p | 1:933b7aa73bbc | 44 | |
ll14c4p | 1:933b7aa73bbc | 45 | |
ll14c4p | 4:6d5ea29f83b0 | 46 | Vector2D Player::get_pos() |
ll14c4p | 4:6d5ea29f83b0 | 47 | { |
ll14c4p | 12:1324d72d12a6 | 48 | Vector2D playerpos = {_x,_y}; //Obtains the player position. |
ll14c4p | 9:002ea306683d | 49 | //printf("playerpos from player = %f %f \n", playerpos.x, playerpos.y); |
ll14c4p | 8:4509ae53ca30 | 50 | return playerpos; |
ll14c4p | 4:6d5ea29f83b0 | 51 | } |
ll14c4p | 4:6d5ea29f83b0 | 52 | |
ll14c4p | 4:6d5ea29f83b0 | 53 | |
ll14c4p | 4:6d5ea29f83b0 | 54 | |
ll14c4p | 4:6d5ea29f83b0 | 55 | |
ll14c4p | 4:6d5ea29f83b0 | 56 | |
ll14c4p | 1:933b7aa73bbc | 57 | |
ll14c4p | 1:933b7aa73bbc | 58 | |
ll14c4p | 1:933b7aa73bbc | 59 | void Player::update(Direction d,float mag) |
ll14c4p | 1:933b7aa73bbc | 60 | { |
ll14c4p | 13:8a52aa715b32 | 61 | _speed = int(mag*7.0f); //Speed changes depending on how much you push the joystick. |
ll14c4p | 1:933b7aa73bbc | 62 | |
ll14c4p | 1:933b7aa73bbc | 63 | |
ll14c4p | 1:933b7aa73bbc | 64 | // North is decrement as origin is at the top-left so decreasing moves up |
ll14c4p | 12:1324d72d12a6 | 65 | // Diagonal speeds are /2 to prevent player from going double the speed. |
ll14c4p | 1:933b7aa73bbc | 66 | if (d == N) { |
ll14c4p | 1:933b7aa73bbc | 67 | _y-=_speed; |
ll14c4p | 1:933b7aa73bbc | 68 | } |
ll14c4p | 1:933b7aa73bbc | 69 | if (d == S) { |
ll14c4p | 1:933b7aa73bbc | 70 | _y+=_speed; |
ll14c4p | 1:933b7aa73bbc | 71 | } |
ll14c4p | 1:933b7aa73bbc | 72 | if (d == E) { |
ll14c4p | 1:933b7aa73bbc | 73 | _x+=_speed; |
ll14c4p | 1:933b7aa73bbc | 74 | } |
ll14c4p | 2:108a1fc56c4c | 75 | if (d == W) { |
ll14c4p | 1:933b7aa73bbc | 76 | _x-=_speed; |
ll14c4p | 1:933b7aa73bbc | 77 | } |
ll14c4p | 2:108a1fc56c4c | 78 | if (d == NE) { |
ll14c4p | 12:1324d72d12a6 | 79 | _y-=_speed/2; |
ll14c4p | 2:108a1fc56c4c | 80 | _x+=_speed/2; |
ll14c4p | 2:108a1fc56c4c | 81 | } |
ll14c4p | 2:108a1fc56c4c | 82 | if (d == NW) { |
ll14c4p | 2:108a1fc56c4c | 83 | _y-=_speed/2; |
ll14c4p | 2:108a1fc56c4c | 84 | _x-=_speed/2; |
ll14c4p | 2:108a1fc56c4c | 85 | } |
ll14c4p | 2:108a1fc56c4c | 86 | if (d == SE) { |
ll14c4p | 2:108a1fc56c4c | 87 | _y+=_speed/2; |
ll14c4p | 2:108a1fc56c4c | 88 | _x+=_speed/2; |
ll14c4p | 2:108a1fc56c4c | 89 | } |
ll14c4p | 2:108a1fc56c4c | 90 | if (d == SW) { |
ll14c4p | 2:108a1fc56c4c | 91 | _y+=_speed/2; |
ll14c4p | 2:108a1fc56c4c | 92 | _x-=_speed/2; |
ll14c4p | 2:108a1fc56c4c | 93 | } |
ll14c4p | 2:108a1fc56c4c | 94 | |
ll14c4p | 1:933b7aa73bbc | 95 | |
ll14c4p | 12:1324d72d12a6 | 96 | //Limits set so that the sprite does not travel off the screen. |
ll14c4p | 3:60a09496c839 | 97 | if (_y <= 0) { |
ll14c4p | 3:60a09496c839 | 98 | _y = 0; |
ll14c4p | 1:933b7aa73bbc | 99 | } |
ll14c4p | 3:60a09496c839 | 100 | if (_x <= 0) { |
ll14c4p | 3:60a09496c839 | 101 | _x = 0; |
ll14c4p | 1:933b7aa73bbc | 102 | } |
ll14c4p | 10:43b537436eb5 | 103 | if (_x > 78) { |
ll14c4p | 10:43b537436eb5 | 104 | _x = 78; |
ll14c4p | 1:933b7aa73bbc | 105 | } |
ll14c4p | 11:1a8dc3242e13 | 106 | if (_y > 42) { |
ll14c4p | 11:1a8dc3242e13 | 107 | _y = 42; |
ll14c4p | 1:933b7aa73bbc | 108 | } |
ll14c4p | 1:933b7aa73bbc | 109 | |
ll14c4p | 10:43b537436eb5 | 110 | } |
ll14c4p | 10:43b537436eb5 | 111 |