本文整理汇总了C++中Snake::getLastCell方法的典型用法代码示例。如果您正苦于以下问题:C++ Snake::getLastCell方法的具体用法?C++ Snake::getLastCell怎么用?C++ Snake::getLastCell使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Snake
的用法示例。
在下文中一共展示了Snake::getLastCell方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: runGame
/*
This methods is performing runtime logic
*/
void GameController::runGame(CInputManager inputManager, CLoopTimer loopTimer,
unsigned long score, CollisionDetector collisionDetector, FoodProvider foodProvider,
DrawEngine drawEngine)
{
//Draws gamearea
drawEngine.drawGameArea();
//Reset score
drawEngine.updateScore(score);
loopTimer.Start();
int key = 0;
Snake snake;
//Init snake
snake.initialize(drawEngine.getWindownWidth()/2, drawEngine.getWindowHeight()/2);
//Getting initial foodlist
vector<Cell> &foodList = foodProvider.provideFood(snake, drawEngine.getWindownWidth(),
drawEngine.getMenuBorderHeight());
//Ouput game loop
while(static_cast<char>(key) != 'Q')
{
//Inner gameloop ONE - waiting for keyinput
while(!inputManager.GetNextKeyUpper(&key))
{
//Sleep
loopTimer.SleepUntilUpdate();
//Move
Cell lastCell = snake.getLastCell();
snake.move();
//Performing standard runtimeChecks
if(performGameRuntimeChecks(inputManager,score, collisionDetector,
drawEngine, key, snake,
foodList, foodProvider, lastCell)
)
return;
}//END inner game loop ONE
//Inner game loop TWO - Pause function
while(static_cast<char>(key) == 'P')
{
while(true)
{
loopTimer.SleepUntilUpdate();
//Any key hit, returns to game
if(inputManager.GetNextKeyUpper(&key))
break;
}
}//END inner game loop TWO
Cell lastCell = snake.getLastCell();
//Key pressed, changes direction
switch(key)
{
case c_iKEY_ARROWUP:
snake.up();
break;
case c_iKEY_ARROWDOWN:
snake.down();
break;
case c_iKEY_ARROWLEFT:
snake.left();
break;
case c_iKEY_ARROWRIGHT:
snake.right();
break;
default:
snake.move();
}
//Performing standard runtimeChecks
if(performGameRuntimeChecks(inputManager,score, collisionDetector,
drawEngine, key, snake,
foodList, foodProvider, lastCell)
)
return;
}
}