QT下实现贪吃蛇游戏前期准备

通过查找资料学习对应功能与模块

1.按键的处理

{

    switch(e->key())

    {

    case Qt::Key_Up:if(m_setDiretion!=2)m_setDiretion=1;  break;

    case Qt::Key_W:if(m_setDiretion!=2)m_setDiretion=1;  break;

    case Qt::Key_Down:if(m_setDiretion!=1)m_setDiretion=2;  break;

    case Qt::Key_S:if(m_setDiretion!=1)m_setDiretion=2;  break;

    case Qt::Key_Left:if(m_setDiretion!=4)m_setDiretion=3;  break;

    case Qt::Key_A:if(m_setDiretion!=4)m_setDiretion=3;  break;

    case Qt::Key_Right:if(m_setDiretion!=3)m_setDiretion=4;  break;

    case Qt::Key_D:if(m_setDiretion!=3)m_setDiretion=4;  break;

    default:                   break;

    }

}

2.设置随机数

qsrand(time(NULL));

3.计时

qsrand(time(NULL));

void Gamewidget::M_startPush()

{

    Timer->start(800);

    disconnect(StartPush,SIGNAL(clicked(bool)),this,SLOT(M_startPush()));

    StartPush->setIcon(QIcon(":/Picture/img/Pause.png"));

    connect(StartPush,SIGNAL(clicked(bool)),this,SLOT(M_pausePush()));

}

4.游戏功能

void Gamewidget::M_timeout()

{

    if(snake[0][0]==foodx&&snake[0][1]==foody)

    {

        foodx=(rand()%20)*30;

        foody=(rand()%15)*30;

        bodycount++;

        Difficulty=bodycount/5+1;

        Score=Score+Difficulty;

        ScoreLabelNumber->setText(QString::number(Score)+"分");

        LevelLabelNumber->setText(QString::number(Difficulty)+"级");

        Timer->start(800-Difficulty>0? 800-Difficulty*80:80/(Difficulty-8));

    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值