Pong for Gamepad2

Dependencies:   mbed

Edit.

Committer:
eencae
Date:
Fri Jan 31 12:32:38 2020 +0000
Revision:
0:7423345f87c5
Pong ported to Gamepad2;

Who changed what in which revision?

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