Snake: prevent that "ma sich seiba fressn ko".
This commit is contained in:
@@ -26,7 +26,7 @@ Snake::Snake()
|
|||||||
* @param myledmatrix pointer to LEDMatrix object, need to provide gridAddPixel(x, y, col), gridFlush()
|
* @param myledmatrix pointer to LEDMatrix object, need to provide gridAddPixel(x, y, col), gridFlush()
|
||||||
* @param mylogger pointer to UDPLogger object, need to provide a function logString(message)
|
* @param mylogger pointer to UDPLogger object, need to provide a function logString(message)
|
||||||
*/
|
*/
|
||||||
Snake::Snake(LEDMatrix * matrix, UDPLogger * logger)
|
Snake::Snake(LEDMatrix *matrix, UDPLogger *logger)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_ledmatrix = matrix;
|
_ledmatrix = matrix;
|
||||||
@@ -58,7 +58,7 @@ void Snake::loopCycle()
|
|||||||
*/
|
*/
|
||||||
void Snake::ctrlUp()
|
void Snake::ctrlUp()
|
||||||
{
|
{
|
||||||
if ((system_get_time() / 1000) > _lastButtonClick + DEBOUNCE_TIME && _gameState == GAME_STATE_RUNNING)
|
if (((system_get_time() / 1000) > (_lastButtonClick + DEBOUNCE_TIME)) && (_gameState == GAME_STATE_RUNNING) && (_userDirection != DIRECTION_UP))
|
||||||
{
|
{
|
||||||
_logger->log_string("Snake: UP");
|
_logger->log_string("Snake: UP");
|
||||||
_userDirection = DIRECTION_DOWN; // need to swap direction as field is rotated 180deg
|
_userDirection = DIRECTION_DOWN; // need to swap direction as field is rotated 180deg
|
||||||
@@ -72,7 +72,7 @@ void Snake::ctrlUp()
|
|||||||
*/
|
*/
|
||||||
void Snake::ctrlDown()
|
void Snake::ctrlDown()
|
||||||
{
|
{
|
||||||
if ((system_get_time() / 1000) > _lastButtonClick + DEBOUNCE_TIME && _gameState == GAME_STATE_RUNNING)
|
if (((system_get_time() / 1000) > (_lastButtonClick + DEBOUNCE_TIME)) && (_gameState == GAME_STATE_RUNNING) && (_userDirection != DIRECTION_DOWN))
|
||||||
{
|
{
|
||||||
_logger->log_string("Snake: DOWN");
|
_logger->log_string("Snake: DOWN");
|
||||||
_userDirection = DIRECTION_UP; // need to swap direction as field is rotated 180deg
|
_userDirection = DIRECTION_UP; // need to swap direction as field is rotated 180deg
|
||||||
@@ -86,7 +86,7 @@ void Snake::ctrlDown()
|
|||||||
*/
|
*/
|
||||||
void Snake::ctrlRight()
|
void Snake::ctrlRight()
|
||||||
{
|
{
|
||||||
if ((system_get_time() / 1000) > _lastButtonClick + DEBOUNCE_TIME && _gameState == GAME_STATE_RUNNING)
|
if (((system_get_time() / 1000) > (_lastButtonClick + DEBOUNCE_TIME)) && (_gameState == GAME_STATE_RUNNING) && (_userDirection != DIRECTION_RIGHT))
|
||||||
{
|
{
|
||||||
_logger->log_string("Snake: RIGHT");
|
_logger->log_string("Snake: RIGHT");
|
||||||
_userDirection = DIRECTION_LEFT; // need to swap direction as field is rotated 180deg
|
_userDirection = DIRECTION_LEFT; // need to swap direction as field is rotated 180deg
|
||||||
@@ -100,7 +100,7 @@ void Snake::ctrlRight()
|
|||||||
*/
|
*/
|
||||||
void Snake::ctrlLeft()
|
void Snake::ctrlLeft()
|
||||||
{
|
{
|
||||||
if ((system_get_time() / 1000) > _lastButtonClick + DEBOUNCE_TIME && _gameState == GAME_STATE_RUNNING)
|
if (((system_get_time() / 1000) > (_lastButtonClick + DEBOUNCE_TIME)) && (_gameState == GAME_STATE_RUNNING) && (_userDirection != DIRECTION_LEFT))
|
||||||
{
|
{
|
||||||
_logger->log_string("Snake: LEFT");
|
_logger->log_string("Snake: LEFT");
|
||||||
_userDirection = DIRECTION_RIGHT; // need to swap direction as field is rotated 180deg
|
_userDirection = DIRECTION_RIGHT; // need to swap direction as field is rotated 180deg
|
||||||
|
|||||||
Reference in New Issue
Block a user