5分钟的时间制作一个反弹球游戏

简介: 5分钟的时间制作一个反弹球游戏

嗨!大家好,我是小蚂蚁。


很多想学习做游戏的新手朋友都苦于无从下手,不知道自己能做点儿什么,该从哪里开始。其实直接从一个最简单的小游戏开始上手,是一个非常不错的方式。


第一,这会让你真的去动起手来参与到游戏的制作(做游戏当然需要动手了,光用眼睛看可不行),第二,你能从制作的游戏中得到很好的反馈,没有什么能比玩自己做的游戏更好的反馈了,即使是一个很简单的游戏。


这种反馈很重要,它会明确地告诉你,看吧!做个游戏其实并不难,只要动手去做,你也能做出来,这种反馈将是支持你继续做下去的动力。


好了,言归正传。今天我们就尝试着用 5 分钟的时间,快速地制作一个完整的反弹球游戏。如果你是一个新手小白,对于其中的某些内容不明就里,这也没关系,先照葫芦画瓢,模仿着把游戏做出来,做出来才是最要的。至于很多不懂的内容,可以以后通过系统性的学习来补足(这里是我的游戏开发课程服务,了解一下)。


记住,现在对你来说最重要的是先把游戏捣鼓出来,做出来,才会有反馈。


打开微信小游戏制作工具(官网:gamemaker.weixin.qq.com),新建作品,创建一个“反弹球”的空项目。


点击“新建”按钮之后,你会进入到一个空的项目工程。


接着,点击“添加素材”按钮,增加游戏中所需要的素材,一个正方形,一个白色数字,以及一个基础文本。


导入之后,你会在资源管理器看到游戏中增加了 3 个新的资源,同时在层级管理中,也能看到增加了 3 个新的层级。


接着,我们调整一下资源的名字,让它与游戏中自己所代表的东西对应起来。


如图,游戏中一共有这样的几个元素:

反弹球:代表的是游戏中弹来弹去的球。

玩家:代表游戏中玩家可以控制移动接球的平台。

得分:代表游戏中玩家的分数。

基础文字:用于在游戏中显示提示。

接下来,我们调整一下游戏中各种元素的布局。


游戏中一共包含了 5 个元素,整个游戏的流程是这样的:玩家点击屏幕,开始游戏,反弹球会向上弹出,在碰到屏幕的左侧,右侧,或者上侧时都会进行反弹,玩家可以控制下方的白色平台左右移动,接住落下来的反弹球,每接住一次,能得到 1 分,如果没有接到,反弹球掉出屏幕下方,则游戏结束,显示“ GAME OVER”提示。


游戏的素材准备好了,界面也布置好了,接下来,让我们实现一下游戏的逻辑吧!


在正式开始编写逻辑之前,先准备一下数据,这些数据会在游戏逻辑中用到。


3 个全局变量:“移动速度”用于设置反弹球移动的速度,“游戏开始”用于设置游戏是否开始,0 表示未开始,1 表示开始;“游戏得分”用于记录游戏中玩家获得的分数。


1 个通知:“刷新得分”用于通知游戏中记录得分的数字进行刷新。


接着,我们依次来实现游戏中每个元素的积木逻辑。


首先,实现“玩家”的积木逻辑。


对于玩家的操作来讲,只需要一个“设置自己横向拖拽”的积木,即可实现在水平方向上的拖拽功能。另外,玩家这里也处理了游戏开始的逻辑,点击屏幕游戏开始,隐藏文字提示,重置游戏得分,设置游戏开始变量,最后给反弹球设置一个开始移动的方向。


接着,实现“得分”的积木逻辑。


得分”的积木逻辑非常的简单,只要收到“刷新得分”的通知,就将自己的数值修改为最新的“游戏得分”数值。


最后,实现“反弹球”的积木逻辑。想要实现反弹的效果,可以直接利用工具提供的“反弹”行为。


选中“反弹球”,在“图层属性”的下方,点击“管理行为”按钮。


找到并开启“反弹”行为。


在开启“反弹”行为之后,会发生两处变化,一处是在属性区的下方增加了与反弹行为有关的属性,另一处是在积木区中增加了与“反弹”行为有关的积木块。


将反弹属性的“运动速度”和“运动朝向”都设置为 0,我们会在游戏逻辑中使用积木块设置反弹球的移动速度和朝向。


