Example Pong game for mbed.

Dependencies:   mbed

Committer:
valavanisalex
Date:
Tue Apr 17 08:00:08 2018 +0000
Revision:
11:1447cb7dce3c
Parent:
6:d9d05b321b4d
Correct type error and add documentation

Who changed what in which revision?

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