Html5 Egret游戏开发 成语大挑战(三)开始界面
本篇需要在前面的素材准备完毕,才可以开始,使用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游戏开发 成语大挑战(三)开始界面的更多相关文章
- Html5 Egret游戏开发 成语大挑战(一)开篇
最近接触了Egret白鹭引擎,感觉非常好用,提供了各种各样的开发工具让开发者和设计者更加便捷,并且基于typescript语言开发省去了很多学习成本,对于我们这种掉微软坑许久的童鞋来说,确实很有吸引力 ...
- Html5 Egret游戏开发 成语大挑战(二)干净的eui项目和资源准备
现在我们使用egret来起步开发一个名叫<成语大挑战>的小游戏,关于egret的开发环境就不在这里啰嗦了,直接去官方下载安装就可,egret是我见过开发环境部署最简单的解决方案,这个系列教 ...
- Html5 Egret游戏开发 成语大挑战(八)一般性二级页面处理
在游戏中,我们一般会有各种各样的二级页面,比如游戏暂停界面或者游戏结束界面,这些界面组成了对玩家交互主要手段,在游戏开发中,对于这些界面的coding组织是非常有学问的,如果倒退到十年前,游戏开发的老 ...
- Html5 Egret游戏开发 成语大挑战(六)游戏界面构建和设计
本篇将主要讲解游戏界面的构建和设计,会应用到egret.eui的自定义组件,可以很直观的构建一个游戏整体,这里我们仍然只需要使用EgretWing就可以达到目的,本篇可能是篇幅最少的一个,但是涉及自定 ...
- Html5 Egret游戏开发 成语大挑战(九)设置界面和声音管理
在上一篇中,简单的使用界面元素快速实现了一个游戏中的二级页面,这种直接在游戏页面上做UI的做法并不太好,原因是,UI会让游戏的压力变大,即使它是隐蔽的,如果同样的功能在其它的地方也是一样的,那么就要写 ...
- Html5 Egret游戏开发 成语大挑战(七)游戏逻辑和数据处理
本篇在前面的基础上,将进行逻辑的编码开发让游戏能够正式的玩起来,这里没有注重太多的体验细节,而是直接实现游戏的规则逻辑,将分成两个部分说明:数据处理和游戏逻辑. 初始化游戏数据 在前面的第五篇中,我们 ...
- Html5 Egret游戏开发 成语大挑战(四)选关界面
通过前面的开始界面基本上了解了eui的使用方法,可以简单快速的制作一个UI界面,本篇使用第二界面选关界面展示更为难一点的代码控制,来展现关卡地图的内容,请确保素材和资源完整,可以在前面的教程中找到下载 ...
- Html5 Egret游戏开发 成语大挑战(五)界面切换和数据处理
经过前面的制作,使用Egret的Wing很快完成了开始界面和选关卡界面,下面通常来说就是游戏界面,但此时界面切换和关卡数据还没有准备好,这次讲解界面的切换和关卡数据的解析.前面多次修改了Main.ts ...
- HTML5物理游戏开发 - 越野山地自行车(三)粉碎自行车
自上一章公布到如今已时隔四月,实在对不住大家.让大家久等了~话说不是我不关注我的博客,而是事情一多起来写博客的时间就少了. 待到今日有空了,回头看了看自己曾经写的文章,猛得发现已经四个月不曾写文章了. ...
随机推荐
- scanf函数
一. 变量的内存分析 1. 字节和地址 为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”. 1> 内存以“字节为单位” 0x表示的是十六进制,不用过于纠结,能看懂这些 ...
- RFID应用范围
RFID应用范围 (1)物流: 物流过程中的货物追踪,信息自动采集,仓储应用,港口应用,邮政,快递 (2)零售: 商品的销售数据实时统计,补货,防盗 (3)制造业: 生产数据的实时监控,质量追踪,自动 ...
- ORACLE数据库异步IO介绍
异步IO概念 Linux 异步 I/O (AIO)是 Linux 内核中提供的一个增强的功能.它是Linux 2.6 版本内核的一个标准特性,当然我们在2.4 版本内核的补丁中也可以找到它.AIO 背 ...
- ibatis动态多条件查询及模糊查询(oracle,mysql,sql)
首先是模糊查询的问题,开始时我使用如下条件:select * from user where name like '%#value#%'. 可是怎么也不行,好像还报错了.后来在网上找到了解决方法,就是 ...
- mydumper 安装报错处理
mydumper 官网:https://launchpad.net/mydumper 下载之后,安装报错: [root@localhost local]# cd mydumper-0.6.2 [roo ...
- db2服务端安装图解
一. 准备工作 1. db2服务端安装包,版本:10.1.2 二. 安装图解过程 1. 响应文件是一个包含安装和配置信息的纯英文文本文件.可无需任何用户交互进行db2的批量安装.非必须的. 2. 点击 ...
- Linux autojump命令
一.简介 autojump是一个命令行工具,它允许你可以直接跳转到你喜爱的目录,而不用管你现在身在何处. 二.安装 yum install autojump 三.用法 j [目录的名字或名字的一部分] ...
- 创建Windows Azure内部负载均衡器
与普通的负载均衡器一样,Windows Azure内部负载均衡器也是四层的.内部负载均衡器会被分配一个内网地址,只能从虚拟网络内部访问,包括VPN和ExpressRoute. 内部负载均衡器通常被用于 ...
- 老话题:自己编写只截窗口客户区的截屏软件(VB2010)
现在能实现截屏的软件很多,就不一一列举了,连WIN7都自带截屏软件,甚至OFFICE2010开始都有截屏的功能. 截屏软件虽多,无外乎三种截屏方式:全屏截图.窗口截图.自定义矩形截图. 其中,窗口截图 ...
- AC日记——石头剪子布 openjudge 1.7 04
04:石头剪子布 总时间限制: 1000ms 内存限制: 65536kB 描述 石头剪子布,是一种猜拳游戏.起源于中国,然后传到日本.朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风 ...