找回密码
 立即注册
收起左侧

QT俄罗斯方块

3
回复
8368
查看
[复制链接]
累计签到:26 天
连续签到:1 天
来源: 2013-10-29 21:34:34 显示全部楼层 |阅读模式
1Qter豆
用QT 做的在俄罗斯方块中如何实现分数和等级一直循环上升,除非方块堆满后游戏无法继续才会游戏结束呢?

最佳答案

查看完整内容

例子里面因为每个级别都进行了特殊设置,所以必须单独写。 如果你什么设置都不需要,只更改一下分数或者等级名称,分数直接像那样相加即可,而等级可以通过判断分数是500的多少倍来设置。 比如:int dengji = currentScore / 500 + 1;
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2013-10-29 21:34:35 显示全部楼层
李丽明 发表于 2013-10-30 23:09
我是按社区的代码做的,用最原代码的方法实现了,我就设置了6个等级,分数可以增加,用for 循环来做等级 ...

例子里面因为每个级别都进行了特殊设置,所以必须单独写。

如果你什么设置都不需要,只更改一下分数或者等级名称,分数直接像那样相加即可,而等级可以通过判断分数是500的多少倍来设置。

比如:int dengji = currentScore / 500 + 1;
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2013-10-30 19:39:04 显示全部楼层
这个写个函数就可以了啊。会写前面几个等级了,后面照着写就行啊,根据自己的设置,让分数一直加,加到一定了就加一个等级。


不知道你哪里有问题?这个在例子里面有的,按自己的想法改改就可以。
回复

使用道具 举报

累计签到:26 天
连续签到:1 天
2013-10-30 23:09:49 显示全部楼层
yafeilinux 发表于 2013-10-30 19:39
这个写个函数就可以了啊。会写前面几个等级了,后面照着写就行啊,根据自己的设置,让分数一直加,加到一定 ...

我是按社区的代码做的,用最原代码的方法实现了,我就设置了6个等级,分数可以增加,用for 循环来做等级的上升可以吗?给一些思路。

/ 更新分数
void MyView::updateScore(const int fullRowNum)
{
    int score = fullRowNum * 100;
    int currentScore = gameScoreText->toPlainText().toInt();
    currentScore += score;
    // 显示当前分数
    gameScoreText->setHtml(tr("<font color=red>%1</font>").arg(currentScore));
    // 判断级别
    if (currentScore < 500) {
        // 第一级,什么都不用做
    } else if (currentScore < 1000) { // 第二级
         gameLevelText->setHtml(tr("<font color=white>第<br>二<br>幕</font>"));
         scene()->setBackgroundBrush(QPixmap(":/images/background02.png"));
         gameSpeed = 300;
         boxGroup->stopTimer();
         boxGroup->startTimer(gameSpeed);

         if (QFileInfo(backgroundMusic->currentSource().fileName()).baseName()
                 != "background02") {
             backgroundMusic->setCurrentSource(Phonon::MediaSource(SOUNDPATH + "background02.mp3"));
             backgroundMusic->play();
         }
    } else {
        // 添加下一个级别的设置
        if (currentScore < 1000) { // 第二级
                       } else if (currentScore < 1500) { // 第3J
                     gameLevelText->setHtml(tr("<font color=white>第<br>三<br>幕</font>"));
                     scene()->setBackgroundBrush(QPixmap(":/images/Water lilies.jpg"));
                     gameSpeed = 300;//方块的下落速度
                     boxGroup->stopTimer();
                     boxGroup->startTimer(gameSpeed);
                 }else {
                     if (currentScore < 1500) { // 第3J
                           } else if (currentScore < 2000) { // 第四级
                         gameLevelText->setHtml(tr("<font color=white>第<br>四<br>幕</font>"));
                         scene()->setBackgroundBrush(QPixmap(":/images/t019.jpg"));
                         gameSpeed = 200;//方块的下落速度
                         boxGroup->stopTimer();
                         boxGroup->startTimer(gameSpeed);
                 }else{
                         if (currentScore < 2000) { // 第3J
                               } else if (currentScore < 2500) { // 第四级
                             gameLevelText->setHtml(tr("<font color=white>第<br>五<br>幕</font>"));
                             scene()->setBackgroundBrush(QPixmap(":/images/t019.jpg"));
                             gameSpeed = 100;//方块的下落速度
                             boxGroup->stopTimer();
                             boxGroup->startTimer(gameSpeed);
                         }else{
                                             if (currentScore < 2000) { // 第五级
                                                   } else if (currentScore < 2500) { // 第六级
                                                 gameLevelText->setHtml(tr("<font color=white>第<br>六<br>幕</font>"));
                                                 scene()->setBackgroundBrush(QPixmap(":/images/t019.jpg"));
                                                 gameSpeed = 90;//方块的下落速度
                                                 boxGroup->stopTimer();
                                                 boxGroup->startTimer(gameSpeed);
                                             }
                         }
                     }
                 }
         }
     }

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了