Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 7:e605dbca7330, committed 2013-08-21
- Comitter:
- vsluiter
- Date:
- Wed Aug 21 21:10:38 2013 +0000
- Parent:
- 6:c2040b4cf589
- Child:
- 8:f46db1ff5ec9
- Commit message:
- Paddle now updates its own position;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Aug 21 20:47:16 2013 +0000
+++ b/main.cpp Wed Aug 21 21:10:38 2013 +0000
@@ -24,6 +24,7 @@
// ~Paddle();//deconstructor
int8_t position;
uint8_t direction;
+ void setSpeed(float speed);
void setColor(uint8_t red, uint8_t green, uint8_t blue);
uint8_t getSize(void);
void setSize(uint8_t size);
@@ -32,6 +33,9 @@
uint8_t m_red ,m_green ,m_blue;
uint8_t m_size;
uint8_t m_paddle[MAX_PADDLE_SIZE][3];
+ float m_speed;
+ Ticker UpdatePosition;
+ void PositionUpdater(void);
};
Paddle::Paddle()
@@ -40,6 +44,28 @@
setSize(4);
position = -getSize();
direction = 1;
+ setSpeed(50);
+}
+
+void Paddle::setSpeed(float speed)
+{
+//truncate
+ float time;
+ if(speed > 100000)
+ speed = 100000;
+ if(speed <= 0)
+ speed = 0.001;
+ m_speed = speed;
+ time = 1/m_speed;
+ UpdatePosition.attach(this,&Paddle::PositionUpdater, time);
+}
+
+void Paddle::PositionUpdater(void)
+{
+ if(direction == 1)
+ position++;
+ else
+ position--;
}
uint8_t Paddle::getColor(uint8_t pixel, uint8_t color)
@@ -138,12 +164,11 @@
while(1) {
//PaddleDemo(2,255,10,100);
DrawGamePaddle();
- wait(.05);
+ //wait(.05);
//Score(3,2);
//WinLoose(2.5, LEFT);
if(paddle.direction == 1)
{
- paddle.position++;
if(leftpushed)
{
leftpushed = false;
@@ -152,7 +177,6 @@
}
else
{
- paddle.position--;
if(rightpushed)
{
rightpushed = false;