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

本文主要是介绍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)总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/582665

相关文章

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Python利用自带模块实现屏幕像素高效操作

《Python利用自带模块实现屏幕像素高效操作》这篇文章主要为大家详细介绍了Python如何利用自带模块实现屏幕像素高效操作,文中的示例代码讲解详,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、获取屏幕放缩比例2、获取屏幕指定坐标处像素颜色3、一个简单的使用案例4、总结1、获取屏幕放缩比例from

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

opencv实现像素统计的示例代码

《opencv实现像素统计的示例代码》本文介绍了OpenCV中统计图像像素信息的常用方法和函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 统计像素值的基本信息2. 统计像素值的直方图3. 统计像素值的总和4. 统计非零像素的数量

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的