void MainWindow::on_actionStart_triggered() { if(start == 0) { start = 1; shape = nextShape; RangeNextShape(); QList<QPoint> list = shape.getIndexPoints(); for (int col=0;col<maxWidth;col++) { for (int row=0;row<maxHeight;row++) { gridTab[col][row]->setState(0); } } foreach(QPoint poi,list) { gridTab[poi.x()][poi.y()]->setState(1); } scores = 0; ui->score->setNum(scores); timerId = startTimer(100); timerCounts = 5; } }
时间: 2024-04-11 08:32:35 浏览: 50
显示静态图像-design_expert8.0响应面中文教程
这段代码是MainWindow类的一个槽函数,当触发了名为"actionStart"的动作时会被调用。
在函数中,首先通过条件判断检查变量"start"的值是否为0。如果是,则执行以下操作:
1. 将变量"start"的值设置为1,表示游戏已经开始。
2. 将变量"shape"的值设置为"nextShape",即将当前形状设置为下一个形状。
3. 调用函数"RangeNextShape()",用于生成并设置下一个形状。
4. 遍历整个网格,将所有网格项的状态设置为0(背景状态)。
5. 遍历当前形状的索引点列表,将对应网格项的状态设置为1(移动状态)。
6. 将得分"score"重置为0,并在用户界面上更新显示。
7. 调用startTimer()函数启动一个计时器,每100毫秒触发一次计时器事件。
8. 将计时器次数"timerCounts"设置为5。
通过以上操作,该槽函数实现了开始游戏的功能,包括设置当前形状、更新网格显示、重置得分和启动计时器等操作。
阅读全文