我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏

熵桥薄雾
• 阅读 5298

写在前面:我的同事“熊猫少女”刚刚入职白鹭,之前从未接触过白鹭引擎,也从未做过游戏,经过4天时间的学习,他成功做了一款足球小游戏,这篇文章主要是记录他的开发过程:

正文如下:

在接触白鹭引擎的第四天,我摸索着用EUI做了一个小游戏。可能游戏逻辑比较简单,使用的知识点也比较基础,今天与大家分享交流,请大神勿喷,不吝指点。我的小游戏设定很简单:鼠标点击神棍一下,足球开始上下动,获胜一方出现Win图片。
效果图如下:

我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏

第一步、新建一个项目,我取名为ball_demo
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
首先打开Mian.ts删除OnbuttonClick函数,删除createGameScene函数里面的所有内容,我们需要重写。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏

我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
第二步、制作ball的exml皮肤文件
1.在resource文件夹下创建了一个gameSkins文件夹用来保存自定义的皮肤文件。在gameSkins文件夹下右键点击新建一个eui组件(注意:这里也可以选择新建一个Exml文件,然后再新建一个ts文件)
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
2.将图片资源拖入到resource/assets目录下,上方会提示有6项新增资源,点击保存。然后打开default.res.json确认刚刚导入的图片是否在默认的preload组里面。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏

3.确认过后,点击打开ball.exml文件,将舞台宽和高设置为640 * 1136。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
4.点击舞台,选择左下方控件,然后选择Image将它拖到舞台上。设置它的位置和宽高(或者直接点击约束),使其完全充满舞台(也可以不拖Image组件直接拖资源到舞台上哦)。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏

5.接下来选择选中左下角的资源图标,找到bgImg背景图片拖入组件的资源里面,再用同样的方法将两面国旗、足球和Win图片拖入。

我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
6.下一步开始游戏的Button制作:选择引擎自带的button组件,将Button组件拖到舞台上,设置它的位置。在右侧的属性面板会看到“正常,按下,禁用”三个空白。这里我们将三种情况下的图片分别拖入其中即可。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
7.接下来,设置Id:要给三张图片和Button分别设置它们的id,方便我们在代码中获取到。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
8.然后将win_Top和Win_Buttom两个图片设置为不可见,按下Ctrl + S保存皮肤文件。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏

第三步、编写ball.ts代码
1.首先我们会看到这段代码,这段代码是因为我们之前在创建exml皮肤文件是选择的是新建eui组件,系统会自动帮我们将exml文件和ts文件关联起来,不需要我们自己去写。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
而如果是先建一个exml文件,又建的ts文件,需要在constructor构造函数里面写上
this.skinName = “路径”;
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
2.将一会需要用到的游戏对象定义为全局变量(注意:这里的变量名必须和你刚刚设置的皮肤文件里的id一致);
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
接下来在childrenCreated函数中添加btn_start的事件监听。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
3.关于写ball足球的移动方法,这里我用的是缓动动画Tween。定义一个方法ballMove,利用随机函数在0~1之间随机一个数,如果小于0.5则球进下方,上方赢,反之下方赢。直接上代码吧。(原谅我暂时只能写这么Low的逻辑)
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
附:白鹭官方文档缓动动画Tween,官方文档里面写的很详细,比我写的更明白。
这里我开始用了官方的Timer计时器,发现总是有一点误差,最后用了缓动动画的.Call回调函数。当程序按照顺序执行完Tween缓动就会执行Call里面的方法(通过变量名.visible可以让Win图片显示出来。)

4.接下来写开始按钮的点击方法。这里用一个按钮来实现“开始、暂停、继续、和重新开始”四个功能。开始的想法是放四个按钮点哪个哪个显示其它隐藏,但实在太麻烦,最后的实现是换按钮图片。
打开ball.exml皮肤的源码,在Button里面的Skin一栏添加pause、resume和reset三个状态。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏

然后依照前面的source.up = “”; 分别给新增的三个状态添加图片资源即可。

我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
按钮的4个功能可以通过switch case 来实现,如下图。
通过切换btn_start的 currentState当前状态来改变它的图片。

我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏

最后在游戏结束后,让currentState = “reset”。i = 4(按钮功能为重新开始);
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏

5.最后忘记补充一点:这里我做了一个按钮点击放大的效果,在皮肤源码里改button属性。不按下为90%,按下为100%。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
6.别忘记设置它的锚点为中心点。
我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏

到此,我的足球小游戏制作完毕。以后我还将发更多的在学习过程中制作的小案例与大家交流,共同进步,也请各位Egret大神多多赐教,分享更多优秀案例。

