本篇需要在前面的素材准备完毕,才可以开始,使用egret的eui结合代码编辑,快速完成基本的界面搭建,这里写的可能比较细,目的是减少大家对于其中一些操作疑问,我去掉了很多无用的步骤,以最精简的流程来完成,如果比较熟练的话,这些操作只需要不到15分钟就完全可以搞定。

特别说明:如果已经对EUI 有基础了解的童鞋,可以直接跳过这篇,因为实在是太简单了。

创建一个exml的皮肤,这里特别说一下,到现在仍然对于项目中的“包”和“目录”有什么具体区别仍然还是不是很清晰,反正对我来说就是一个目录,习惯性的会把同一种操作或系统放在一起,所以在src的目录下,创建了一个名为Game的包,什么名字不重要,在本项目中是Game而已,然后右键选择新建“EXML皮肤文件”,关于EXML有兴趣仔细研究的话,可以参考:官方的EUI概述

简单解释来说,就是以xml描述配置界面元素的一种模式,这和微软的WPF XAML类似,使用eui的好处就是所见即所得,配合代码开发非常直观高效,比如说这里,就创建了一个名为SceneBeginSkin的exml,用来做开始界面,大小设置为和游戏尺寸一样,注意“主机组件”,使用的是Component,其他的先不要试,一会儿在按钮时候会说明。

开始界面比较简单,只有背景图片和一个开始按钮,在设计师模式下,直接可以拖拽右侧的资源库里资源扔进主窗口,就可以看到如下效果:

背景图片位置上自己的调整,然后点开左侧的组件窗口,选择按钮拖进主界面,此时由于没有了默认组件皮肤,而显示为一个控件标记:

这时候看右侧的属性栏,找到“皮肤快捷模板”,把资源名称放进去,资源名称不是文件名,而是资源库中的标记名,为了更好的操作这个按钮,将它的ID给起名为“btn_begin”,注意“标签”这个选项,并不是指的是tag而是Label,默认会有“标签”文本在上面,删除即可。

将按钮和背景图片摆放整齐,可以在预览里面看看效果:

操作比较简单吧,如果是exml源码则是这个样子:

<?xml version='1.0' encoding='utf-8'?>
<e:Skin class="SceneBeginSkin" width="720" height="1136" xmlns:e="http://ns.egret.com/eui" xmlns:w="http://ns.egret.com/wing">
<e:Image source="GameBG1_jpg" x="0" y="0"/>
<e:Button label="按钮" x="57" y="826"/>
<e:Button id="btn_begin" x="182" y="997">
<e:skinName>
<e:Skin states="up,down,disabled">
<e:Image width="100%" height="100%" source="StartBtn_png" source.down="StartBtn1_png"/>
<e:Label id="labelDisplay" horizontalCenter="0" verticalCenter="0"/>
</e:Skin>
</e:skinName>
</e:Button>
</e:Skin>

下面创建一个名字为SceneBegin的ts类,同样,名字不重要,起aaaaa也没问题,主要是你能够清楚其中的关系。

删除没用的信息,输入extends继承自eui.Component,在类中声明btn_begin,构造函数中,将skinName指定到刚才创建的exml,这样就可以直接将这个类的皮肤呈现为SceneBeingSkin的效果,同时可以得到ID命名的对象,为按钮添加一个点击事件,现在已经完成了

class SceneBegin extends eui.Component {
private btn_begin:eui.Button;
public constructor() {
super();
this.skinName = "src/Game/SceneBeginSkin.exml";
this.btn_begin.addEventListener(egret.TouchEvent.TOUCH_TAP,this.onclick_begin,this);
}
private onclick_begin(){
console.log("game begin!");
}
}

那么我们如何看到效果呢,打开Main.ts,关于这个结构就不多啰嗦,它的流程最后都会到startCreateScene()方法,删掉模板自带的代码,输入:this.addChild(new SceneBegin());

最后运行一下看看效果吧,是不是得到你想要的了呢?就这么简单。

基本上本篇演示了如何用eui创建简单的UI界面,并应用到代码中,所谓循序渐进,一步一步的往上走较为靠谱。

