【菜鸟教程】小白接触白鹭引擎4天,成功做了一款足球小游戏

写在前面:随着越来越多的新人开始接触白鹭引擎,创作属于自己的游戏。考虑到初学者会遇到一些实际操作问题,我们近期整理推出“菜鸟”系列技术文档,以便更好的让这些开发者们快速上手,Egret大神们可以自动忽略此类内容。

本文的作者是白鹭技术支持“熊猫少女”,看文的小伙伴们如果有问题可以来白鹭官方论坛与之交流。

正文如下:

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

第一步、新建一个项目,我取名为ball_demo

首先打开Mian.ts删除OnbuttonClick函数,删除createGameScene函数里面的所有内容,我们需要重写。


第二步、制作ball的exml皮肤文件
1.在resource文件夹下创建了一个gameSkins文件夹用来保存自定义的皮肤文件。在gameSkins文件夹下右键点击新建一个eui组件(注意:这里也可以选择新建一个Exml文件,然后再新建一个ts文件)

2.将图片资源拖入到resource/assets目录下,上方会提示有6项新增资源,点击保存。然后打开default.res.json确认刚刚导入的图片是否在默认的preload组里面。

3.确认过后,点击打开ball.exml文件,将舞台宽和高设置为640 * 1136。

4.点击舞台,选择左下方控件,然后选择Image将它拖到舞台上。设置它的位置和宽高(或者直接点击约束),使其完全充满舞台(也可以不拖Image组件直接拖资源到舞台上哦)。

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

6.下一步开始游戏的Button制作:选择引擎自带的button组件,将Button组件拖到舞台上,设置它的位置。在右侧的属性面板会看到“正常,按下,禁用”三个空白。这里我们将三种情况下的图片分别拖入其中即可。

7.接下来,设置Id:要给三张图片和Button分别设置它们的id,方便我们在代码中获取到。

8.然后将win_Top和Win_Buttom两个图片设置为不可见,按下Ctrl + S保存皮肤文件。

第三步、编写ball.ts代码
1.首先我们会看到这段代码,这段代码是因为我们之前在创建exml皮肤文件是选择的是新建eui组件,系统会自动帮我们将exml文件和ts文件关联起来,不需要我们自己去写。

而如果是先建一个exml文件,又建的ts文件,需要在constructor构造函数里面写上
this.skinName = “路径”;

2.将一会需要用到的游戏对象定义为全局变量(注意:这里的变量名必须和你刚刚设置的皮肤文件里的id一致);

接下来在childrenCreated函数中添加btn_start的事件监听。

3.关于写ball足球的移动方法,这里我用的是缓动动画Tween。定义一个方法ballMove,利用随机函数在0~1之间随机一个数,如果小于0.5则球进下方,上方赢,反之下方赢。直接上代码吧。(原谅我暂时只能写这么Low的逻辑)

附:白鹭官方文档缓动动画Tween,官方文档里面写的很详细,比我写的更明白。
这里我开始用了官方的Timer计时器,发现总是有一点误差,最后用了缓动动画的.Call回调函数。当程序按照顺序执行完Tween缓动就会执行Call里面的方法(通过变量名.visible可以让Win图片显示出来。)

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

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


按钮的4个功能可以通过switch case 来实现,如下图。
通过切换btn_start的 currentState当前状态来改变它的图片。

最后在游戏结束后,让currentState = “reset”。i = 4(按钮功能为重新开始);

5.最后忘记补充一点:这里我做了一个按钮点击放大的效果,在皮肤源码里改button属性。不按下为90%,按下为100%。

6.别忘记设置它的锚点为中心点。


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

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

原文地址:http://blog.51cto.com/11960887/2151266

时间: 2024-08-10 15:16:03

【菜鸟教程】小白接触白鹭引擎4天,成功做了一款足球小游戏的相关文章

不使用物理引擎,自己动手做真实物理的模拟投篮游戏

最近打算做一个2D投篮游戏,由于对于BOX2D等物理引擎并不熟悉,加之一开始低估了游戏所需要的碰撞检测复杂度,认为仅仅涉及4面墙,篮球,篮板,篮筐,篮网的碰撞检测并不复杂.因此决定自己实现所需要的碰撞检测.结果实际开始做时磕磕碰碰遇到了许多问题. 1.如何实现像素级碰撞检测. as3原生的hitTestObject只能检测矩形,对于圆形等其他形状就不适用了:打算用hitTestPoint来检测篮球与篮板四个边角,篮筐前后框点,在实践尝试中发现是有问题的,在涉及物体旋转的情况下检测就不精确了.因此

菜鸟教程 | egret EUI卡牌游戏制作

