`
zccst
  • 浏览: 3319689 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

egret小结及小例子

阅读更多
作者: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
分享到:
评论
1 楼 zc5510670 2015-10-22  
非常不错

相关推荐

    egret小游戏示例

    Egret小游戏示例是基于白鹭引擎(Egret Engine)开发的一款互动娱乐项目,它为初学者提供了深入了解和学习Egret游戏开发的良好实践。Egret引擎是一款广泛使用的HTML5游戏开发工具,它支持2D游戏制作,并且能够跨平台...

    egret 小游戏.zip

    在“egret 小游戏.zip”这个压缩包中,包含了多个使用Egret开发的小游戏,这些游戏可以作为学习和参考的实例。通过研究这些小游戏的源代码,我们可以深入理解Egret引擎的工作原理和开发流程。 1. **Egret引擎基础**...

    H5手游页游的资源版本管理的Egret例子

    H5手游页游的资源版本管理(带Egret例子)附带的Egret例子 http://blog.csdn.net/sujun10/article/details/77231215 HTML5网络游戏和网页游戏,是属于打开浏览器就可以直接玩的,而且是边玩边下载的游戏。 由于每个...

    egret 单例场景管理类-一个小例子

    在这个“egret 单例场景管理类-一个小例子”中,我们将探讨如何使用 Egret 实现单例场景管理。首先,理解单例模式的基本概念是至关重要的。单例模式的核心是限制类的实例化过程,通常通过私有构造函数和静态工厂方法...

    egret模仿神手H5小游戏

    这个"egret模仿神手H5小游戏"项目是一个基于Egret引擎的示例,目的是模仿微信小游戏中的热门作品——神手。通过分析这个项目,我们可以深入了解Egret引擎在开发H5游戏时的应用及其核心特性。 首先,Egret引擎采用...

    egret 下拉框的制作

    在本文中,我们将深入探讨如何在Egret游戏引擎中创建一个下拉框。Egret是一个基于TypeScript的2D游戏开发框架,它提供了一套完整的开发工具链,包括编辑器、编译器和运行时环境,适用于移动和桌面平台。 首先,我们...

    类型于跳一跳的egret小游戏.zip

    《基于Egret的“跳一跳”H5小游戏开发详解》 在当前移动互联网时代,H5小游戏凭借其轻量级、跨平台的特点,深受用户喜爱。其中,“跳一跳”作为一款曾经风靡一时的游戏,其简单易上手的操作和趣味性吸引了无数玩家...

    Egret手势识别库egret_gesture-master.zip

    本库旨在为Egret封装常用的手势操作,因本人能力有限,有的实现并不完善,欢迎批评指正。Egret手势识别库egret_gesture目前已实现的手势: 1. Tap(点一下) 2. Double Tap (双击) 3. Pinch(二指往內或往外拨动,平时...

    egret eui 例子

    白鹭 eui 例子基本介绍 EUI是一套基于Egret核心显示列表的UI扩展库,它封装了大量的常用UI组件,能够满足大部分的交互界面需求,即使更加复杂的组件需求,您也可以基于EUI已有组件进行组合或扩展,从而快速实现需求...

    egret_euiBallGame白鹭小游戏

    【egret_euiBallGame白鹭小游戏】是一个基于Egret引擎开发的轻量级游戏项目,适合初学者用于学习和实践游戏编程。Egret是一个开源的HTML5游戏开发框架,它提供了一整套完整的解决方案,包括编辑器、运行时库、编译...

    加载zip压缩的javascript代码以及Egret H5项目应用的例子

    加载zip压缩的javascript代码以及在Egret H5实际应用 的代码例子 blog地址:http://blog.csdn.net/sujun10/article/details/76427703

    基于egret别踩白块儿游戏源码及打包

    《基于Egret的“别踩白块”游戏源码解析与打包技术详解》 “别踩白块”是一款广受欢迎的休闲游戏,其简洁的操作和挑战性深受玩家喜爱。本资源提供了一款基于Egret引擎开发的“别踩黑块”游戏源码,通过分析和学习,...

    egret图集拆分工具.zip

    在游戏开发中,为了优化加载速度和内存使用,通常会将多个小图像合并成一个大图集(Atlas),然后在运行时动态切割并显示需要的部分。然而,当原始美术资源丢失或需要对图集进行更新时,这种拆分工具就显得尤为重要...

    Egret Engine游戏框架 v5.4.1.zip

    Egret Engine是一款广泛应用于开发2D游戏和交互式应用的开源JavaScript框架。v5.4.1是这个引擎的一个特定版本,包含了针对性能优化、稳定性改进和新功能的更新。这个压缩包文件包含了框架的核心组件和相关文档,是...

    一个Egret(白鹭)小游戏(射出桃花运)源码

    《Egret(白鹭)小游戏——射出桃花运源码解析》 Egret引擎,作为一款基于TypeScript开发的2D游戏框架,因其高效、跨平台的特性,在移动游戏开发领域广受欢迎。本篇将围绕“射出桃花运”这款小游戏的源码进行深入解析...

    egret-core egret 官方示例代码

    Egret Core 是一款基于 TypeScript 开发的2D游戏开发框架,它为开发者提供了高效、便捷的游戏开发工具链。这个压缩包包含的是Egret官方提供的示例代码,可以帮助开发者理解和学习如何使用Egret Core 进行游戏开发。 ...

    egret p2 物理引擎

    Egret游戏引擎是一款广泛应用于开发2D游戏的开源框架,其强大的功能和高效性能使得开发者能够轻松构建高质量的游戏。在Egret引擎中,P2 Physics是一个重要的组件,它为游戏提供了物理模拟的支持,使游戏对象能够表现...

    egret贪吃蛇下游戏

    本文将深入探讨这款小游戏的核心知识点,以及如何使用Egret进行游戏开发。 首先,我们要了解Egret引擎。Egret是一个开源的2D游戏开发框架,它基于WebGL和HTML5技术,提供了丰富的API和工具,让开发者能够轻松创建跨...

Global site tag (gtag.js) - Google Analytics