ui: 右侧信息栏显示比分
This commit is contained in:
parent
79effc7ec0
commit
0257824b6f
|
@ -23,7 +23,7 @@
|
|||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="GameView" name="gameView">
|
||||
<property name="sizePolicy">
|
||||
|
@ -57,7 +57,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>491</width>
|
||||
<height>22</height>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menu_F">
|
||||
|
@ -384,6 +384,79 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="labelScore">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>黑体</family>
|
||||
<pointsize>9</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>比分:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLCDNumber" name="scoreLcdNumber_1">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="smallDecimalPoint">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="digitCount">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="value" stdset="0">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLCDNumber" name="scoreLcdNumber_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::Box</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<property name="digitCount">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="mode">
|
||||
<enum>QLCDNumber::Dec</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLCDNumber" name="scoreLcdNumber_draw">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="smallDecimalPoint">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="digitCount">
|
||||
<number>2</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
|
|
|
@ -53,9 +53,7 @@ GameController::GameController(GameScene & scene, QObject * parent) :
|
|||
timeID(0),
|
||||
ruleNo_(-1),
|
||||
timeLimit(0),
|
||||
stepsLimit(50),
|
||||
score1(-2),
|
||||
score2(-2)
|
||||
stepsLimit(50)
|
||||
{
|
||||
// 已在view的样式表中添加背景,scene中不用添加背景
|
||||
// 区别在于,view中的背景不随视图变换而变换,scene中的背景随视图变换而变换
|
||||
|
@ -133,16 +131,9 @@ void GameController::gameReset()
|
|||
timeID = 0;
|
||||
|
||||
// 棋未下完,则算对手得分
|
||||
if (score1 < 0 || score2 < 0) {
|
||||
score1++;
|
||||
score2++;
|
||||
}
|
||||
else {
|
||||
if (chess_.getStage() == NineChess::GAME_MOVING &&
|
||||
chess_.whoWin() == NineChess::NOBODY)
|
||||
{
|
||||
giveUp();
|
||||
}
|
||||
if (chess_.getStage() == NineChess::GAME_MOVING &&
|
||||
chess_.whoWin() == NineChess::NOBODY) {
|
||||
giveUp();
|
||||
}
|
||||
|
||||
#ifdef LCD_SHOW_SCORE_INSTEAD_OF_TIME
|
||||
|
@ -234,6 +225,11 @@ void GameController::gameReset()
|
|||
message = QString::fromStdString(chess_.getTips());
|
||||
emit statusBarChanged(message);
|
||||
|
||||
// 更新比分 LCD 显示
|
||||
emit score1Changed(QString::number(chess_.score_1, 10));
|
||||
emit score2Changed(QString::number(chess_.score_2, 10));
|
||||
emit scoreDrawChanged(QString::number(chess_.score_draw, 10));
|
||||
|
||||
// 播放音效
|
||||
//playSound(":/sound/resources/sound/newgame.wav");
|
||||
}
|
||||
|
@ -561,12 +557,6 @@ void GameController::timerEvent(QTimerEvent *event)
|
|||
// 弹框
|
||||
//QMessageBox::about(NULL, "游戏结果", message);
|
||||
|
||||
if (chess_.whoWin() == NineChess::PLAYER1) {
|
||||
score1++;
|
||||
} else if (chess_.whoWin() == NineChess::PLAYER2) {
|
||||
score2++;
|
||||
}
|
||||
|
||||
#ifdef LCD_SHOW_SCORE_INSTEAD_OF_TIME
|
||||
emit time1Changed(QString::number(score1, 10));
|
||||
emit time2Changed(QString::number(score2, 10));
|
||||
|
@ -770,13 +760,11 @@ bool GameController::giveUp()
|
|||
|
||||
if (chess_.whosTurn() == NineChess::PLAYER1) {
|
||||
result = chess_.giveup(NineChess::PLAYER1);
|
||||
score2++;
|
||||
chess_.score_2++;
|
||||
}
|
||||
else if (chess_.whosTurn() == NineChess::PLAYER2) {
|
||||
result = chess_.giveup(NineChess::PLAYER2);
|
||||
score1++;
|
||||
chess_.score_2++;
|
||||
chess_.score_1++;
|
||||
}
|
||||
|
||||
if (result) {
|
||||
|
@ -1083,6 +1071,11 @@ bool GameController::updateScence(NineChess &chess)
|
|||
|
||||
animationGroup->start(QAbstractAnimation::DeleteWhenStopped);
|
||||
|
||||
// 更新比分 LCD 显示
|
||||
emit score1Changed(QString::number(chess.score_1, 10));
|
||||
emit score2Changed(QString::number(chess.score_2, 10));
|
||||
emit scoreDrawChanged(QString::number(chess.score_draw, 10));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -95,7 +95,16 @@ public:
|
|||
|
||||
signals:
|
||||
|
||||
// 玩家1(先手)用时改变的信号
|
||||
// 玩家1(先手)赢盘数改变的信号
|
||||
void score1Changed(const QString &score);
|
||||
|
||||
// 玩家2(后手)赢盘 数改变的信号
|
||||
void score2Changed(const QString &score);
|
||||
|
||||
// 和棋数改变的信号
|
||||
void scoreDrawChanged(const QString &score);
|
||||
|
||||
// 玩家1(先手)用时改变的信号
|
||||
void time1Changed(const QString &time);
|
||||
|
||||
// 玩家2(后手)用时改变的信号
|
||||
|
@ -236,12 +245,6 @@ private:
|
|||
// 玩家2剩余时间(毫秒)
|
||||
long remainingTime2;
|
||||
|
||||
// 玩家1赢盘数
|
||||
int score1;
|
||||
|
||||
// 玩家2赢盘数
|
||||
int score2;
|
||||
|
||||
// 用于主窗口状态栏显示的字符串
|
||||
QString message;
|
||||
|
||||
|
|
|
@ -216,6 +216,18 @@ void NineChessWindow::initialize()
|
|||
|
||||
// 关联控制器的信号和主窗口控件的槽
|
||||
|
||||
// 更新LCD,显示玩家1赢盘数
|
||||
connect(game, SIGNAL(score1Changed(QString)),
|
||||
ui.scoreLcdNumber_1, SLOT(display(QString)));
|
||||
|
||||
// 更新LCD,显示玩家2赢盘数
|
||||
connect(game, SIGNAL(score2Changed(QString)),
|
||||
ui.scoreLcdNumber_2, SLOT(display(QString)));
|
||||
|
||||
// 更新LCD,显示和棋数
|
||||
connect(game, SIGNAL(scoreDrawChanged(QString)),
|
||||
ui.scoreLcdNumber_draw, SLOT(display(QString)));
|
||||
|
||||
// 更新LCD1,显示玩家1用时
|
||||
connect(game, SIGNAL(time1Changed(QString)),
|
||||
ui.lcdNumber_1, SLOT(display(QString)));
|
||||
|
|
Loading…
Reference in New Issue