STM32学习笔记二十二:WS2812制作像素游戏屏-飞行射击游戏(12)总结
至此,飞行射击游戏已经基本实现该有的功能,已经比较接近早期的商业游戏了。
如果采用脚本,可以完成关卡游戏,如果不用,也可以做成无限挑战游戏。
我们汇总一下制作的过程:
1、建模UML

2、主循环处理过程
//清屏
ws2812_pixel_all(0, 0, 0);
//背景行动
backGroundStar.tick(t);
//玩家1行动
player1->tick(t, b1);
//玩家2行动
player2->tick(t, b2);
//子弹行动
bulletManager.tick(t);
//敌人行动
enemyManager.tick(t);
//掉落物行动
propManager.tick(t);
// 检查玩家1道具使用特效的碰撞
checkEffectCollision(t, player1);
// 检查玩家2道具使用特效的碰撞
checkEffectCollision(t, player2);
// 检查敌机的碰撞
checkEnemyCollision();
// 检查玩家的碰撞
checkPlayerCollision();
// 检查掉落物的碰撞,捡拾道具
checkPropCollision();
// 绘制背景到缓冲区
backGroundStar.show();
// 绘制敌机到缓冲区
enemyManager.show();
// 绘制玩家1到缓冲区
player1->show();
// 绘制玩家2到缓冲区
player2->show();
// 绘制掉落物到缓冲区
propManager.show();
// 绘制子弹到缓冲区
bulletManager.show();
// 绘制缓冲区到屏幕
ws2812_show();
3、游戏制作部分文档:
STM32学习笔记二十一:WS2812制作像素游戏屏-飞行射击游戏(11)探索游戏脚本
STM32学习笔记二十:WS2812制作像素游戏屏-飞行射击游戏(10)探索游戏平衡
STM32学习笔记十九:WS2812制作像素游戏屏-飞行射击游戏(9)探索道具系统
STM32学习笔记十八:WS2812制作像素游戏屏-飞行射击游戏(8)探索游戏多样性,范围伤害模式
STM32学习笔记十七:WS2812制作像素游戏屏-飞行射击游戏(7)探索动画之故事板,复杂动画
STM32学习笔记十六:WS2812制作像素游戏屏-飞行射击游戏(6)探索动画之插值动画
STM32学习笔记十五:WS2812制作像素游戏屏-飞行射击游戏(5)探索动画之帧动画
STM32学习笔记十四:WS2812制作像素游戏屏-飞行射击游戏(4)探索碰撞检测
STM32学习笔记十三:WS2812制作像素游戏屏-飞行射击游戏(3)探索数据管理,比例分布随机数算法
STM32学习笔记十二:WS2812制作像素游戏屏-飞行射击游戏(2)探索时间间隔同步,双向链表
STM32学习笔记十一:WS2812制作像素游戏屏-飞行射击游戏(1)探索空间同步
4、PCB 板制造文件,可提交PCB打样:
STM32学习笔记十:WS2812制作像素游戏屏(贪吃蛇大作战) PBC制版文件,可以提交打板服务
5、所有代码打包下载:
↑ 置顶 ↑
6、像素屏制作部分:
STM32学习笔记三:WS2812制作像素游戏屏(制作)
最终效果:
【vvind2008】新作上线,快来看看!
功能上,还缺少 音乐音效 / 进度保存读取 。早期单机版游戏基本就这样了。
这些东西我们将在未来的改进中实现。如有兴趣,敬请期待。
相关文章:
STM32学习笔记二十二:WS2812制作像素游戏屏-飞行射击游戏(12)总结
至此,飞行射击游戏已经基本实现该有的功能,已经比较接近早期的商业游戏了。 如果采用脚本,可以完成关卡游戏,如果不用,也可以做成无限挑战游戏。 我们汇总一下制作的过程: 1、建模UML 2、主循环处理过程…...
astadmin安装querylist插件Puppeteer
我本来是想在linux服务器上安装,折腾了一天也没安装成功,由于急着用,就先做window10上安装了,以后有时间再研究centos7上安装 一 首先需要安装fastadmin 框架和querylist插件 这个大家可以自行安装,querylist安装地址…...
Python从入门到网络爬虫(MySQL链接)
前言 在实际数据分析和建模过程中,我们通常需要从数据库中读取数据,并将其转化为 Pandas dataframe 对象进行进一步处理。而 MySQL 数据库是最常用的关系型数据库之一,因此在 Python 中如何连接 MySQL 数据库并查询数据成为了一个重要的问题…...
2020年认证杯SPSSPRO杯数学建模A题(第二阶段)听音辨位全过程文档及程序
2020年认证杯SPSSPRO杯数学建模 A题 听音辨位 原题再现: 把若干 (⩾ 1) 支同样型号的麦克风固定安装在一个刚性的枝形架子上 (架子下面带万向轮,在平地上可以被水平推动或旋转,但不会歪斜),这样的设备称为一个麦克风树。不同的麦…...
深入理解CRON表达式:时间调度的艺术
😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…...
网络安全—模拟IP代理隐藏身份
文章目录 网络拓扑安装使用代理服务器设置隐藏者设置 使用古老的ccproxy实现代理服务器,仅做实验用途,禁止做违法犯罪的事情,后果自负。 网络拓扑 均使用Windows Server 2003系统 Router 外网IP:使用NAT模式 IP DHCP自动分配或者…...
Resilience4j相关问题及答案(2024)
1、什么是Resilience4j,与Hystrix有何不同? Resilience4j是一个为Java 8和函数式编程设计的故障恢复库,它主要利用了Vavr库中的函数式编程概念。Resilience4j提供了一系列的故障恢复机制,包括断路器(Circuit Breaker&…...
XSKY SDS 产品率先获得 OceanBase V4 新版本认证
近日,北京奥星贝斯科技有限公司(简称:OceanBase)与北京星辰天合科技股份有限公司(简称:XSKY 星辰天合)顺利完成产品兼容性认证。 XSKY 的高性能全闪存储以及混闪存储,与 OceanBase V…...
系统学习Python——类(class):静态方法(staticmethod)和类方法(classmethod)-[基础知识]
分类目录:《系统学习Python》总目录 我们可以在类中定义两种方法,它们不需要一个实例就可以被调用:静态方法(staticmethod)大致与一个类中简单的无实例函数的工作方式类似,而类方法则被传人一个类而不是一个…...
kotlin isEmpty/isNotEmpty/isNullOrEmpty和isBlank/isNotBlank/isNullOrBlank
kotlin 中 isEmpty :如果判断的字符为空返回值返回true否则返回false 它的源码 kotlin.internal.InlineOnly public inline fun CharSequence.isEmpty(): Boolean length 0 length 0: 首先检查字符序列的长度是否为 0。如果长度为 0,则表明这个字…...
Qt/QML编程学习之心得:Linux下USB接口使用(25)
很多linux嵌入式系统都有USB接口,那么如何使用USB接口呢? 首先,linux的底层驱动要支持,在linux kernal目录下可以找到对应的dts文件,(device tree) usb0: usb@ee520000{compatible = "myusb,musb";status = "disabled";reg = <0xEE520000 0x100…...
概率论与数理统计 知识点+课后习题
文章目录 💖 [学习资源整合](https://www.cnblogs.com/duisheng/p/17872980.html)📚 总复习📙 选择题📙 填空题📙 大题1. 概率2. 概率3. 概率4. P5. 概率6. 概率密度函数 F ( X ) F(X) F(X)7. 分布列求方差 V ( X ) …...
Spring Boot实战:深入理解@Service与@Mapper注解
1. Service 注解 Service 是Spring框架提供的一个注解,用于标记类为业务逻辑层的组件。当类上标注了Service注解后,Spring容器会自动扫描并创建该类的一个实例(即Bean),这样我们就可以在其他地方通过自动装配…...
【DevOps-06】Jenkins实现CI/CD操作
一、简要说明 基于Jenkins拉取GitLab的SpringBoot代码进行构建发布到测试环境实现持续集成 基于Jenkins拉取GitLab指定发行版本的SpringBoot代码进行构建发布到生产环境实现CD实现持续部署 二、准备Springboot工程 1、IDEA新建工程 2、填写项目工程信息 3、选择Springboot版本…...
华为面经总结
为了帮助大家更好的应对面试,我整理了往年华为校招面试的题目,供大家参考~ 面经1 技术一面 自我介绍说下项目中的难点volatile和synchronized的区别, 问的比较细大顶堆小顶堆怎么删除根节点CSRF攻击是什么,怎么预防线程通信方式…...
大模型实战营Day1 书生·浦语大模型全链路开源体系
1.大模型为发展通用人工智能的重要途经 专用模型:针对特定任务解决特定问题 通用大模型:一个模型对应多模态多任务 2.InternLM大模型开源历程 3.InternLM-20B大模型性能 4.从模型到应用:智能客服、个人助手、行业应用 5.书生浦语全链条开源…...
Java 集合面试题真实场景还原
Java 集合面试题真实场景还原 文章目录 Java 集合面试题真实场景还原Java常见的集合类ListHashMap Java常见的集合类 面试官:说一说Java提供的常见集合?(画一下集合结构图) 候选人: 嗯~~,好的。 在java中提…...
AutoSAR(基础入门篇)4.9-Autoar_BSW小结
Autoar_BSW小结 Autoar_BSW小结 一、Autoar_BSW小结 1、BSW组件图 2、BSW的功能概述 3、BSW在工程里的应用实际工程...
Winform中使用Websocket4Net实现Websocket客户端并定时存储接收数据到SQLite中
场景 SpringBootVue整合WebSocket实现前后端消息推送: SpringBootVue整合WebSocket实现前后端消息推送_websocket vue3.0 springboot 往客户端推送-CSDN博客 上面实现ws推送数据流程后,需要在windows上使用ws客户端定时记录收到的数据到文件中&#x…...
Jenkins修改全局maven配置后不生效解决办法、以及任务读取不同的settings.xml文件配置
一、修改Global Tool Configuration的maven配置不生效 说明:搭建好jenkins后,修改了全局的settings.xml,导致读取settings一直是之前配置的。 解决办法一 Jenkins在创建工作任务时,会读取当前配置文件内容,固定在这…...
Linux系统CPU负载与使用率详解及性能监控
1. CPU负载与CPU使用率的本质区别在Linux系统监控和性能调优过程中,CPU负载和CPU使用率这两个指标经常被混淆使用。作为系统管理员,我曾多次遇到团队成员将这两个概念混为一谈的情况,这往往导致对系统性能问题的误判。让我们先从一个实际案例…...
LangChain 1.0 中间件实战:5个钩子函数让你的Agent像专业工程师一样思考
LangChain 1.0中间件深度实践:5个钩子函数打造工程级Agent思维 当我们在2023年首次接触LangChain时,它还是一个以Chain为核心的实验性框架。如今,LangChain 1.0的发布标志着AI Agent开发正式进入生产就绪阶段。本文将带您深入探索其最具革命性…...
MedGemma-X精彩案例分享:自然语言提问触发的专业级影像分析报告
MedGemma-X精彩案例分享:自然语言提问触发的专业级影像分析报告 1. 重新定义智能影像诊断的新标杆 想象一下这样的场景:一位放射科医生面对堆积如山的X光片,只需要用自然语言问一句"这张胸片有没有肺炎迹象?"…...
父子进程变量地址相同值却不同?图解Linux写时拷贝与页表机制
父子进程变量地址相同值却不同?图解Linux写时拷贝与页表机制 你是否曾在Linux环境下遇到过这样的现象:通过fork()创建的子进程与父进程打印同一个全局变量的地址时,两者的地址值完全相同,但实际读取的变量值却不同?这个…...
系统架构设计师常见高频考点总结之数据库
1. 局部数据库缓存1.1. 如何避免单点故障?(高可用设计)只要题目提到“避免单点故障”或“高可靠性”,标准答案只有一套组合拳:冗余(Redundancy):一台不够就两台。热备(Ho…...
Ubuntu:无网络环境下Docker离线部署全攻略
1. 离线部署Docker的核心挑战与解决方案 在完全隔离网络的环境中部署Docker,就像要在荒岛上搭建一个现代化厨房——所有食材和工具都得提前准备好。我经历过三次企业级离线部署,最深刻的一次是在某金融机构数据中心,他们的服务器甚至不允许插…...
Qwen3.5-9B自动化:GitHub Actions触发模型推理+PR评论生成
Qwen3.5-9B自动化:GitHub Actions触发模型推理PR评论生成 1. 项目概述 Qwen3.5-9B是一个拥有90亿参数的开源大语言模型,具备强大的逻辑推理、代码生成和多轮对话能力。最新版本还支持多模态理解(图文输入)和长达128K tokens的上…...
收藏!30岁转行AI大模型,来得及吗?小白程序员必看的真实转型干货
“30岁,人生好像走到了岔路口,转行还来得及吗?”这是很多职场人遭遇瓶颈时,都会反复纠结的问题。尤其是面对AI大模型这样的新兴领域,不少人既心动又胆怯——怕年龄太大、怕没有基础、怕跟不上节奏。但今天我想明确告诉…...
SVN 启动模式详解
SVN 启动模式详解 引言 Subversion(简称SVN)是一个开源的版本控制系统,广泛用于软件项目协作开发中。SVN的启动模式是其基本操作的核心,了解并掌握不同的启动模式对于高效使用SVN至关重要。本文将详细介绍SVN的启动模式,包括基本概念、常用模式及其应用场景。 一、SVN启…...
告别手动记录!用CAPL脚本的file系列函数自动生成CANoe测试报告
告别手动记录!用CAPL脚本的file系列函数自动生成CANoe测试报告 在汽车电子测试领域,工程师们每天都要面对海量的测试数据——从总线负载率到错误帧统计,从信号值波动到时间戳记录。传统的手动截图、复制粘贴方式不仅效率低下,还容…...