最后,来看一下反弹球的积木逻辑。


反弹球的积木逻辑共分为 3 个部分,一个是游戏开始后球的移动;一个是球移出下边缘时游戏的结束处理;另一个是玩家接住球时的得分处理。


这样,整个游戏的逻辑部分就全部完成了,让我们点击“预览场景”按钮,来看一下游戏最终运行的效果。



怎么样,做一个游戏是不是挺简单的?什么?你说很难?那是因为你第一接触一个新的领域,自然而然会觉得难,就像小孩子第一次学着走路,笨拙不堪,甚至会摔倒。但是,只要勤加练习,很快你就会觉得简单。


简单源自熟练,而熟练源自动手去做。不论怎样,硬着头皮把第一个游戏先做出来,这样你才能在游戏开发这条路上真正的迈出自己的第一步。否则,你就只能当一个“idea guys”(指的是那些只有想法的家伙)了。


相关文章
|
中间件 数据库连接 API
Python面试:FastAPI框架原理与实战
【4月更文挑战第18天】FastAPI是受欢迎的高性能Python Web框架,以其简洁的API设计、强大的类型提示和优秀的文档生成能力著称。本文将探讨FastAPI面试中的常见问题,包括路由、响应对象、Pydantic模型、数据库操作、中间件和错误处理。同时,还会指出一些易错点,如类型提示不准确、依赖注入误解,并提供实战代码示例。通过理解和实践FastAPI,可以在面试中展示出色的Web开发技能。
558 1
|
存储 缓存 监控
解锁Vuex性能优化的秘密:让大型Vue应用如丝般顺滑,紧跟技术热点,体验速度与效率的双重飞跃!
【8月更文挑战第27天】Vuex是Vue.js应用程序的状态管理解决方案,它允许开发者集中管理组件间共享的状态。然而,在大型应用中,庞大的状态树可能会影响性能。本文介绍几种优化策略:1)精简状态树,避免存储不必要的数据并通过模块化降低复杂度;2)利用getters缓存计算结果以提高效率;3)通过actions处理异步操作,确保状态更新的同步性和逻辑清晰;4)在组件级别上减少不必要的重渲染;5)使用工具如Vue Devtools进行监控和调试。这些方法有助于提升应用的整体性能和用户体验。
288 0
|
监控 安全 Linux
在Linux中,如何设置定时任务(cron job)?
在Linux中,如何设置定时任务(cron job)?
|
数据挖掘 API 开发者
必看:详解淘宝店铺订单数据API文档
必看:详解淘宝店铺订单数据API文档
|
机器学习/深度学习 人工智能 自然语言处理
|
自然语言处理 监控 关系型数据库
mysql造数据占用临时表空间
【5月更文挑战第20天】MySQL在处理复杂查询时可能使用临时表,可能导致性能下降。临时表用于排序、分组和连接操作。常见问题包括内存限制、未优化的查询、数据类型不当和临时表清理。避免过度占用的策略包括优化查询、调整系统参数、优化数据类型和事务管理。使用并行查询、分区表和监控工具也能帮助管理临时表空间。通过智能问答工具如通义灵码,可实时续写SQL和获取优化建议。注意监控`Created_tmp_tables`和`Created_tmp_disk_tables`以了解临时表使用状况。
728 5
|
Java 关系型数据库 MySQL
连接MySQL数据库的最优JDBC代码
连接MySQL数据库的最优JDBC代码
|
存储 SQL 关系型数据库
Pandas与数据库交互:实现高效数据交换与存储
【4月更文挑战第16天】本文介绍了Pandas与数据库交互的方法,包括使用`read_sql`和`to_sql`函数连接SQLite、MySQL等数据库。为了提升数据交换效率,建议采用批量操作、优化SQL查询和使用事务。在数据存储优化方面,选择合适的数据类型、压缩数据以及使用分区或分片都是有效策略。通过这些方法,可实现Pandas与数据库间高效、可靠的数据处理和分析。
|
XML Java 数据库连接
Mybatis-Plus学习小项目及详细教程
Mybatis-Plus学习小项目及详细教程
R语言作图不显示中文解决办法,如何使用中文字体
R语言作图不显示中文解决办法,如何使用中文字体