基于qt的贪吃蛇游戏 c语言,基于QT5.4的C++贪吃蛇小游戏

本文介绍了如何使用C++和QT5.4框架开发一款贪吃蛇游戏。通过定时器和键盘事件监听来控制蛇的移动,同时处理游戏碰撞检测和分数更新。游戏画面包括障碍物、蛇身、苹果以及边界,当蛇吃到苹果时,分数增加,游戏继续;撞到自身或墙壁则游戏结束。
摘要由CSDN通过智能技术生成

游戏核心代码:

void myWidget::timerEvent(QTimerEvent *e){//定时器

if(e->timerId() == timerId && gamePause){

if(direction == s_right){

goRight();

}else if(direction == s_up){

goUp();

}else if(direction == s_down){

goDown();

}else if(direction == s_left){

goLeft();

}

//qDebug()<

if(isEated){

strScore = QString::number(score);

ui->label->setText(strScore);

}

update();

if(crashed){

player->stop();

player_gg->play();

Sleep(1000);

MessageBox(0, TEXT("不要灰心!继续游戏??"), TEXT("Sorry,defeat!!"), 0);//游戏结束时

gamePause = !gamePause;

init();

strScore = QString::number(score);

ui->label->setText(strScore);

}

}

}

void myWidget::keyPressEvent(QKeyEvent *e){//键盘事件监听

// qDebug()<key();

if(gameStart){//游戏开始时才可以手动

if(e->key() == Qt::Key_W){

if(direction == s_down) return;//不做处理

direction = s_up;

//if(e->isAutoRepeat())//重复按下再快跑会有迟钝效果。。

goUp();

if(isEated)

createApple();//随机产生苹果位置

}else if(e->key() == Qt::Key_S){

if(direction == s_up) return;//不做处理

direction = s_down;

goDown();

if(isEated)

createApple();//随机产生苹果位置

}else if(e->key() == Qt::Key_A){

if(direction == s_right) return;//不做处理

direction = s_left;

goLeft();

if(isEated)

createApple();//随机产

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值