diff options
Diffstat (limited to 'Camera.cpp')
| -rw-r--r-- | Camera.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
@@ -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; } } |
