当前位置: 首页 > news >正文

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

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

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

http://www.lryc.cn/news/275107.html

相关文章:

  • astadmin安装querylist插件Puppeteer
  • Python从入门到网络爬虫(MySQL链接)
  • 2020年认证杯SPSSPRO杯数学建模A题(第二阶段)听音辨位全过程文档及程序
  • 深入理解CRON表达式:时间调度的艺术
  • 网络安全—模拟IP代理隐藏身份
  • Resilience4j相关问题及答案(2024)
  • XSKY SDS 产品率先获得 OceanBase V4 新版本认证
  • 系统学习Python——类(class):静态方法(staticmethod)和类方法(classmethod)-[基础知识]
  • kotlin isEmpty/isNotEmpty/isNullOrEmpty和isBlank/isNotBlank/isNullOrBlank
  • Qt/QML编程学习之心得:Linux下USB接口使用(25)
  • 概率论与数理统计 知识点+课后习题
  • Spring Boot实战:深入理解@Service与@Mapper注解
  • 【DevOps-06】Jenkins实现CI/CD操作
  • 华为面经总结
  • 大模型实战营Day1 书生·浦语大模型全链路开源体系
  • Java 集合面试题真实场景还原
  • AutoSAR(基础入门篇)4.9-Autoar_BSW小结
  • Winform中使用Websocket4Net实现Websocket客户端并定时存储接收数据到SQLite中
  • Jenkins修改全局maven配置后不生效解决办法、以及任务读取不同的settings.xml文件配置
  • 【elfboard linux开发板】7.i2C工具应用与aht20温湿度寄存器读取
  • LeetCode-有效的字母异位词(242)
  • 【AIGC-图片生成视频系列-6】SSR-Encoder:用于主题驱动生成的通用编码器
  • [C]jupyter中使用C
  • 探讨一下WebINFO 下的一些思考
  • MySQL中的开发基于Python的SQL工具类操作数据库简单示例
  • 安卓Android Studio读写FM1208CPU卡源码
  • 二、Redis的特性与应用场景
  • 编程笔记 html5cssjs 019 HTML实体
  • 数据结构:树详解
  • list1.Sort((m, n) => m.Id - n.Id); id是double类型的为什么回报错