Player Library

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?

UserRevisionLine numberNew 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