5

Dependents:   Labirint

Committer:
eencae
Date:
Wed Mar 01 13:52:30 2017 +0000
Revision:
1:5285b567f4c9
Parent:
0:fe2b9c70f7b8
Child:
2:aae12f64103b
Minor formatting updates.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:fe2b9c70f7b8 1 #include "Paddle.h"
eencae 0:fe2b9c70f7b8 2
eencae 0:fe2b9c70f7b8 3 Paddle::Paddle()
eencae 0:fe2b9c70f7b8 4 {
eencae 0:fe2b9c70f7b8 5
eencae 0:fe2b9c70f7b8 6 }
eencae 0:fe2b9c70f7b8 7
eencae 0:fe2b9c70f7b8 8 Paddle::~Paddle()
eencae 0:fe2b9c70f7b8 9 {
eencae 0:fe2b9c70f7b8 10
eencae 0:fe2b9c70f7b8 11 }
eencae 0:fe2b9c70f7b8 12
eencae 0:fe2b9c70f7b8 13 void Paddle::init(int x,int height,int width)
eencae 0:fe2b9c70f7b8 14 {
eencae 0:fe2b9c70f7b8 15 _x = x; // x value on screen is fixed
eencae 0:fe2b9c70f7b8 16 _y = HEIGHT/2 - height/2; // y depends on height of screen and height of paddle
eencae 0:fe2b9c70f7b8 17 _height = height;
eencae 0:fe2b9c70f7b8 18 _width = width;
eencae 0:fe2b9c70f7b8 19 _speed = 1; // default speed
eencae 0:fe2b9c70f7b8 20 _score = 0;
eencae 0:fe2b9c70f7b8 21
eencae 0:fe2b9c70f7b8 22 }
eencae 0:fe2b9c70f7b8 23
eencae 0:fe2b9c70f7b8 24 void Paddle::draw(N5110 &lcd)
eencae 0:fe2b9c70f7b8 25 {
eencae 0:fe2b9c70f7b8 26
eencae 0:fe2b9c70f7b8 27 // draw paddle in screen buffer. 1 for filled rectangle
eencae 0:fe2b9c70f7b8 28 lcd.drawRect(_x,_y,_width,_height,1);
eencae 0:fe2b9c70f7b8 29 }
eencae 0:fe2b9c70f7b8 30
eencae 0:fe2b9c70f7b8 31 void Paddle::update(Direction d,float mag)
eencae 0:fe2b9c70f7b8 32 {
eencae 0:fe2b9c70f7b8 33
eencae 0:fe2b9c70f7b8 34 _speed = int(mag*10.0f); // scale is arbitrary, could be changed in future
eencae 0:fe2b9c70f7b8 35
eencae 0:fe2b9c70f7b8 36 // update y value depending on direction of movement
eencae 0:fe2b9c70f7b8 37 // North is decrement as origin is at the top-left so decreasing moves up
eencae 0:fe2b9c70f7b8 38 if (d == N) {
eencae 0:fe2b9c70f7b8 39 _y-=_speed;
eencae 0:fe2b9c70f7b8 40 } else if (d == S) {
eencae 0:fe2b9c70f7b8 41 _y+=_speed;
eencae 0:fe2b9c70f7b8 42 }
eencae 0:fe2b9c70f7b8 43
eencae 0:fe2b9c70f7b8 44 // check the y origin to ensure that the paddle doesn't go off screen
eencae 0:fe2b9c70f7b8 45 if (_y < 0) {
eencae 0:fe2b9c70f7b8 46 _y = 0;
eencae 0:fe2b9c70f7b8 47 }
eencae 0:fe2b9c70f7b8 48 if (_y > HEIGHT - _height) {
eencae 0:fe2b9c70f7b8 49 _y = HEIGHT - _height;
eencae 0:fe2b9c70f7b8 50 }
eencae 0:fe2b9c70f7b8 51 }
eencae 0:fe2b9c70f7b8 52
eencae 0:fe2b9c70f7b8 53 void Paddle::add_score()
eencae 0:fe2b9c70f7b8 54 {
eencae 0:fe2b9c70f7b8 55 _score++;
eencae 0:fe2b9c70f7b8 56 }
eencae 0:fe2b9c70f7b8 57 int Paddle::get_score()
eencae 0:fe2b9c70f7b8 58 {
eencae 0:fe2b9c70f7b8 59 return _score;
eencae 1:5285b567f4c9 60 }
eencae 1:5285b567f4c9 61
eencae 1:5285b567f4c9 62 Vector2D Paddle::get_pos() {
eencae 1:5285b567f4c9 63 Vector2D p = {_x,_y};
eencae 1:5285b567f4c9 64 return p;
eencae 0:fe2b9c70f7b8 65 }