当前位置: 首页>>代码示例>>C++>>正文


C++ Snake::getLastCell方法代码示例

本文整理汇总了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;
	}
}
开发者ID:sangar,项目名称:Snake,代码行数:80,代码来源:GameController.cpp


注:本文中的Snake::getLastCell方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。