Example Pong game for mbed.

Dependencies:   mbed

Committer:
eencae
Date:
Fri Feb 16 13:37:49 2018 +0000
Revision:
5:3c9407e2fe55
Child:
6:d9d05b321b4d
Converted to folders.

Who changed what in which revision?

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