首页 > 其他分享 >Qt简单版贪吃?游戏

Qt简单版贪吃?游戏

时间:2023-02-18 19:00:58浏览次数:41  
标签:Widget 游戏 snakeNodeWidth QRectF snake QPointF 贪吃 snakeNodeHeight Qt

Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
resize(480,500);
//设置窗体背景色为黑色
setStyleSheet("QWidget{background:black}");
setWindowOpacity(0.8);//设置窗口的透明度

snake.append(QRectF(200,500,snakeNodeWidth,snakeNodeHeight));
addTopRectF();
addTopRectF();
//首先生成一个奖励节点
rewardNode.append(QRectF(100,100,snakeNodeWidth,snakeNodeWidth));

timer = new QTimer;
connect(timer, SIGNAL(timeout()),this,SLOT(timeOut()));
//timer->start(time);

rewardTimer = new QTimer;
connect(rewardTimer,SIGNAL(timeout()),this,SLOT(rewardTimeOut()));

}
//向上移动
void Widget::addTopRectF()
{
if(snake.at(0).y()-snakeNodeHeight < 0){
snake.insert(0,QRectF(QPointF(snake.at(0).x(),this->height()-snakeNodeHeight),
QPointF(snake.at(0).x()+snakeNodeWidth,this->height())));
}else{
snake.insert(0,QRectF(snake.at(0).topLeft()+QPointF(0,-snakeNodeHeight),snake.at(0).topRight()));
}
}
//向下移动
void Widget::addDownRectF()
{
if(snake.at(0).y()+snakeNodeHeight*2 > this->height()){
snake.insert(0,QRectF(QPointF(snake.at(0).x(),snakeNodeHeight),
QPointF(snake.at(0).x()+snakeNodeWidth,0)));
}else{
snake.insert(0,QRectF(snake.at(0).bottomLeft(),snake.at(0).bottomRight()+QPointF(0,snakeNodeHeight)));
}
}
//向左移动
void Widget::addLeftRectF()
{
if(snake.at(0).x()-snakeNodeWidth < 0){
snake.insert(0,QRectF(QPointF(this->width()-snakeNodeWidth,snake.at(0).y()),
QPointF(this->width(),snake.at(0).y()+snakeNodeHeight)));
}else{
snake.insert(0,QRectF(snake.at(0).topLeft()+QPointF(-snakeNodeWidth,0),snake.at(0).bottomLeft()));
}
}
//向右移动
void Widget::addRightRectF()
{
if(snake.at(0).x()+snakeNodeWidth*2 > this->width()){
snake.insert(0,QRectF(QPointF(0,snake.at(0).y()),
QPointF(snakeNodeWidth,snake.at(0).y()+snakeNodeHeight)));
}else{
snake.insert(0,QRectF(snake.at(0).topRight(),snake.at(0).bottomRight()+QPointF(snakeNodeWidth,0)));
}
}
//删除结尾数据
void Widget::deleteLastRectF()
{
snake.removeLast();

}

Qt简单版贪吃?游戏_背景色

标签:Widget,游戏,snakeNodeWidth,QRectF,snake,QPointF,贪吃,snakeNodeHeight,Qt
From: https://blog.51cto.com/u_15515702/6065502

相关文章

  • 无限循环与游戏循环 java 230218
    循环次数没有上限的循环示例while(true){System.out.println("打游戏");}游戏循环游戏里基本都是无限循环用户可以在适当的时机选择退出这个无限循环importjava.util......
  • 用上Visual Studio后,我的世界游戏的构建时间减少了一半
    今天我们讲述一个使用VisualStudio提升工作效率的案例。我的世界(Minecraft)游戏开发商MojangStudios近日联系了VisualStudioC++团队,因为他们需要将C++开发扩......
  • QT主窗口关闭,同时关闭打开的子窗体
    问题描述:QT主窗口关闭,但打开的子窗体未关闭。解决方式:在子窗体的构造函数中,设置如下属性:this->setAttribute(Qt::WA_QuitOnClose,false);原理解释:我们可以发现,在主窗体......
  • python--石头剪刀布游戏(列表)
    一、学习目标利用列表实现石头剪刀布游戏二、实验环境Pycharm社区版、win11三、代码及运行结果先贴代码,有需要的直接拿,想要进一步一起学习的,接着往下看第四个标题呀,亲。起初......
  • qt的属性,动态属性,与样式表。
    首先参考两篇博客:Qt中的属性系统:https://blog.csdn.net/libaineu2004/article/details/88106976https://blog.csdn.net/feiyangqingyun/article/details/121177993总结:......
  • C语言扫雷游戏简单实现
    这是一篇介绍扫雷游戏的博客,采用C语言实现,主要作为数组的简单实践,包括有游戏实现的简单思路、游戏代码,以及笔者的一些小经验,希望可以给同为小白的同志一些参考,如有错误,还......
  • QT——setMouseTracking函数
    (一)介绍首先介绍一个变量boolmouseTracking,这个变量保存值表示窗口部件跟踪鼠标是否生效。可以通过函数setMouseTracking()来设置其值,可以通过函数hasMouseTracking()来获......
  • 【Unity 3D游戏开发】在Unity使用NoSQL数据库方法介绍
    随着游戏体积和功能的不断叠加,游戏中的数据也变得越来越庞杂,这其中既包括玩家产生的游戏存档等数据,例如关卡数、金币等,也包括游戏配置数据,例如每一关的配置情况。尽管Unity......
  • Halcon与Qt之间的数据类型转换
    【HTuple与QString】(QString)hv_result[0].S();//HTuple转QStringhv_ImagePath=modelImagePath.toStdString().c_str();//QString转HTuple【HTuple与int】hv......
  • Qt Embedded之一:简介与平台插件介绍
    常见的嵌入式Linux图形界面有Qt/Embedded、DirectFB、MicroWindows/NanoX、MiniGUI和OpenGUI等,每个GUI都有各自不同特点和应用场合,在应用编程上也各不相同。而对于......