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

目录

游戏房间

房间渲染

房间背景设置

设置房间标题和尺寸

运动逻辑

定义可能会用到的对象

向上移动逻辑

向下移动

向右移动

判断失败

绘制蛇

初始化贪吃蛇

创建食物

蛇的吃吃吃

绘制食物


连接上文

游戏房间

房间渲染

房间背景设置

背景图比例

绘制背景

设置房间标题和尺寸

运动逻辑

定义可能会用到的对象

蛇也是有宽度和高度的

向上移动逻辑

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

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

向下移动

向右移动

判断失败

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

绘制蛇

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

初始化贪吃蛇

创建食物

注意:还可以优化

蛇的吃吃吃

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

snakeList.front().intersects(foodRect)

绘制食物

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/898680.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大模型】AutoDL部署AI绘图大模型Stable Diffusion使用详解

目录 一、前言 二、AI绘图大模型概述 2.1 AI绘图大模型介绍 2.2 AI绘图大模型特点 2.3 AI绘图大模型优势 三、主流的AI绘图大模型介绍 3.1 Midjourney 3.1.1 Midjourney介绍 3.1.2 Midjourney功能特点 3.1.3 Midjourney使用场景 3.2 Stable Diffusion 3.2.1 Stable …

【资料集】项目全周期过程管理资料、各类软件建设方案、源码梳理清单(全原件)

该资源库深度覆盖开发、运维、实施等核心流程,全面囊括项目从立项至结项的各类必需文档,如验收辅助材料、资质审核流程及投标策略方案等,确保项目生命周期的每个阶段都能找到相应的支持与依据。此外,资源库精心整理了研发流程细节…

代码随想录算法训练营第46期Day37,38,39,41

这几天晚上看比赛,就把刷题耽误了。还好是开新章节,前面的题都比较简单。 然后周天做完了又忘记发了 动态规划 确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数 Day37前两道题太简单…

DBeaver查看已保存连接的密码

打开Dbeaver窗口菜单-首选项-工作空间,找到工作空间路径 在文件管理器中打开工作空间路径\General.dbeaver,找到credentials-config.json。 在Linux下,使用如下命令对credentials-config.json文件进行解密 openssl aes-128-cbc -d -K babb4…

简历怎么写?怎么准备面试?怎么让面试官感兴趣?

视频地址:如何写好简历打开找工作的第一道门_哔哩哔哩_bilibili项目介绍不过关,项目责任不清楚,项目技术方案有漏洞,项目优势不明显,八股文没有准备好。都是面试大忌讳。, 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚…

AI 搜索战火重燃:Perplexity 企业版 VS Glean AI | LeetTalk Daily

“LeetTalk Daily”,每日科技前沿,由LeetTools AI精心筛选,为您带来最新鲜、最具洞察力的科技新闻。 在当今快速发展的人工智能(AI)领域,企业面临着日益增长的数据碎片化挑战。为了提高生产力和决策效率&am…

【element-tiptap】如何把分隔线改造成下拉框的形式?

当前的分隔线只有细横线这一种形式 但是咱们可以看一下wps中的分隔线,花里胡哨的 这些在wps里都需要使用快捷键打出来,真没找到菜单在哪里 那么这篇文章咱们就来看一下如何改造分隔线组件,改造成下拉框的形式,并且把咱们想要的分…

数据结构-八大排序之归并排序

归并排序 一、概念 归并排序(Merge sort)是建立在归并操作上的一种有效、稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使…

友思特技术 | 视觉阶梯发展:传感器材料对短波红外成像技术的影响

导读 短波红外成像技术的发展受到了传感器材料种类的限制与推动,从硅基到铟镓砷,从量子点到锗基,丰富的材料影响着短波红外相机的分辨率、质量、成本等性能特征。 短波红外成像与传感器 短波红外光通常定义在 900 - 1700nm,相比…

使用 Python 处理 CSV 文件

文章目录 常见问题及解决方案使用 Python 处理 CSV 文件:全面指南CSV 文件的基本概念使用内置 csv 模块使用 pandas 库处理缺失值使用 DictReader 和 DictWriter案例分析最佳实践参考资源性能比较结论 常见问题及解决方案 问题:文件编码错误 解决方案&am…

大厂为什么要禁止使用数据库自增主键

大表为何不能用自增主键? 数据库自增主键,以mysql为例,设置表的ID列为自动递增,便可以在插入数据时,ID字段值自动从1开始自动增长,不需要人为干预。 在小公司,或者自己做项目时,设置…

Ollama 离线安装

1. 查看服务器CPU的型号 ## 查看Linux系统CPU型号命令,我的服务器cpu型号是x86_64 lscpu 2. 根据CPU型号下载Ollama安装包,并保存到/home/Ollama目录 我下载的是Ollama的v0.1.31版本,后面均以此版本为例说明 下载地址 https://github.…

拴柱说Mac之Mac的高效使用技巧第三期

Mac的设计有着非常多的使用技巧,这些技巧能够极大的提高你的使用效率,但是还是有许多人并不知道,那么今天Mac高效使用技巧分享第三期来了 Mac有一个独特的设置,那就触发角,触发角有着非常多的妙用 在 “系统偏好设置…

为什么计算机科学存在图灵机和Lambda演算两种世界观,而量子力学却存在三种世界图景?

计算机科学存在两种基本的世界观:图灵机和Lambda演算,它们指出了到达图灵完备的两条技术路线。但是量子力学中却存在着三种世界图景:薛定谔图景,海森堡图景和狄拉克图景。为什么计算机科学有两种基本世界观,但是量子力…

【Python数据可视化】利用Matplotlib绘制美丽图表!

【Python数据可视化】利用Matplotlib绘制美丽图表! 数据可视化是数据分析过程中的重要步骤,它能直观地展示数据的趋势、分布和相关性,帮助我们做出明智的决策。在 Python 中,Matplotlib 是最常用的可视化库之一,它功能…

Netty-TCP服务端粘包、拆包问题(两种格式)

前言 最近公司搞了个小业务,需要使用TCP协议,我这边负责服务端。客户端是某个设备,客户端传参格式、包头包尾等都是固定的,不可改变,而且还有个蓝牙传感器,透传数据到这个设备,然后通过这个设备…

使用ORDER BY排序

在一个不明确的查询结果中排序返回的行。ORDER BY子句用于排序。如果使用了ORDER BY子句,它必须位于SQL语句的最后。 SELECT语句的执行顺序如下: 1.FROM子句 2.WHERE子句 3.SELECT子句 4.ORDER BY子句 示例一:查询employees表中的所有雇…

通俗易懂的入门 Axure RP文章 ,速学

目录 1. Axure RP简介? 2. Axure RP基本操作 (1)入门理解 (2)插入形状 (3)位置对齐、 (4)资源库 3. Axure RP基本交互 (1)切换不同的页面 …

进程间通信大总结Linux

目录 进程间通信介绍 进程间通信目的 进程间通信发展 进程间通信分类 管道 System V IPC POSIX IPC 管道 什么是管道 匿名管道 用fork来共享管道原理 站在文件描述符角度-深度理解管道 管道读写规则 管道特点 命名管道 创建一个命名管道 匿名管道与命名管道的区…

《云原生安全攻防》-- K8s攻击案例:权限维持的攻击手法

在本节课程中,我们将一起深入了解K8s权限维持的攻击手法,通过研究这些攻击手法的技术细节,来更好地认识K8s权限维持所带来的安全风险。 在这个课程中,我们将学习以下内容: K8s权限维持:简单介绍K8s权限维持…