写在前面 随着越来越多的新人开始接触白鹭引擎,创作属于自己的游戏.考虑到初学者会遇到的一些实际操作问题,我们近期整理推出<菜鸟教程>系列的文档,以便更好的让这些开打着们快速上手,Egret大神们可以忽略此类内容.本文作者是我们技术支持部门的同事"熊猫少女".看文的小伙伴如果有问题可以来白鹭官方论坛与之交流. EUI是一套基于Egret核心显示列表的UI扩展库,它封装了大量的常用UI组件,能够满足大部分的交互界面需求,即使更加复杂的组件需求,您也可以基于EUI已有组件进行组合

Alex 的 Hadoop 菜鸟教程: 第19课 华丽的控制台 HUE 安装以及使用教程

声明 本文基于Centos 6.x + CDH 5.x HUE Hadoop也有web管理控制台,而且还很华丽,它的名字叫HUE.通过HUE可以管理Hadoop常见的组件.下面用一幅图说明HUE能管理哪些组件 除了Oozie,LDAP SAML和Solr以外,前面的课程都说过了,Oozie是一个工作流组件,在下一课讲解,LDAP是一个用户密码的管理中心,负责用户的登陆.Solr是一个全文检索的引擎,不过其实Solr也不算Hadoop系专有的,Solr在很早以前就出现了,要算的话应该算Lucene

白鹭引擎 5.2.7 新增自动合图插件、二进制和声音缓存方案功能

2018年8月13日,白鹭引擎发布5.2.7 版本.本次版本主要新增了两大功能:命令行增加自动合图插件TextureMergerPlugin,微信小游戏支持库增加二进制和声音缓存方案. 同时,本次版本还是对 5.2 版本的一次集中性缺陷修复,更新修复了大家反馈的涉及2D渲染- JavaScript.AssetsManager.微信小游戏支持库的数个BUG.在此,我们要再次特别感谢开发者们通过Egret社区.白鹭引擎小游戏开发微信群等渠道提交的BUG反馈. 5.2.7版本中新增的自动合图插件可以帮

白鹭引擎EUI做H5活动 入门篇

前言:本学习文档的目的是为了实现h5,或者简单的h5游戏,比如说,我们要实现一个可以左右,或者上下移动的场景的h5,在场景移动的过程中,会有相应的动画或者操作,我们通过 js 也可以实现,但是为了流畅度和更好的效果,还是需要借助一些引擎来实现,比如说 2d的渲染引擎 pixi.js 或者是本文档要学习的 Egret (白鹭)引擎: 作为刚接触游戏引擎的人,虽然没有相关使用经验,但是也听说过相关内容:几年前接触过 Cocos (游戏引擎),所以也只了解这么一个游戏引擎,最近随着h5和小游戏的发展,

ionic菜鸟教程(中文版)

ionic菜鸟教程中文版 为什么写这个ionic菜鸟教程中文版 这是一个ionic菜鸟教程中文版,我作为一个ionic菜鸟,记录ionic学习过程中遇到的菜鸟问题,笔者既然是一个ionic菜鸟就不怕大家的批判,抱着相互学习的态度与大家共勉. 这个ionic菜鸟教程中文版是权威的吗? 首先,说明一点问题,有可能这个文档里面错误百出,有可能大家不同意我的观点,也有可能写着写着自己都不知道写说明了,当最终还是希望能够帮助一部分学习ionic初期的朋友,能够拥有一把开启ionic的钥匙. 哈哈,好像需要

Egret Engine(白鹭引擎)介绍及windows下安装

Egret Engine简要介绍----- Egret Engine(白鹭引擎)[Egret Engine官网:http://www.egret-labs.org/]是一款使用TypeScript语言构建的开源免费的移动游戏引擎.白鹭引擎的核心定位是开放,高效,优雅.通过它,你可以快速地创建HTML5类型的移动游戏,也可以将游戏项目编译输出成为目标移动平台的原生游戏应用. 提到Egret Engine(白鹭引擎)就不得不提<围住神经猫>这一火爆游戏,7月22日,一款名为<围住神经猫>

二、个人总结的菜鸟教程|sql教程的知识点(SQL高级教程)

二.SQL高级教程 1.SQL SELECT TOP SELECT TOP 子句用于规定要返回的记录的数目. SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的. 注释:并非所有的数据库系统都支持 SELECT TOP 子句. sql server|ms access语法 select top number|percent column_name from table_name; mysql|oracle语法(与top等价) select Column_name from t

canvas和白鹭引擎中平移,旋转,缩放

canvas中的 translate() 和白鹭引擎中的 .x 或者 .y  所导致的平移效果并不是移动 目标元素,而是移动目标元素父亲所在的坐标系. 例如 bgg.translate(100,100) 所表达的含义是将父亲元素所在的坐标系 向右和向下 偏移100 px. 而设置元素大小时 context.fillRect(0, 0, 100, 100) 这里的前两个参数是 真 的 设置偏移量,表示 向右和向下 偏移100px.是设置距离父亲元素的偏移量. 设置旋转,不管是canvas还是白鹭引