【Egret Engine】簡単に使えるUnityライクなテンプレートの作成

Egret Engine

 

はじめに

H5ゲームはUnityと比べてコーディングが難しいです。そこで、よく使う機能をまとめたEgret Engineのテンプレートを作成しました。

GitHubにも挙げておきますので、よかったら使ってください。

Egret Template

GitHub - squmari/EgretTemplate: A template of Egret Engine
A template of Egret Engine. Contribute to squmari/EgretTemplate development by creating an account on GitHub.

https://github.com/squmari/EgretTemplate

Egret EngineをできるだけUnityのように使えるコード作成しました。

以下のコードを参照しているので、こちらもごらんください。

参照したコード

Build software better, together
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over...

 

準備

1、srcフォルダのMain以外を削除する。

新規プロジェクトを生成すると、いろんなスクリプトが入っていると思います。

Main以外は使わなくても大丈夫ですので消しましょう。

 

2、Resource/Assetフォルダ内にある画像を削除する。

Button等の画像が入っていますが、デフォルトで使うことはほとんどないと思います。200KB近くあるので消してしまいましょう。

Resource/eui_skinフォルダも同様です。

 

簡単に使えるUnityライクなテンプレートの作成

Main.ts

 

Util.ts

 

GameObject.ts

 

Score.ts

 

GameOver.ts

 

Ball.ts

 

Box.ts

 

 

 

 

使い方

オブジェクトのインスタンス化

Main.ts

Main.tsのGameクラスのinit()内にnewしてください。init()はゲームをリセットしたり、リトライするときに使用します。

 

オブジェクトの削除

GameObject.ts

BallもBoxもGameObjectクラスを継承しております。

オブジェクトを削除するときは destroy()メソッドを使用してください。

インスタンス化されたオブジェクトはstatic objectsにpushされてますので、destroyFlagがtrueになると、オブジェクトが削除されます。

 

なお、GameObjectはabstruct(抽象メソッド)ですので、継承した場合はupdateContent(){}をクラス内に追加してください。

このupdateContent(){}に記入されたメソッドはUnityのupdate()のように繰り返されます。

 

メソッドの連続実行

Main.ts

 

GameObject.ts

 

Unityのupdate関数のように、常にメソッドを連続実行したい場合は、BallやBox内のupdateContent(){}に関数を記載してください。

GameObject.update()がMainでtickLoopされて、フレームレート60で繰り返されます。

 

GameObjectを継承した場合は、updateContent(){}を追加しないとエラーになりますので、繰り返しをしない場合でも空メソッドとして追記してください。

 

シーンの切り替え

GameOver.ts

 

GameObject.ts

 

シーンを切り替えるときはGameObject.transit = 関数; のように利用します。

allDestroyでGameObject系を全て削除した後、transitに代入した関数が実行されます。

リトライするときはinit()を代入するといいでしょう。

HTML5 Egret Engine 入門へ戻る

HTML5 Egret Engine 入門へ戻る

 

タイトルとURLをコピーしました