Qt贪吃蛇-游戏房间窗口(3)

目录

游戏房间

房间渲染

房间背景设置

设置房间标题和尺寸

运动逻辑

定义可能会用到的对象

向上移动逻辑

向下移动

向右移动

判断失败

绘制蛇

初始化贪吃蛇

创建食物

蛇的吃吃吃

绘制食物


连接上文

游戏房间

房间渲染

房间背景设置

背景图比例

绘制背景

设置房间标题和尺寸

运动逻辑

定义可能会用到的对象

蛇也是有宽度和高度的

向上移动逻辑

需要考虑 "出界" 的情况,两点(左上角和右下角)可以确定一个矩形

QPointF 是 Qt 框架中的一个类,它表示一个二维点,其坐标可以是浮点数,我们使用这一个类,即可表示矩形,逻辑如下

向下移动

向右移动

判断失败

在 Qt 中,QList 是一个模板类,它提供了一个列表容器,用于存储和管理一系列元素。QList::at() 方法是一个常量成员函数,它返回列表中指定位置 i 的元素的常量引用。

绘制蛇

绘制蛇包括:蛇头 + 蛇身体 + 蛇尾

初始化贪吃蛇

创建食物

注意:还可以优化

蛇的吃吃吃

这一句可以用来判断蛇是否和食物相交,即蛇是否吃掉食物,其中 intersects 是 QRectF提供的判断两个矩形是否相交的方法,在 Qt 中,QRectF 类的 intersects() 方法用于检查两个矩形是否相交。当你调用 intersects() 方法时,你需要传入另一个 QRectF 对象作为参数。该方法会返回一个布尔值,如果两个矩形有重叠,则返回 true;如果没有重叠,则返回 false

cpp 复制代码
snakeList.front().intersects(foodRect)

绘制食物

相关推荐
叩码以求索4 小时前
经典算法实例分析:写字符串需要的行数
开发语言·javascript·ecmascript
我是唐青枫4 小时前
Kotlin 运算符重载详解:为什么 a += b 有时改对象,有时换对象?
开发语言·kotlin
2zcode4 小时前
基于MATLAB图像处理的饮料瓶识别与价格显示系统设计与实现
开发语言·图像处理·matlab
骑士雄师5 小时前
大模型:临时会话
开发语言·python
尘中远5 小时前
【Qwt 7.0 系列】快速入门与核心新特性概览 —— 更现代的 Qt 数据可视化库
qt·数据可视化·绘图·qwt·科学绘图
努力中的编程者6 小时前
STL-vector的模拟实现
开发语言·c++·算法·stl·vector
薛定猫AI6 小时前
【深度解析】GLM-5.2 与 Z-Code:AI 编程智能体的原理拆解与 Python 调用实战
开发语言·人工智能·python
没文化的阿浩6 小时前
【C++】详解继承机制
开发语言·c++
文祐6 小时前
C语言用双向链表实现单调递减(递增)队列
c语言·开发语言·链表
雪的季节6 小时前
OCR: windows 环境基于c++的 paddle ocr 编译【CPU版本】编译成dll ,在QT、VS中调用
开发语言