STM32学习笔记二十二:WS2812制作像素游戏屏-飞行射击游戏(12)总结

news2024/11/17 5:35:41

至此,飞行射击游戏已经基本实现该有的功能,已经比较接近早期的商业游戏了。

如果采用脚本,可以完成关卡游戏,如果不用,也可以做成无限挑战游戏。

我们汇总一下制作的过程:

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】新作上线,快来看看!

功能上,还缺少 音乐音效 / 进度保存读取 。早期单机版游戏基本就这样了。

这些东西我们将在未来的改进中实现。如有兴趣,敬请期待。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习笔记:C++之 switch语句

Switch语句 作用:执行多条件分支语句 语法: switch(表达式){ case 结果1:执行语句;break; case 结果2:执行语句;break; ... default:执行语句&a…

百度自由DIY小程序源码:PHP+MySQL组合开发 带完整的搭建教程

随着移动互联网的快速发展,小程序已成为企业与用户互动的重要平台。然而,对于许多中小企业和开发者来说,从零开始开发一款小程序需要投入大量的时间和资源。 以下是部分代码示例: 系统特色功能一览: 1.高度自定义&…

一致化和一致量纲化问题

归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现, (1)无量纲化 例如房子数量和收入,因为从业务层知道&#xf…

不是小米SU7买不起,而是17.58万的银河E8更有性价比

作者 |Amy 编辑 |德新 疯狂的2023年车市已过。这一年,新势力与传统车企自主品牌在新能源战略上多次交锋。 新能源汽车市场不再由新势力独领风骚,传统车企的新能源品牌进步迅猛,增长势头强劲。 以吉利汽车集团为例,2023年其新能…

AI数字人国内人工智能产业发展趋势

随着科技的不断进步,人工智能(Artificial Intelligence,简称AI)已成为当今社会的热门话题。作为一种复杂而高级的技术,人工智能在国内发展势头迅猛。本文将探讨AI数字人国内人工智能产业的发展趋势。 首先&#xff0c…

PPT插件-大珩助手-文字整理功能介绍

删空白行 删除文本中的所有空白行 清理编号 删除文本中的段落编号 清理格式 删除文本中的换行、空格符号 清理艺术 删除文本的艺术字效果 清理边距 删除文本框与文字之间的间隙 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件,它是一款功能强大且实…

信源编码与信道转移矩阵

目录 一. 信息论模型 二. 点对点通信模型 三. 信源编码 四. 信道转移矩阵 4.1 二进制对称信道 4.2 二进制擦除信道 五. 小结 (1)信道直射与反射 (2)信道散射 (3) 信道时变性 一. 信息论模型 194…

C++ 中的指针和引用有什么区别?

C 中的指针和引用有什么区别? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&#…

自定义View之重写onMeasure

一、重写onMeasure()来修改已有的View的尺寸 步骤: 重写 onMeasure(),并调用 super.onMeasure() 触发原先的测量用 getMeasuredWidth() 和 getMeasuredHeight() 取到之前测得的尺寸,利用这两个尺寸来计算出最终尺寸使用 setMeasuredDimensio…

04-微服务-Nacos

Nacos注册中心 国内公司一般都推崇阿里巴巴的技术,比如注册中心,SpringCloudAlibaba也推出了一个名为Nacos的注册中心。 1.1.认识和安装Nacos Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在…

c++比Java更不容易失业吗?

c比Java更不容易失业吗? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&#xff01…

Linux目录切换相关命令( cd命令和pwd命令)

1.cd命令 我们可以通过cd命令,更改当前所在的工作目录。cd命令来自英文:Change Directory 功能:切换工作目录 语法:cd [目标目录] 参数:目标目录,要切换去的地方,不提供默认切换到当前登录用户…

生成式AI在自动化新时代中重塑RPA

生成式AI的兴起正在推动行业的深刻变革,其与RPA技术的结合,标志着自动化领域新时代的到来。这种创新性结合极大地提升了系统的适应性,同时也推动了高级自动化解决方案的发展,为下一代RPA的诞生奠定了坚实的基础。 核心RPA技术专注…

Blazor项目如何调用js文件

以下是来自千问的回答并加以整理:(说一句,文心3.5所给的回答不完善,根本运行不起来,4.0等有钱了试试) 在Blazor项目中引用JavaScript文件(.js)以实现与JavaScript的互操作&#xff…

GAMES101:作业6记录

1 总览 在之前的编程练习中,我们实现了基础的光线追踪算法,具体而言是光线传输、光线与三角形求交。我们采用了这样的方法寻找光线与场景的交点:遍历场景中的所有物体,判断光线是否与它相交。在场景中的物体数量不大时,该做法可以取得良好的结果,但当物体数量增多、模型变得更…

前端JS加密对抗由浅入深-1

前言: 本文主要讲解,针对前端加密数据传输站点,如何进行动态调试以获取加密算法、秘钥,本次实验不涉及漏洞挖掘,仅为学习演示,环境为本地搭建环境 此次站点加密方式为AES加密方式,现如今越来越…

【STM32】STM32学习笔记-DMA直接存储器存储(23)

00. 目录 文章目录 00. 目录01. DMA简介02. DMA主要特性03. 存储器映像04. DMA框图05. DMA基本结构06. DMA请求07. 数据宽度与对齐08. 数据转运DMA09. ADC扫描模式DMA10. 附录 01. DMA简介 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F…

Mybatis-Mapper代理开发

Mapper代理开发 目的使用Mapper代理方式入门1.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下首先新建一个Mapper接口编译mybatis-demo更改sql映射文件路径 2.设置SQL映射文件的namespace属性为Mapper接口全限定名3.在Mapper 接…

论文浅尝 | 以词-词关系进行分类的统一命名实体识别

笔记整理:曹旭东,东南大学硕士,研究方向为知识图谱构建、自然语言处理 链接:https://arxiv.org/abs/2112.10070 1. 动机 在以前的工作中,命名实体识别(NER)涉及的主要问题有三种类型&#xff0c…

Java数据结构:1. 数据结构前置知识

文章目录 一、初识数据结构二、初识集合框架1. 什么是集合框架2. 集合框架的重要性3. 背后所涉及的数据结构以及算法 三、时间复杂度空间复杂度1. 算法效率2. 时间复杂度(1)概念(2)大O的渐进表示法(3)推导大…