新增ninja adventure例子

This commit is contained in:
YHH
2020-08-23 22:09:22 +08:00
parent 6c1cfec928
commit 7345a17d24
26 changed files with 400 additions and 27 deletions

View 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");
});
}
}
}

View 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());
});
}
}
}