コード例 #1
0
void GamePan::checkWhoWin()
{
	if(isCheckWin)
		return;
	if(!isCheckWin)
		isCheckWin = true;
	CCNode* fieldNode = m_pCcbNode->getChildByTag(kTagGamePanField);
	bool isWin = false;
	for(int i =kTagGamePanFieldLeft ;i<=kTagGamePanFieldRight;i++)
	{
		CCNode* bar = fieldNode->getChildByTag(i);
		float dis = bar->getPositionY();
		if(dis>=MAX_DISTANCE||dis<= -MAX_DISTANCE)
			isWin = true;
		else
		{
			isWin = false;
			break;
		}
	}
	if(isWin)
	{
		showResult();
	}
	else
	{
		createNextPuzzle();
		_isPlayer = !_isPlayer;
		changeSide();
	}
}
コード例 #2
0
ファイル: chessboard.cpp プロジェクト: longsion/ChineseChess
bool ChessBoard::makeMove(int mv, int& pcCaptured)
{
    pcCaptured = _movePiece(mv);
    if (isChecked())
    {
         _undoMovePiece(mv, pcCaptured);
        pcCaptured = 0;
        return false;
    }
    m_distance++;
    changeSide();
    return true;
}
コード例 #3
0
void GamePan::updateTimer(float delta)
{
	_curTime-=1;
	if(_curTime<0)
	{
		unschedule(schedule_selector(GamePan::updateTimer));
		_isPlayer = !_isPlayer;
		changeSide();
	}
	CCNode* pBaseNode = m_pCcbNode->getChildByTag(kTagGamePanBg);
	CCLabelBMFont* timerTxt = dynamic_cast<CCLabelBMFont*>(pBaseNode->getChildByTag(kTagGamePanBgTimer));
	int timeStr = (int)_curTime;
	timerTxt->setString(Utils::itos(timeStr).c_str());
}
コード例 #4
0
void GamePan::ResultBtnCallBack(CCObject* pSender)
{
	_isPlayer = true;
	_pinyinStr = "";
	_answerStr = "";
	createNextPuzzle();
	changeSide();
	hideResult();
	CCNode* fieldNode = m_pCcbNode->getChildByTag(kTagGamePanField);
	for(int i =kTagGamePanFieldLeft ;i<=kTagGamePanFieldRight;i++)
	{
		CCNode* bar = fieldNode->getChildByTag(i);
		bar->setPositionY(0);
	}
}
コード例 #5
0
void GamePan::doOpen()
{
	GUIBase::doOpen();
	isCheckWin=false;
	_isPlayer = true;
	addNpc(DBManager::sharedDBManager()->getActor(1));
	addPlayer(DBManager::sharedDBManager()->getActor(2));
	initWordList();
	refreshWorldPad();
	showHideConfirmPad(false);
	_curTime = TIME_OUT;

	CCNode* pBaseNode = m_pCcbNode->getChildByTag(kTagGamePanBg);
	CCLabelBMFont* timerTxt = dynamic_cast<CCLabelBMFont*>(pBaseNode->getChildByTag(kTagGamePanBgTimer));
	int timeStr = (int)_curTime;
	timerTxt->setString(Utils::itos(timeStr).c_str());

	changeSide();
}
コード例 #6
0
int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QWidget::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: setPlay(); break;
        case 1: setPause(); break;
        case 2: changeSide(); break;
        case 3: setPenalty(); break;
        case 4: setFreekick(); break;
        case 5: setGoalkick(); break;
        case 6: setFreeball(); break;
        case 7: setInicialPosition(); break;
        case 8: cleanFutRobot(); break;
        default: ;
        }
        _id -= 9;
    }
    return _id;
}
コード例 #7
0
ファイル: chessboard.cpp プロジェクト: longsion/ChineseChess
void ChessBoard::undoMakeMove(int mv, int pcCaptured)
{
    _undoMovePiece(mv, pcCaptured);
    m_distance--;
    changeSide();
}