本篇项目源码:ChengyuTiaozhan0.zip(由于博客园的文件大小限制,resource资源方面请到第二篇的后面下载

Html5 Egret游戏开发 成语大挑战(三)开始界面的更多相关文章

  1. Html5 Egret游戏开发 成语大挑战(一)开篇

    最近接触了Egret白鹭引擎,感觉非常好用,提供了各种各样的开发工具让开发者和设计者更加便捷,并且基于typescript语言开发省去了很多学习成本,对于我们这种掉微软坑许久的童鞋来说,确实很有吸引力 ...

  2. Html5 Egret游戏开发 成语大挑战(二)干净的eui项目和资源准备

    现在我们使用egret来起步开发一个名叫<成语大挑战>的小游戏,关于egret的开发环境就不在这里啰嗦了,直接去官方下载安装就可,egret是我见过开发环境部署最简单的解决方案,这个系列教 ...

  3. Html5 Egret游戏开发 成语大挑战(八)一般性二级页面处理

    在游戏中,我们一般会有各种各样的二级页面,比如游戏暂停界面或者游戏结束界面,这些界面组成了对玩家交互主要手段,在游戏开发中,对于这些界面的coding组织是非常有学问的,如果倒退到十年前,游戏开发的老 ...

  4. Html5 Egret游戏开发 成语大挑战(六)游戏界面构建和设计

    本篇将主要讲解游戏界面的构建和设计,会应用到egret.eui的自定义组件,可以很直观的构建一个游戏整体,这里我们仍然只需要使用EgretWing就可以达到目的,本篇可能是篇幅最少的一个,但是涉及自定 ...

  5. Html5 Egret游戏开发 成语大挑战(九)设置界面和声音管理

    在上一篇中,简单的使用界面元素快速实现了一个游戏中的二级页面,这种直接在游戏页面上做UI的做法并不太好,原因是,UI会让游戏的压力变大,即使它是隐蔽的,如果同样的功能在其它的地方也是一样的,那么就要写 ...

  6. Html5 Egret游戏开发 成语大挑战(七)游戏逻辑和数据处理

    本篇在前面的基础上,将进行逻辑的编码开发让游戏能够正式的玩起来,这里没有注重太多的体验细节,而是直接实现游戏的规则逻辑,将分成两个部分说明:数据处理和游戏逻辑. 初始化游戏数据 在前面的第五篇中,我们 ...

  7. Html5 Egret游戏开发 成语大挑战(四)选关界面

    通过前面的开始界面基本上了解了eui的使用方法,可以简单快速的制作一个UI界面,本篇使用第二界面选关界面展示更为难一点的代码控制,来展现关卡地图的内容,请确保素材和资源完整,可以在前面的教程中找到下载 ...

  8. Html5 Egret游戏开发 成语大挑战(五)界面切换和数据处理

    经过前面的制作,使用Egret的Wing很快完成了开始界面和选关卡界面,下面通常来说就是游戏界面,但此时界面切换和关卡数据还没有准备好,这次讲解界面的切换和关卡数据的解析.前面多次修改了Main.ts ...

  9. HTML5物理游戏开发 - 越野山地自行车(三)粉碎自行车

    自上一章公布到如今已时隔四月,实在对不住大家.让大家久等了~话说不是我不关注我的博客,而是事情一多起来写博客的时间就少了. 待到今日有空了,回头看了看自己曾经写的文章,猛得发现已经四个月不曾写文章了. ...

随机推荐

  1. 安装和使用cocoapods

    第一步:查看自己电脑的Ruby环境:gem sources -l 1.如果已经是taobao镜像了[https://ruby.taobao.org/],此时不需要环境的修改了,直接进入第二步 2.(1 ...

  2. Ubuntu下面su初始密码设置

    rcm@rcm:~$ sudo passwd 输入新的 UNIX 密码: 重新输入新的 UNIX 密码: passwd:已成功更新密码

  3. CMMI4级实践中的5个经典问题及解答

    这五个问题相当经典而且比较深,需要做过CMMI4.5级的朋友才能看懂这些问题.这5个问题是一位正在实践CMMI4级的朋友提出来的,而解答则是我的个人见解. 五个疑问是:   A.流程,子流程部分不明白 ...

  4. Linux 虚拟机网络适配器从E1000改为VMXNET3

    我们知道VMware的网络适配器类型有多种,例如E1000.VMXNET.VMXNET 2 (Enhanced).VMXNET3等,就性能而言,一般VMXNET3要优于E1000,下面介绍如果将Lin ...

  5. hadoop2.2.0伪分布式搭建1--准备Linux环境

    1.0修改网关 点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:19 ...

  6. cat,tac,more

    cat VS tac cat是查看文本文件的内容,tac是cat反过来,反向查看文件 $cat 1.txt ls: cannot access ee: No such file or director ...

  7. 高性能MySQL笔记 第6章 查询性能优化

    6.1 为什么查询速度会慢   查询的生命周期大致可按照顺序来看:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端.其中“执行”可以认为是整个生命周期中最重要的阶段. ...

  8. Java 注释说明

    注释 什么是注释呢?就是标注解释的意思,主要用来对Java代码进行说明.Java中有三种注释方式 (1):// :注释单行语句 示例: //定义一个值为10的int变量 int a = 10; (2) ...

  9. windows phpstudy 本地添加自定义域名

    1.本地配置自定义域名访问 2.打开PHPstudy 域名配置 3.打开host.文件地址 C:\Windows\System32\drivers\etc hosts 192.168.1.101 wi ...

  10. CentOS 6.3下配置iSCSI网络存储

    一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...