游戏源码地址:https://github.com/duan003387...

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
three.js
第1章课程介绍介绍了微信小游戏的概念以及相关的由来,从宏观上对于微信小游戏的定位和价值有一个明确的认识第2章微信小游戏平台与特性讲了微信小游戏平台的相关特性,包括微信小游戏工程的建立,微信小游戏开发工具的详细使用,以及微信小游戏相关API的实战等第3章THREEJS与WebGL核心概念通过理论和实战,讲解了什么是webgl、什
Wesley13 Wesley13
3年前
H5游戏开发:游戏引擎入门推荐
!(https://oscimg.oschina.net/oscnet/02667b3fe24ee147d8174d906f9a340f203.jpg)前言很多刚刚接触到游戏开发,准备大展拳脚的小鲜肉们,往往在技术选型这第一关就栽了跟头。毕竟网络上的游戏引擎良莠不齐,官网上相关资料也比较少,而选择一个适合的游戏引擎是一个项目最基础,也
Stella981 Stella981
3年前
Protobuf在微信小游戏开发中的使用技巧
微信小游戏发布后,许多HTML5游戏开发者希望把现有的HTML5游戏迁移到微信小游戏中,但由于一些技术上的问题导致进程卡壳。通过梳理Egret社区、白鹭小游戏开发技术讨论群等途径的反馈后发现,有不少开发者遇到的难题在于「如何在微信小游戏中使用Protobuf」。白鹭引擎架构师王泽在近期发布了一个开源项目protobufegret,提供了一个可
Stella981 Stella981
3年前
Creator 新版解锁字节跳动,以及更多平台!
继上周发布了v2.4.1之后,CocosCreatorv2.4.2 为大家带来呼声已久的字节小游戏平台支持!手握庞大流量和强势渠道,相信将为开发者带来更多的机会,我们也期待字节小游戏上爆发出更多优秀的产品!我们建议需要发布字节小游戏的开发者将引擎升级到最新版本,以获得最佳的使用体验。
Wesley13 Wesley13
3年前
html5小游戏Untangle
   今天介绍一个HTML5的小游戏,让大家体验到HTML5带来的乐趣。这个小游戏很简单,只要用鼠标拖动蓝点,让图上的所有线都不相交,游戏时间就会停止,是动用大家头脑的时候啦。!html5小游戏Untangle,以最快的速度把所有线都做到互不相交(http://static.oschina.net/uploads/img/201403
Stella981 Stella981
3年前
Egret白鹭开发微信小游戏分享功能
今天给大家分享一下微信分享转发功能,话不多说,直接干方法一:1.在egret中打开Platfrom.ts文件,添加代码如下(当然,你也可以直接复制粘贴)/平台数据接口。由于每款游戏通常需要发布到多个平台上,所以提取出一个统一的接口用于开发者获取平台数据信息推荐开发者通过这种方
Stella981 Stella981
3年前
Egret 2020,技术沉淀与产品突破
时光飞逝,2020已近尾声,虽然由于行业的变化等原因,白鹭引擎的市场声音在减少,但团队内部的研发工作一直没有松懈,回首这一年的产品研发历程,白鹭引擎今年产品迭代的核心围绕高性能、易用性、工作流融合三个方面展开,全面改善了EgretEngine的整体开发效率,加强2D/3D游戏开发工作流的融合,重点解决原生游戏的性能,横纵贯穿2D/3D游戏、H5游戏/原生游
Stella981 Stella981
3年前
LayaAir:用3D项目演示老项目如何适配微信小游戏
在QQ上线玩一玩后,引擎部同事彻夜鏖战,刚刚终于上线了1.7.15beta版。推出了QQ玩一玩与微信小游戏的一键发布功能。小编送上一篇刚出炉的技术干货,希望能给开发者带来帮助。之前有介绍过微信小游戏的创建与调试全流程,从1.7.15beta开始,这个流程更加完善,尤其是TS与JS的开发者,也可以做到一键发布微信小游戏了。本篇尽可
Stella981 Stella981
3年前
Egret 5.3 正式发布,为重度小游戏开发带来新技能
各位开发者好,白鹭引擎团队今天发布2020年最大的一次更新:Egret5.3版本。由于白鹭引擎团队在2019年已经针对部分开发者提供过内部的5.3.x版本,所以本次更新的版本号为5.3.5。根据白鹭引擎2018年以来的规划,版本号第二位为奇数位表示这个版本是抢先体验版而非稳定版,因此我们将在Egret5.3系列版本中相对激进的引入新特性,但是
流浪剑客 流浪剑客
1年前
Macos足球真实模拟游戏:fm足球经理Football Manager 2023 for mac
《》是一款由SportsInteractive开发的足球模拟经营类游戏。在游戏中,玩家将扮演一名足球俱乐部的经理,负责管理球队的日常训练、比赛安排、球员转会和人事管理等方面。游戏特色如下:新的比赛引擎:使比赛看起来更加真实,更具观赏性。最新数据库:包含所有
GeorgeGcs GeorgeGcs
1天前
【HarmonyOS 5】Laya游戏如何鸿蒙构建发布详解
鸿蒙开发能力HarmonyOSSDK应用服务鸿蒙游戏类应用(游戏一、前言LayaAir引擎是国内最强大的全平台引擎之一,当年H5小游戏火的时候,腾讯入股了腊鸭。我还在游戏公司的时候,17年曾经开发使用腊鸭的H5小游戏,很怀念当年和腊鸭同事一起解决问题的时光