修复Vector2.zero引起的引用混乱问题
This commit is contained in:
@@ -10,7 +10,7 @@ module samples {
|
||||
private _pixelShape2: egret.Shape;
|
||||
private _lineShape: egret.Shape;
|
||||
private _pixelShape3: egret.Shape;
|
||||
private _delayTime = 1;
|
||||
private _delayTime = 0.2;
|
||||
private _pressTime = 0;
|
||||
private _canTouch = true;
|
||||
|
||||
|
||||
@@ -2,14 +2,12 @@ module samples {
|
||||
import CircleCollider = es.CircleCollider;
|
||||
import Flags = es.Flags;
|
||||
import SpriteRenderer = es.SpriteRenderer;
|
||||
import ProjectileHitDetector = es.ProjectileHitDetector;
|
||||
import FollowCamera = es.FollowCamera;
|
||||
|
||||
export class NinjaAdventureScene extends SampleScene {
|
||||
constructor() {
|
||||
super(true, true);
|
||||
}
|
||||
|
||||
public initialize(): void {
|
||||
super.initialize();
|
||||
public async onStart() {
|
||||
super.onStart();
|
||||
|
||||
let playerEntity = this.createEntity("player");
|
||||
playerEntity.position = new es.Vector2(256, 224);
|
||||
@@ -21,12 +19,22 @@ module samples {
|
||||
// 移动到第1层 保证自己的图层不会如果增加攻击方式则不会攻击到自身
|
||||
Flags.setFlagExclusive(collider.physicsLayer, 1);
|
||||
|
||||
this.camera.entity.addComponent(new FollowCamera(playerEntity));
|
||||
|
||||
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 ProjectileHitDetector());
|
||||
moonEntity.addComponent(new CircleCollider());
|
||||
});
|
||||
}
|
||||
|
||||
public update(){
|
||||
super.update();
|
||||
|
||||
this.findEntity("player").position.x -= es.Time.deltaTime * 10;
|
||||
this.findEntity("player").position.y -= es.Time.deltaTime * 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
30
demo/src/Scenes/Ninja Adventure/ProjectileHitDetector.ts
Normal file
30
demo/src/Scenes/Ninja Adventure/ProjectileHitDetector.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
module es {
|
||||
/**
|
||||
* 简单的组件,可以检测它是否被弹丸击中。当被击中时,它会闪烁并在被击中一定次数后自我毁灭。
|
||||
*/
|
||||
export class ProjectileHitDetector extends Component implements ITriggerListener{
|
||||
public hitsUntilDead: number = 10;
|
||||
public _hitCounter: number;
|
||||
public _sprite: SpriteRenderer;
|
||||
|
||||
public onAddedToEntity(): void {
|
||||
this._sprite = this.entity.getComponent<SpriteRenderer>(SpriteRenderer);
|
||||
}
|
||||
|
||||
public onTriggerEnter(other: es.Collider, local: es.Collider): any {
|
||||
this._hitCounter ++;
|
||||
if (this.hitsUntilDead >= this.hitsUntilDead){
|
||||
this.entity.destroy();
|
||||
return;
|
||||
}
|
||||
|
||||
this._sprite.color = 0xFF0000;
|
||||
Core.schedule(0.1, false, this, timer => {
|
||||
this._sprite.color = 0x000000;
|
||||
});
|
||||
}
|
||||
|
||||
public onTriggerExit(other: es.Collider, local: es.Collider): any {
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user