新增ninja adventure例子
This commit is contained in:
50
demo/src/Scenes/Ninja Adventure/Ninja.ts
Normal file
50
demo/src/Scenes/Ninja Adventure/Ninja.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
module samples {
|
||||
import SpriteAnimator = es.SpriteAnimator;
|
||||
import Mover = es.Mover;
|
||||
|
||||
export class Ninja extends es.Component {
|
||||
public _animator: SpriteAnimator;
|
||||
|
||||
public _mover: Mover;
|
||||
|
||||
public onAddedToEntity(): void {
|
||||
let characterPng = RandomUtils.randint(1, 6);
|
||||
this.entity.scene.content.loadRes(`${characterPng}_png`).then(texture => {
|
||||
let sprites = es.Sprite.spritesFromAtlas(texture, 16, 16);
|
||||
|
||||
this._mover = this.entity.addComponent(new Mover());
|
||||
this._animator = this.entity.addComponent(new SpriteAnimator());
|
||||
|
||||
this._animator.addAnimation("walkLeft", new es.SpriteAnimation([
|
||||
sprites[2],
|
||||
sprites[6],
|
||||
sprites[10],
|
||||
sprites[14]
|
||||
], 4));
|
||||
|
||||
this._animator.addAnimation("walkRight", new es.SpriteAnimation([
|
||||
sprites[3],
|
||||
sprites[7],
|
||||
sprites[11],
|
||||
sprites[15]
|
||||
], 4));
|
||||
|
||||
this._animator.addAnimation("walkDown", new es.SpriteAnimation([
|
||||
sprites[0],
|
||||
sprites[4],
|
||||
sprites[8],
|
||||
sprites[12]
|
||||
], 4));
|
||||
|
||||
this._animator.addAnimation("walkUp", new es.SpriteAnimation([
|
||||
sprites[1],
|
||||
sprites[5],
|
||||
sprites[9],
|
||||
sprites[13]
|
||||
], 4));
|
||||
|
||||
this._animator.play("walkDown");
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
32
demo/src/Scenes/Ninja Adventure/NinjaAdventureScene.ts
Normal file
32
demo/src/Scenes/Ninja Adventure/NinjaAdventureScene.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
module samples {
|
||||
import CircleCollider = es.CircleCollider;
|
||||
import Flags = es.Flags;
|
||||
import SpriteRenderer = es.SpriteRenderer;
|
||||
|
||||
export class NinjaAdventureScene extends SampleScene {
|
||||
constructor() {
|
||||
super(true, true);
|
||||
}
|
||||
|
||||
public initialize(): void {
|
||||
super.initialize();
|
||||
|
||||
let playerEntity = this.createEntity("player");
|
||||
playerEntity.position = new es.Vector2(256, 224);
|
||||
playerEntity.addComponent(new Ninja());
|
||||
let collider = playerEntity.addComponent(new CircleCollider());
|
||||
|
||||
// 我们只希望与默认图层0上的组件发生冲突
|
||||
Flags.setFlagExclusive(collider.collidesWithLayers, 0);
|
||||
// 移动到第1层 保证自己的图层不会如果增加攻击方式则不会攻击到自身
|
||||
Flags.setFlagExclusive(collider.physicsLayer, 1);
|
||||
|
||||
this.content.loadRes("moon_png").then(moonTexture => {
|
||||
let moonEntity = this.createEntity("moon");
|
||||
moonEntity.position = new es.Vector2(412, 460);
|
||||
moonEntity.addComponent(new SpriteRenderer(moonTexture));
|
||||
moonEntity.addComponent(new CircleCollider());
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,7 +4,7 @@ module loading {
|
||||
|
||||
export class LoadingView extends BaseView implements RES.PromiseTaskReporter {
|
||||
private _ui: FUI.loading.UI_View_loading;
|
||||
private _loadGroup = ["preload", "common"];
|
||||
private _loadGroup = ["preload", "common", "characters"];
|
||||
private _maxProgress = 0;
|
||||
private _currentProgress = 0;
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ module sc {
|
||||
new SceneData("空白场景", samples.BasicScene),
|
||||
new SceneData("Tiled Tiles", samples.AnimatedTilesScene),
|
||||
new SceneData("Linecasting", samples.LineCastingScene),
|
||||
new SceneData("Ninja Adventure", samples.NinjaAdventureScene),
|
||||
];
|
||||
|
||||
constructor() {
|
||||
|
||||
Reference in New Issue
Block a user