5
Revision 4:19e1f1be1864, committed 2017-05-04
- Comitter:
- fy14ta
- Date:
- Thu May 04 06:39:31 2017 +0000
- Parent:
- 3:c054c5e52370
- Commit message:
- lab is for the vertical walls
Changed in this revision
diff -r c054c5e52370 -r 19e1f1be1864 Paddle.cpp --- a/Paddle.cpp Sun Mar 05 23:10:27 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -#include "Paddle.h" - -Paddle::Paddle() -{ - -} - -Paddle::~Paddle() -{ - -} - -void Paddle::init(int x,int height,int width) -{ - _x = x; // x value on screen is fixed - _y = HEIGHT/2 - height/2; // y depends on height of screen and height of paddle - _height = height; - _width = width; - _speed = 1; // default speed - _score = 0; - -} - -void Paddle::draw(N5110 &lcd) -{ - // draw paddle in screen buffer. - lcd.drawRect(_x,_y,_width,_height,FILL_BLACK); -} - -void Paddle::update(Direction d,float mag) -{ - _speed = int(mag*10.0f); // scale is arbitrary, could be changed in future - - // update y value depending on direction of movement - // North is decrement as origin is at the top-left so decreasing moves up - if (d == N) { - _y-=_speed; - } else if (d == S) { - _y+=_speed; - } - - // check the y origin to ensure that the paddle doesn't go off screen - if (_y < 1) { - _y = 1; - } - if (_y > HEIGHT - _height - 1) { - _y = HEIGHT - _height - 1; - } -} - -void Paddle::add_score() -{ - _score++; -} -int Paddle::get_score() -{ - return _score; -} - -Vector2D Paddle::get_pos() { - Vector2D p = {_x,_y}; - return p; -} \ No newline at end of file
diff -r c054c5e52370 -r 19e1f1be1864 Paddle.h --- a/Paddle.h Sun Mar 05 23:10:27 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -#ifndef PADDLE_H -#define PADDLE_H - -#include "mbed.h" -#include "N5110.h" -#include "Gamepad.h" - -class Paddle -{ -public: - - Paddle(); - ~Paddle(); - void init(int x,int height,int width); - void draw(N5110 &lcd); - void update(Direction d,float mag); - void add_score(); - int get_score(); - Vector2D get_pos(); - -private: - - int _height; - int _width; - int _x; - int _y; - int _speed; - int _score; - -}; -#endif \ No newline at end of file
diff -r c054c5e52370 -r 19e1f1be1864 lab.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lab.cpp Thu May 04 06:39:31 2017 +0000 @@ -0,0 +1,102 @@ +#include "lab.h" + +lab::lab() +{ + +} + +lab::~lab() +{ + +} + +void lab::init(int x, int y, int height,int width, int speed) +{ + _x = x; // x value on screen is fixed + _y = y; // y depends on height of screen and height of paddle + _height = height; + _width = width; + + + + // default speed + _score = 0; + + _velocity.x = speed; + _velocity.y = speed; + + +} + +void lab::draw(N5110 &lcd) +{ + // draw paddle in screen buffer. + lcd.drawRect(_x,_y,_width,_height,FILL_BLACK); +} + +void lab::update(Direction d,float mag) +{ + _velocity.x = int(mag*0.0f); + _velocity.y = int(mag*0.0f); + + // scale is arbitrary, could be changed in future + + // update y value depending on direction of movement + // North is decrement as origin is at the top-left so decreasing moves up + if (d == N) { + _y-=_velocity.y; + } else if (d == S) { + _y+=_velocity.y; + } + + if (d == W) { + _x-=_velocity.x; + } else if (d == E) { + _x+=_velocity.x; + } + + + // check the y origin to ensure that the paddle doesn't go off screen + if (_y < 1) { + _y = 1; + } + if (_y > HEIGHT - _height - 1) { + _y = HEIGHT - _height - 1; + } + + if (_x < 1) { + _x = 1; + } + if (_x > WIDTH - _width - 1) { + _x = WIDTH - _width - 1; + } +} + + +void lab::set_velocity(Vector2D v) +{ + _velocity.x = v.x; + _velocity.y = v.y; +} + +Vector2D lab::get_velocity() +{ + Vector2D v = {_velocity.x,_velocity.y}; + return v; +} + +void lab::add_score() +{ + _score++; +} +int lab::get_score() +{ + return _score; +} + +Vector2D lab::get_pos() { + Vector2D p = {_x,_y}; + return p; +} + +
diff -r c054c5e52370 -r 19e1f1be1864 lab.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lab.h Thu May 04 06:39:31 2017 +0000 @@ -0,0 +1,36 @@ +#ifndef LAB_H +#define LAB_H + +#include "mbed.h" +#include "N5110.h" +#include "Gamepad.h" +#include "Ball.h" + +class lab +{ +public: + + lab(); + ~lab(); + void init(int x, int y, int height,int width, int speedp); + void draw(N5110 &lcd); + void update(Direction d,float mag); + void set_velocity(Vector2D v); + void add_score(); + int get_score(); + Vector2D get_pos(); + Vector2D get_velocity(); + + +private: + + Vector2D _velocity; + int _height; + int _width; + int _x; + int _y; + int _speedp; + int _score; + +}; +#endif \ No newline at end of file