云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Qt课程设计--贪吃蛇游戏设计

Qt课程设计--贪吃蛇游戏设计

  • 62 次阅读
  • 3 次下载
  • 2025/5/23 7:55:35

int s=data.size(); int ws=wdata.size(); int n;

//蛇头不能与蛇身重合 for(n=1;n

int bhx=data[n]->x(); int bhy=data[n]->y(); if(nhx==bhx&&nhy==bhy) {

QString word=\ Over!\\nEat yourself!So you die!\; GameOver(word); } }

//蛇头不能撞墙 for(n=1;n

int wx=wdata[n]->x(); int wy=wdata[n]->y(); if(nhx==wx&&nhy==wy) {

QString word=\ Over!\\nEat yourshit!So you die!\; GameOver(word); } }

//蛇头与食物重合

if(nhx==food->x()&&nhy==food->y()) {

if(data.size()>6) {

for(int cc=0;cc<5;cc++) {

data[data.size()-1]->setPalette(QPalette(QColor(130,130,130))); wdata.push_back(data[data.size()-1]); data.pop_back(); } }

13

food->hide(); food=getFood(); }

//蛇头位置超过边界 if(nhx<0) {

nhx=800; }

if(nhx>800) {

nhx=-20; }

if(nhy<0) {

nhy=480; }

if(nhy>480) {

nhy=-20; } //移动

s=data.size(); switch(dire) {

case d_up:nhy-=20;break; case d_down:nhy+=20;break; case d_left:nhx-=20;break; case d_right:nhx+=20;break; default:break; }

//后一个向前一个移动 for(int i=s-1;i>0;i--) {

data[i]->move(data[i-1]->x(),data[i-1]->y()); }

data[0]->move(nhx,nhy); }

14

//键盘操作

void deathsnake::keyPressEvent(QKeyEvent *e) {

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

if(dire==d_down); else dire=d_up; }

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

if(dire==d_up); else dire=d_down; }

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

if(dire==d_right); else dire=d_left; }

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

if(dire==d_left); else dire=d_right; } else ; } //计时器

void deathsnake::timerEvent(QTimerEvent *e) {

sec++;

if(sec>9&&hou==0) {

min++;

jsq2->resize(128,128); jsq2->move(282,176); jsq->move(390,176); sec=0; clear=true;

15

}

if(sec>9&&hou!=0) {

min++; sec=0; }

if(min>9) {

hou++;

jsq3->resize(128,128); jsq3->move(228,176); jsq2->move(336,176); jsq->move(444,176); min=0; sec=0; }

jsq->setPixmap(QString::number(sec)+\); jsq2->setPixmap(QString::number(min)+\); jsq3->setPixmap(QString::number(hou)+\); if(time==20) {

QString word=\ win!\; GameOver(word); } time-=2;

timer->setInterval(time); data.push_back(snakeGrow()); if(clear==true&&wdata.size()>0) {

wdata[0]->hide(); wdata.pop_front(); } }

//游戏结束

void deathsnake::GameOver(QString go) {

QMessageBox msg;

16

搜索更多关于: Qt课程设计--贪吃蛇游戏设计 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

int s=data.size(); int ws=wdata.size(); int n; //蛇头不能与蛇身重合 for(n=1;nx(); int bhy=data[n]->y(); if(nhx==bhx&&nhy==bhy) { QString word=\ Over!\\nEat yourself!So you die!\; GameOver(word); } } //蛇头不能撞墙 for(n=1;n

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com