void Step(SnakeParts* snake) { StoreXY(snake); if ((snake[0].dir == UP) && (snake[0].y_pos == 0)) { snake[0].y_pos = (MapHeight - 1) * SpriteSize; snake[0].sprite.setPosition(snake[0].x_pos, snake[0].y_pos); } else if (snake[0].dir == DOWN && snake[0].y_pos == (MapHeight - 1) * SpriteSize) { snake[0].y_pos = 0; snake[0].sprite.setPosition(snake[0].x_pos, snake[0].y_pos); } else if (snake[0].dir == RIGHT && snake[0].x_pos == 0) { snake[0].x_pos = (MapWidth - 1) * SpriteSize; snake[0].sprite.setPosition(snake[0].x_pos, snake[0].y_pos); } else if (snake[0].dir == LEFT && snake[0].x_pos == (MapWidth - 1) * SpriteSize) { snake[0].x_pos = 0; snake[0].sprite.setPosition(snake[0].x_pos, snake[0].y_pos); } else SnakeUpdate(snake); for (int i = 1; i < MaxLengthSnake; i++) { if (snake[i].draw == 1) { StoreXY(snake + i); snake[i].x_pos = snake[i - 1].x_store; snake[i].y_pos = snake[i - 1].y_store; snake[i].sprite.setPosition(snake[i].x_pos, snake[i].y_pos); } } }
void Game::Update() { srand((int)RF_Engine::instance->time->currentTime); deltaCount += RF_Engine::instance->time->deltaTime; if(deltaCount >= 0.05f) { deltaCount = 0.0f; if(false == losed) { InputUpdate(); SnakeUpdate(); GridUpdate(); } else { if(RF_Engine::instance->key[_return]) { restart(); } } handiCam(); shakeCam(); pL->drawAlone(bg); } }