本文整理汇总了C++中GameScene::addToken方法的典型用法代码示例。如果您正苦于以下问题:C++ GameScene::addToken方法的具体用法?C++ GameScene::addToken怎么用?C++ GameScene::addToken使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GameScene
的用法示例。
在下文中一共展示了GameScene::addToken方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setGameSetup
void GameView::setGameSetup(NewGameSetup *gameSetup)
{
this->gameSetup = gameSetup;
for (int i=0; i<2; ++i) {
}
if (game) delete game;
game = new FourInARowGame(gameSetup->startPlayer, gameSetup->columns, gameSetup->rows );
columnIndex = 0;
if (scene()) delete scene();
GameScene * scene = newScene();
//PrimitivesGameScene * scene = new PrimitivesGameScene(ui->gameView);
//SvgGameScene * scene = new SvgGameScene(ui->gameView);
setScene(scene);
scene->setBoard(game->getBoard());
scene->toggleSound(false);
for (int i=0; i<gameSetup->moveHistory.length(); ++i) {
QString number(gameSetup->moveHistory.at(i));
columnIndex = number.toInt();
game->move(columnIndex);
scene->addToken(i%2, columnIndex, game->getLatestTokenRow());
qDebug() << "column: " << columnIndex;
scene->setupNextToken(columnIndex);
qDebug() << "move: " << columnIndex;
}
scene->toggleSound(true);
printNextPlayer();
if (gameSetup->isCpu[game->getPlayerToMoveNext()]) {
move();
}
}
示例2: move
void GameView::move()
{
GameScene * gameScene = (GameScene*)this->scene();
int player = game->getPlayerToMoveNext();
if (gameSetup->isCpu[player]) {
columnIndex = cpuPlayers[player].getCpuMove(*game);
}
MoveResult res = game->move(columnIndex);
QString message;
switch (res) {
case MoveResult::SUCCESS:
gameScene->addToken(player, columnIndex, game->getLatestTokenRow());
gameSetup->moveHistory.append(QString::number(columnIndex));
gameScene->setupNextToken(columnIndex);
++gameSetup->moves;
printNextPlayer();
break;
case MoveResult::WIN:
gameScene->toggleSound(false);
gameScene->addToken(player, columnIndex, game->getLatestTokenRow());
gameScene->toggleSound(true);
gameSetup->moveHistory.append(QString::number(columnIndex));
gameSetup->startPlayer=player;
gameSetup->finished=1;
++gameSetup->moves;
mainWindow->setStatusMessage( (game->getPlayerToMoveNext()==0 ? gameSetup->player0 : gameSetup->player1)
+ "wins with "
+ QString::number(gameSetup->moves+1)
+ " moves!"
);
gameScene->playerWins( player, game->getWinRow() );
mainWindow->saveGame();
break;
case MoveResult::TIE:
gameScene->toggleSound(false);
gameScene->addToken(player, columnIndex, game->getLatestTokenRow());
gameSetup->moveHistory.append(QString::number(columnIndex));
gameSetup->finished=2;
++gameSetup->moves;
gameScene->tie();
mainWindow->saveGame();
qDebug() << "tie";
mainWindow->setStatusMessage("Game finished with a tie!");
break;
case MoveResult::INVALID_COLUMN:
gameScene->failToken(player, columnIndex, game->getLatestTokenRow());
break;
case MoveResult::FULL_COLUMN:
gameScene->failToken(player, columnIndex, game->getLatestTokenRow());
mainWindow->setStatusMessage( "Column is full, try another one "
+ (game->getPlayerToMoveNext()==0 ? gameSetup->player0 : gameSetup->player1)
+ "!"
);
break;
}
// if game isnt finished and next player is cpu, begin next turn immediately
if (!game->isFinished() && gameSetup->isCpu[game->getPlayerToMoveNext()]) {
move();
}
}