내용 :
타사 라이브러리 만들기
두 타이프 라이터 라이브러리
세 가지 자바 스크립트 라이브러리
RPG에서 대규모 실용적인 응용 프로그램에서 생성 된 포 서드 파티 라이브러리
참조 :
목표 :
이 논문의 목적은 컴파일 시간 감소, 기존 게임 타사 라이브러리의 프레임 워크에 이루어진다. 나는 가독성을 감소, 소스 코드를보고 다른 사람을 원하지 않는다.
타사 라이브러리 만들기
어떤 폴더에서, 내가 여기 테스트, 변화 + 권리가 폴더를 만들 명령 줄 창을 열고 다음을 입력
백로 create_lib 데모
데모 폴더를 생성합니다 테스트 폴더에서, 그리고 tsconfig.json 파일이 package.json된다
src 폴더, 빈, typings, libs와 폴더의 새로운 데모.
두 타이프 라이터 라이브러리
방법은 타사 라이브러리 문서 .TS을 사용하는 것입니다
내가 사용하는 여러 수준의 관리 프레임 워크를 보냈다 src 폴더로 TS 파일. 테스트 용으로 장면 등 관리 계층 관리, 사고 관리.
pagckage.json 수정
{ "이름", "데모" "COMPILERVERSION을": "5.2.22" }
tsconfig.json 파일을 수정
{ "CompilerOptions": { "대상": "ES5를", "noImplicitAny"거짓, "sourceMap"거짓, "선언"라이브러리가 타이프 true로 설정되어있는 경우, .d.ts 파일을 생성 할 // 여부, 사실, 자바 스크립트 라이브러리는 false로 설정하면 "빈 / demo.js": "를 OUTFILE" "allowJs"컴파일러의 js 파일을 허용할지 여부 // false입니다. 자바 스크립트 라이브러리가 true로 설정되어있는 경우 타이프 라이터 라이브러리, false로 설정하면 }, "파일"은 [// libs와 관리 클래스가, 백로 EUI을 사용하기 때문에 의존 백로 라이브러리, 당신은, .d.ts 파일을 사용할 수 있습니다. 무대 등등. "libs와 / egret.d.ts", "libs와 / eui.d.ts", "SRC / BaseSingleClass.ts", "SRC / LayerManager.ts", "SRC / EventManager.ts", "SRC / BaseScene.ts "
대신 파일의 직접 사용의 포함 할 수있다
{ "compilerOptions": { "대상": "ES5", "noImplicitAny"거짓, "sourceMap"거짓, "선언"사실, "OUTFILE": "빈 / demo.js", "allowJs"거짓 } , "포함": [ "SRC", "libs와"] }
커맨드 라인 입력
백로 빌드 데모
그것은 bin 폴더에 다음의 서류를 생성
이 타사 라이브러리를 사용하는 프로젝트라는 새로운 프로젝트를, 백로
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", "noImplicitAny": false, "sourceMap": false, "declaration": false, //false 不生成.d.ts文件 "outFile": "bin/demo.js", "allowJs": true //true 允许编译js文件 }, "include":["src","libs"] }
命令行输入
egret build demo
bin文件夹下生成
第三方库使用方法同上文,这里不再说了。
四 第三方库制作在大型RPG中的实际应用
这里我找了个传奇游戏的源码,因为源码比较早,所以它的第三方库的制作是旧版。但是原理还是一样的,我们看一下第三方库的制作在大型rpg中的应用。
项目中,游戏每一个模块modules,都被制作成了一个第三方库,如下图:
第三方库制作后,.d.ts和js和min.js文件被放在了libs目录下,并在index.html中被引用。