summaryrefslogtreecommitdiff
path: root/Camera.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Camera.cpp')
-rw-r--r--Camera.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/Camera.cpp b/Camera.cpp
index 3992863..6ba6f29 100644
--- a/Camera.cpp
+++ b/Camera.cpp
@@ -4,6 +4,7 @@
#include "Camera.h"
#include <stdint.h>
+#include <limits.h>
/* *******************************************************************
* Defines
@@ -50,8 +51,13 @@ Camera::Camera(void) :
void Camera::handler(void)
{
- _xOffset += _xSpeed;
- _yOffset += _ySpeed;
+ if (((_xOffset + _xSpeed) >= -16)
+ ||
+ ((_xOffset + _xSpeed) <= 0) )
+ {
+ _xOffset += _xSpeed;
+ //~_yOffset += _ySpeed;
+ }
if (++_speedTimer >= SPEED_CALCULATION_TIME)
{
@@ -133,13 +139,24 @@ void Camera::onLeftBtnPressed(void)
*********************************************************************/
void Camera::onRightBtnPressed(void)
{
+ int8_t acc = 0;
+
if (_xSpeed > 0)
{
- _xSpeed -= CAMERA_ACCELERATION << 1;
+ acc = CAMERA_ACCELERATION << 1;
}
else if (_xSpeed > -MAX_CAMERA_SPEED)
{
- _xSpeed -= CAMERA_ACCELERATION;
+ acc = CAMERA_ACCELERATION;
+ }
+
+ if ((_xOffset + (_xSpeed - acc)) >= -16)
+ {
+ _xSpeed -= acc;
+ }
+ else
+ {
+ _xSpeed = 0;
}
}