作者:zccst
知识目录:
1,对象
2,显示容器
3,事件Event及其继承类
4,定时器
5,动画Tween和MovieClip
private demoMovieClip(){
var data = RES.getRes("stay_json");//JSON
var texture:egret.Texture = RES.getRes("stay_png");//Texture
var mc:egret.MovieClip = new egret.MovieClip(data, texture);
this.addChild(mc);
mc.frameRate = 50;//每秒帧序列次数
mc.gotoAndPlay("stay");
var data2 = RES.getRes("weizhu_json");//JSON
var texture2:egret.Texture = RES.getRes("weizhu_png");//Texture
var mc2:egret.MovieClip = new egret.MovieClip(data2, texture2);
this.addChild(mc2);
mc2.y = 120;
mc2.frameRate = 20;//每秒帧序列次数
mc2.gotoAndPlay("weizhu");//Uncaught Error: [Fatal]MovieClip没有对应的frame::weizhuwww
}
private demoTween(){
//自定义
var txtDesc:egret.TextField = new egret.TextField();
txtDesc.text = "测试";
txtDesc.x = 0;
txtDesc.y = 0;
this.addChild(txtDesc);
var tw = egret.Tween.get(txtDesc);
tw.to({x:(this.stage.width-60),y:(this.stage.height-30)},3000);
}
6,声音
//静态播放的三种形式:
private _anny:egret.Sound;
private demoSound(result:any){
//第一种:直接播放
//console.log(result);
//result.play();
//第二种:先创建一个对象,对该对象的audio赋值
this._anny = new egret.Sound();
this._anny.audio = result;
this._anny.play();
//希望重复播放(第一种方式)
this._anny.addEventListener("ended", this.rePlay.bind(this));
//希望重复播放(第二种方式,直接在play(true) )
}
private rePlay(){
this._anny.load();
this._anny.play();
}
7,网络
对网络的详细解读详见:
http://zccst.iteye.com/blog/2107182
class Net extends egret.DisplayObjectContainer{
public constructor(){
super();
this.addEventListener(egret.Event.ADDED_TO_STAGE, this.onAddToStage, this);
}
private urlloader:egret.URLLoader;
private onAddToStage(event:egret.Event){
this.urlloader = new egret.URLLoader();
this.urlloader.dataFormat = egret.URLLoaderDataFormat.VARIABLES;
var urlreq:egret.URLRequest = new egret.URLRequest();
//urlreq.url = "http://httpbin.org/user-agent";
urlreq.url = "http://httpbin.org/headers";
this.urlloader.load(urlreq);
this.urlloader.addEventListener(egret.Event.COMPLETE, this.onComplete, this);
}
private onComplete(event:egret.Event):void{
console.log(this.urlloader.data);
}
}
环境搭建:
安装nodejs(node -v, npm)
安装webstorm(较好的支持typescript)
安装HTTP服务器(自带,或XMAPP)
安装chrome
安装egret(cd egret-core, npm intall -g)
检查egret是否安装成功(egret)
创建工作区。例如,D:\egret\code
创建项目:egret create HelloWorld
编译项目: egret build HelloWorld
运行项目: egret startserver HelloWorld
http://localhost:3000/HelloWorld/launcher/index.html
发布项目: egret publish HelloWorld
对源代码混淆加密,最终将js压缩为game-min.js,
将launcher和resource上传至服务器,发布完成
如有任何代码改动,再次: egret build HelloWorld
打飞机实例分析:
游戏资源载入
包括的对象:
背景图
开始按钮
我的飞机(1个)
我的子弹(多个)
敌机 (多个)
敌机子弹(多个)
碰撞(需要消失的子弹、敌机,游戏结束判断)
结束记分画面
我的飞机是new出来的:
this.myFighter = new fighter.Airplane(RES.getRes("f1"),100);//然后设置了创建子弹的监听事件
敌机是设置一个定时器,然后调用produce生成出来的:
var enemyFighter:fighter.Airplane = fighter.Airplane.produce("f2",1000);//然后设置了创建子弹的监听事件
getTimer()是从egret开始运行开始计时的
bullet.y -= 12*speedOffset;//我的子弹是从下往上走
if(bullet.y<-bullet.height)//如果走出,则移除
delArr.push(bullet);
碰撞检测的两种方式:
1,检测点
13 var shp:egret.Shape = new egret.Shape();
14 shp.graphics.beginFill( 0xff0000 );
15 shp.graphics.drawRect( 0,0,100,100);
16 shp.graphics.endFill();
17 shp.width = 100;
18 shp.height = 100;
19 this.addChild( shp );
20
21 var isHit:boolean = shp.hitTestPoint( 10, 10 );
22 this.infoText.text = "碰撞结果" + isHit;
2,检测矩形
var rect1:egret.Rectangle = obj1.getBounds();//获取显示对象的测量边界
var rect2:egret.Rectangle = obj2.getBounds();
rect1.x = obj1.x;
rect1.y = obj1.y;
rect2.x = obj2.x;
rect2.y = obj2.y;
//此方法检查指定的 Rectangle 对象的 x、y、width 和 height 属性,以查看它是否与此 Rectangle 对象相交。
return rect1.intersects(rect2);
Android APP打包方案 Windows
创建工作目录D:\Labs
第一部分、安装Android开发环境
1,安装Java7
2,Android NDK adt-bundle-windows-x86_64-20140624_and_ndk_r9d.zip
解压,关联ndk到eclipse
第二部分、安装Egret游戏框架
D:\Labs>cd egret-core
D:\Labs\egret-core>npm install -g
安装Egret的Android支持包(下载,放置在“labs/egret-support/”)
第三部分、创建一个Android打包示例
D:\Labs\projects> egret create ACoolHtmlGame
D:\Labs\projects>egret create_app ACoolAndroidGame -f ACoolHtmlGame -t ..\egret-support\egret-android-support
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
- 大小: 28.4 KB
- 大小: 28.6 KB
分享到:
相关推荐
egret 单例场景管理类-一个小例子
多个egret 小游戏 ,可供学习
H5手游页游的资源版本管理(带Egret例子)附带的Egret例子 http://blog.csdn.net/sujun10/article/details/77231215 HTML5网络游戏和网页游戏,是属于打开浏览器就可以直接玩的,而且是边玩边下载的游戏。 由于每个...
白鹭 eui 例子基本介绍 EUI是一套基于Egret核心显示列表的UI扩展库,它封装了大量的常用UI组件,能够满足大部分的交互界面需求,即使更加复杂的组件需求,您也可以基于EUI已有组件进行组合或扩展,从而快速实现需求...
加载zip压缩的javascript代码以及在Egret H5实际应用 的代码例子 blog地址:http://blog.csdn.net/sujun10/article/details/76427703
本库旨在为Egret封装常用的手势操作,因本人能力有限,有的实现并不完善,欢迎批评指正。Egret手势识别库egret_gesture目前已实现的手势: 1. Tap(点一下) 2. Double Tap (双击) 3. Pinch(二指往內或往外拨动,平时...
这是一个模仿微信小游戏上的一款叫神手小游戏的demo,使用egret引擎开发的。
使用egret游戏引擎开发出一款类似于跳一跳的小游戏,用于学习egret游戏的生命周期,可视化布局,控件绑定,动画设置等等.
EgretWing-v3.2.6
egret白鹭游戏引擎的飞机大战源码,基于TYPESCRIPT开发,属于H5游戏,可以跨平台发布到安卓、IOS等,是个比较简单的DEMO,运行时注意保持引擎版本与游戏版本一致2.5.x的,egret兼容性比较差,编辑器我用的也是2.5的...
egret贪吃蛇简单的小游戏制作,新手制作使用egret开发的小demo
完整的白鹭引擎开发的小游戏,egert小游戏,给在egret起步的你更好的帮助
Egret 引擎学习资料 ,Egret HTML5游戏开发指南.pdf.
Egret官网声音项目
egret_euiBallGame;白鹭游戏,完整代码,亲测可用,入门编码
egret-core egret 官方示例代码,可参考使用,代码是较新版本的
一款消消乐游戏,目前写了7个关卡,实现了五种道具,三种过关的方式,源码有很多注释,理解起来不难。
Egret简易实现的跳一跳微信小游戏Demo,适合初学egret和微信小游戏开发的入门型开发者。 Egret简易实现的跳一跳微信小游戏Demo,适合初学egret和微信小游戏开发的入门型开发者。