加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Egret的第三方库制作

发布时间:2020-12-15 05:27:54 所属栏目:Java 来源:网络整理
导读:? 目录: 一 创建第三方库 二 TypeScript库 三 JavaScript库 四 第三方库制作在大型RPG中的实际应用 ? 参考: 第三方库的使用方法 目标: 本文目的是将现有游戏的框架制作成第三方库,减少编译时间。不想让别人看到源码,降低可读性。 ? 一 创建第三方库 在

?

目录:

一 创建第三方库

二 TypeScript库

三 JavaScript库

四 第三方库制作在大型RPG中的实际应用

?

参考:

第三方库的使用方法

目标:

本文目的是将现有游戏的框架制作成第三方库,减少编译时间。不想让别人看到源码,降低可读性。

?

一 创建第三方库

在任意文件夹,我这里创建个test文件夹,shift+右键,打开命令行窗口,输入

egret create_lib demo

?

?在test文件夹下会生成一个demo文件夹,里面有package.json和tsconfig.json文件

?

在demo文件夹里新建src,bin,typings,libs文件夹。

?

?

?二 TypeScript库

该方法是使用.ts文件制作第三方库

将ts文件放到src文件夹下,这里我用了框架用的几个管理类。场景管理,图层管理,事件管理类等作为测试。

?修改pagckage.json

{
	"name": "demo","compilerVersion": "5.2.22"  
}

  

修改tsconfig.json文件

{
	"compilerOptions": {
		"target": "es5","noImplicitAny": false,"sourceMap": false,"declaration": true,//是否生成.d.ts文件,如果是typescript库设置为true,如果是javascript库设置为false
		"outFile": "bin/demo.js","allowJs": false       //是否允许编译js文件。如果是typescript库设置为false,如果是javascript库设置为true
	},"files": [                     //libs为依赖的egret库,用.d.ts文件即可,因为管理类中使用了eui,egret.Stage等。
		"libs/egret.d.ts","libs/eui.d.ts","src/BaseSingleClass.ts","src/LayerManager.ts","src/EventManager.ts","src/BaseScene.ts","src/SceneManager.ts"
	]
}

?

直接用include代替files也可以

{
	"compilerOptions": {
		"target": "es5","outFile": "bin/demo.js","allowJs": false
	},"include":["src","libs"]
}

  

命令行输入

egret build demo

?

?

在bin文件夹中生成了如下文件

?

新建一个Egret项目,名为project,来使用这个第三方库

?

?修改项目的egretProperties.json文件,增加第三方库的引用,并编译一次引擎。

?

在代码中使用我自己写的EventManager事件类,成功输出"触发事件"。表示第三方库可以正常使用了。

    protected createGameScene(): void {
        EventMananger.getInstance().addEvent("test",this.onTestHandler,this);  //监听test事件
        EventMananger.getInstance().sendEvent("test");                           //派发test事件
    }

    public onTestHandler(){
        console.log("触发事件");  //打印触发事件
    }

  

?

?三 JavaScript库

该方法是将.js文件制作成第三方库

这里我们直接使用上文中导出的demo.js和demo.d.ts做为例子

将demo.js放到src目录下

将demo.d.ts放到typings目录下

?

修改package.json文件

{
	"name": "demo222","compilerVersion": "5.2.22","typings":"typings/demo.d.ts"
}

  

?修改tsconfig.json文件

{
	"compilerOptions": {
		"target": "es5","declaration": false,//false  不生成.d.ts文件
		"outFile": "bin/demo.js","allowJs": true             //true  允许编译js文件
	},"libs"]
}

  

?命令行输入

egret build demo

 

bin文件夹下生成

?

?

?第三方库使用方法同上文,这里不再说了。

?

?

四?第三方库制作在大型RPG中的实际应用

这里我找了个传奇游戏的源码,因为源码比较早,所以它的第三方库的制作是旧版。但是原理还是一样的,我们看一下第三方库的制作在大型rpg中的应用。

?

项目中,游戏每一个模块modules,都被制作成了一个第三方库,如下图:

?

?第三方库制作后,.d.ts和js和min.js文件被放在了libs目录下,并在index.html中被引用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读