5

Dependents:   Labirint

Committer:
fy14ta
Date:
Thu May 04 06:39:31 2017 +0000
Revision:
4:19e1f1be1864
lab is for the vertical walls

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fy14ta 4:19e1f1be1864 1 #include "lab.h"
fy14ta 4:19e1f1be1864 2
fy14ta 4:19e1f1be1864 3 lab::lab()
fy14ta 4:19e1f1be1864 4 {
fy14ta 4:19e1f1be1864 5
fy14ta 4:19e1f1be1864 6 }
fy14ta 4:19e1f1be1864 7
fy14ta 4:19e1f1be1864 8 lab::~lab()
fy14ta 4:19e1f1be1864 9 {
fy14ta 4:19e1f1be1864 10
fy14ta 4:19e1f1be1864 11 }
fy14ta 4:19e1f1be1864 12
fy14ta 4:19e1f1be1864 13 void lab::init(int x, int y, int height,int width, int speed)
fy14ta 4:19e1f1be1864 14 {
fy14ta 4:19e1f1be1864 15 _x = x; // x value on screen is fixed
fy14ta 4:19e1f1be1864 16 _y = y; // y depends on height of screen and height of paddle
fy14ta 4:19e1f1be1864 17 _height = height;
fy14ta 4:19e1f1be1864 18 _width = width;
fy14ta 4:19e1f1be1864 19
fy14ta 4:19e1f1be1864 20
fy14ta 4:19e1f1be1864 21
fy14ta 4:19e1f1be1864 22 // default speed
fy14ta 4:19e1f1be1864 23 _score = 0;
fy14ta 4:19e1f1be1864 24
fy14ta 4:19e1f1be1864 25 _velocity.x = speed;
fy14ta 4:19e1f1be1864 26 _velocity.y = speed;
fy14ta 4:19e1f1be1864 27
fy14ta 4:19e1f1be1864 28
fy14ta 4:19e1f1be1864 29 }
fy14ta 4:19e1f1be1864 30
fy14ta 4:19e1f1be1864 31 void lab::draw(N5110 &lcd)
fy14ta 4:19e1f1be1864 32 {
fy14ta 4:19e1f1be1864 33 // draw paddle in screen buffer.
fy14ta 4:19e1f1be1864 34 lcd.drawRect(_x,_y,_width,_height,FILL_BLACK);
fy14ta 4:19e1f1be1864 35 }
fy14ta 4:19e1f1be1864 36
fy14ta 4:19e1f1be1864 37 void lab::update(Direction d,float mag)
fy14ta 4:19e1f1be1864 38 {
fy14ta 4:19e1f1be1864 39 _velocity.x = int(mag*0.0f);
fy14ta 4:19e1f1be1864 40 _velocity.y = int(mag*0.0f);
fy14ta 4:19e1f1be1864 41
fy14ta 4:19e1f1be1864 42 // scale is arbitrary, could be changed in future
fy14ta 4:19e1f1be1864 43
fy14ta 4:19e1f1be1864 44 // update y value depending on direction of movement
fy14ta 4:19e1f1be1864 45 // North is decrement as origin is at the top-left so decreasing moves up
fy14ta 4:19e1f1be1864 46 if (d == N) {
fy14ta 4:19e1f1be1864 47 _y-=_velocity.y;
fy14ta 4:19e1f1be1864 48 } else if (d == S) {
fy14ta 4:19e1f1be1864 49 _y+=_velocity.y;
fy14ta 4:19e1f1be1864 50 }
fy14ta 4:19e1f1be1864 51
fy14ta 4:19e1f1be1864 52 if (d == W) {
fy14ta 4:19e1f1be1864 53 _x-=_velocity.x;
fy14ta 4:19e1f1be1864 54 } else if (d == E) {
fy14ta 4:19e1f1be1864 55 _x+=_velocity.x;
fy14ta 4:19e1f1be1864 56 }
fy14ta 4:19e1f1be1864 57
fy14ta 4:19e1f1be1864 58
fy14ta 4:19e1f1be1864 59 // check the y origin to ensure that the paddle doesn't go off screen
fy14ta 4:19e1f1be1864 60 if (_y < 1) {
fy14ta 4:19e1f1be1864 61 _y = 1;
fy14ta 4:19e1f1be1864 62 }
fy14ta 4:19e1f1be1864 63 if (_y > HEIGHT - _height - 1) {
fy14ta 4:19e1f1be1864 64 _y = HEIGHT - _height - 1;
fy14ta 4:19e1f1be1864 65 }
fy14ta 4:19e1f1be1864 66
fy14ta 4:19e1f1be1864 67 if (_x < 1) {
fy14ta 4:19e1f1be1864 68 _x = 1;
fy14ta 4:19e1f1be1864 69 }
fy14ta 4:19e1f1be1864 70 if (_x > WIDTH - _width - 1) {
fy14ta 4:19e1f1be1864 71 _x = WIDTH - _width - 1;
fy14ta 4:19e1f1be1864 72 }
fy14ta 4:19e1f1be1864 73 }
fy14ta 4:19e1f1be1864 74
fy14ta 4:19e1f1be1864 75
fy14ta 4:19e1f1be1864 76 void lab::set_velocity(Vector2D v)
fy14ta 4:19e1f1be1864 77 {
fy14ta 4:19e1f1be1864 78 _velocity.x = v.x;
fy14ta 4:19e1f1be1864 79 _velocity.y = v.y;
fy14ta 4:19e1f1be1864 80 }
fy14ta 4:19e1f1be1864 81
fy14ta 4:19e1f1be1864 82 Vector2D lab::get_velocity()
fy14ta 4:19e1f1be1864 83 {
fy14ta 4:19e1f1be1864 84 Vector2D v = {_velocity.x,_velocity.y};
fy14ta 4:19e1f1be1864 85 return v;
fy14ta 4:19e1f1be1864 86 }
fy14ta 4:19e1f1be1864 87
fy14ta 4:19e1f1be1864 88 void lab::add_score()
fy14ta 4:19e1f1be1864 89 {
fy14ta 4:19e1f1be1864 90 _score++;
fy14ta 4:19e1f1be1864 91 }
fy14ta 4:19e1f1be1864 92 int lab::get_score()
fy14ta 4:19e1f1be1864 93 {
fy14ta 4:19e1f1be1864 94 return _score;
fy14ta 4:19e1f1be1864 95 }
fy14ta 4:19e1f1be1864 96
fy14ta 4:19e1f1be1864 97 Vector2D lab::get_pos() {
fy14ta 4:19e1f1be1864 98 Vector2D p = {_x,_y};
fy14ta 4:19e1f1be1864 99 return p;
fy14ta 4:19e1f1be1864 100 }
fy14ta 4:19e1f1be1864 101
fy14ta 4:19e1f1be1864 102