Player Library

Committer:
ll14c4p
Date:
Mon Apr 24 11:15:03 2017 +0000
Revision:
2:108a1fc56c4c
Parent:
1:933b7aa73bbc
Child:
3:60a09496c839
Added diagonal movement;

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 1:933b7aa73bbc 13 int sprite[3][3] = {
ll14c4p 1:933b7aa73bbc 14 {1,0,1},
ll14c4p 1:933b7aa73bbc 15 {1,1,1},
ll14c4p 1:933b7aa73bbc 16 {1,1,1},
ll14c4p 1:933b7aa73bbc 17 };
ll14c4p 1:933b7aa73bbc 18
ll14c4p 1:933b7aa73bbc 19 void Player::init(int x, int y)
ll14c4p 1:933b7aa73bbc 20 {
ll14c4p 1:933b7aa73bbc 21 _x = WIDTH/2 - 1; // Middle of screen
ll14c4p 1:933b7aa73bbc 22 _y = HEIGHT/2; // Near bottom of screen
ll14c4p 1:933b7aa73bbc 23 _speed = 1; // default speed
ll14c4p 1:933b7aa73bbc 24
ll14c4p 1:933b7aa73bbc 25 }
ll14c4p 1:933b7aa73bbc 26
ll14c4p 0:a88279bdf8c0 27
ll14c4p 0:a88279bdf8c0 28 void Player::draw(N5110 &lcd)
ll14c4p 0:a88279bdf8c0 29 {
ll14c4p 1:933b7aa73bbc 30 lcd.drawSprite(_x,_y,3,3,(int *)sprite);
ll14c4p 1:933b7aa73bbc 31 }
ll14c4p 1:933b7aa73bbc 32
ll14c4p 1:933b7aa73bbc 33
ll14c4p 1:933b7aa73bbc 34
ll14c4p 1:933b7aa73bbc 35
ll14c4p 1:933b7aa73bbc 36
ll14c4p 1:933b7aa73bbc 37 void Player::update(Direction d,float mag)
ll14c4p 1:933b7aa73bbc 38 {
ll14c4p 1:933b7aa73bbc 39 _speed = int(mag*10.0f); // scale is arbitrary, could be changed in future
ll14c4p 1:933b7aa73bbc 40
ll14c4p 1:933b7aa73bbc 41
ll14c4p 1:933b7aa73bbc 42 // update y value depending on direction of movement
ll14c4p 1:933b7aa73bbc 43 // North is decrement as origin is at the top-left so decreasing moves up
ll14c4p 1:933b7aa73bbc 44 if (d == N) {
ll14c4p 1:933b7aa73bbc 45 _y-=_speed;
ll14c4p 1:933b7aa73bbc 46 }
ll14c4p 1:933b7aa73bbc 47 if (d == S) {
ll14c4p 1:933b7aa73bbc 48 _y+=_speed;
ll14c4p 1:933b7aa73bbc 49 }
ll14c4p 1:933b7aa73bbc 50 if (d == E) {
ll14c4p 1:933b7aa73bbc 51 _x+=_speed;
ll14c4p 1:933b7aa73bbc 52 }
ll14c4p 2:108a1fc56c4c 53 if (d == W) {
ll14c4p 1:933b7aa73bbc 54 _x-=_speed;
ll14c4p 1:933b7aa73bbc 55 }
ll14c4p 2:108a1fc56c4c 56 if (d == NE) {
ll14c4p 2:108a1fc56c4c 57 _y-=_speed/2;
ll14c4p 2:108a1fc56c4c 58 _x+=_speed/2;
ll14c4p 2:108a1fc56c4c 59 }
ll14c4p 2:108a1fc56c4c 60 if (d == NW) {
ll14c4p 2:108a1fc56c4c 61 _y-=_speed/2;
ll14c4p 2:108a1fc56c4c 62 _x-=_speed/2;
ll14c4p 2:108a1fc56c4c 63 }
ll14c4p 2:108a1fc56c4c 64 if (d == SE) {
ll14c4p 2:108a1fc56c4c 65 _y+=_speed/2;
ll14c4p 2:108a1fc56c4c 66 _x+=_speed/2;
ll14c4p 2:108a1fc56c4c 67 }
ll14c4p 2:108a1fc56c4c 68 if (d == SW) {
ll14c4p 2:108a1fc56c4c 69 _y+=_speed/2;
ll14c4p 2:108a1fc56c4c 70 _x-=_speed/2;
ll14c4p 2:108a1fc56c4c 71 }
ll14c4p 2:108a1fc56c4c 72
ll14c4p 1:933b7aa73bbc 73
ll14c4p 1:933b7aa73bbc 74 // check the y origin to ensure that the paddle doesn't go off screen
ll14c4p 1:933b7aa73bbc 75 if (_y < 1) {
ll14c4p 1:933b7aa73bbc 76 _y = 1;
ll14c4p 1:933b7aa73bbc 77 }
ll14c4p 1:933b7aa73bbc 78 if (_x < 1) {
ll14c4p 1:933b7aa73bbc 79 _x = 1;
ll14c4p 1:933b7aa73bbc 80 }
ll14c4p 1:933b7aa73bbc 81 if (_x > 81) {
ll14c4p 1:933b7aa73bbc 82 _x = 81;
ll14c4p 1:933b7aa73bbc 83 }
ll14c4p 1:933b7aa73bbc 84 if (_y > 45) {
ll14c4p 1:933b7aa73bbc 85 _x = 45;
ll14c4p 1:933b7aa73bbc 86 }
ll14c4p 1:933b7aa73bbc 87
ll14c4p 0:a88279bdf8c0 88 }