* Cursor: fixed invalid returned position when cursor was pointing to anything over X or Y screen resolution/2.

This commit is contained in:
XaviDCR92 2018-08-05 18:02:42 +02:00
parent 4efe5ad6f9
commit 37070c559d
2 changed files with 24 additions and 5 deletions

View File

@ -3,6 +3,7 @@
* ******************************************************************/
#include "Cursor.h"
#include "Camera.h"
#include <stdint.h>
/* *******************************************************************
@ -37,9 +38,10 @@
* \brief Constructor for Cursor class.
*
*********************************************************************/
Cursor::Cursor(void) :
Cursor::Cursor(const Camera& c) :
_x(CURSOR_DEFAULT_X),
_y(CURSOR_DEFAULT_Y)
_y(CURSOR_DEFAULT_Y),
_cam(c)
{
}
@ -73,6 +75,16 @@ void Cursor::move(const int8_t x, const int8_t y)
}
}
uint8_t Cursor::getScreenX(void)
{
return _x;
}
uint8_t Cursor::getScreenY(void)
{
return _y;
}
/*****************************************************************//**
*
* \brief This function simply returns cursor X position.
@ -82,7 +94,7 @@ void Cursor::move(const int8_t x, const int8_t y)
*********************************************************************/
uint8_t Cursor::getX(void)
{
return _x;
return _cam.getRealX(_x);
}
/*****************************************************************//**
@ -94,7 +106,7 @@ uint8_t Cursor::getX(void)
*********************************************************************/
uint8_t Cursor::getY(void)
{
return _y;
return _cam.getRealY(_y);
}
/*****************************************************************//**

View File

@ -5,6 +5,7 @@
* Includes
* ******************************************************************/
#include "Camera.h"
#include <stdbool.h>
#include <stdint.h>
@ -16,6 +17,9 @@
* Global types definition
* ******************************************************************/
/* Forward declaration. */
class Camera;
/* *******************************************************************
* Global variables declaration
* ******************************************************************/
@ -31,16 +35,19 @@
class Cursor
{
public:
explicit Cursor(void);
explicit Cursor(const Camera& c);
void move(const int8_t x = 0, const int8_t y = 0);
uint8_t getX(void);
uint8_t getY(void);
uint8_t getScreenX(void);
uint8_t getScreenY(void);
bool isXCentered(void);
bool isYCentered(void);
private:
uint8_t _x;
uint8_t _y;
const Camera& _cam;
};
#endif /* CURSOR_H__ */