Boss anim, open close

This commit is contained in:
Martin
2022-12-31 12:29:27 +01:00
parent 354be800ec
commit 93424a5c8a
27 changed files with 1090 additions and 443 deletions

View File

@@ -0,0 +1,41 @@
import { Animation, Collider2D, Contact2DType, _decorator } from "cc";
import { GroupType } from "../../GroupType";
import { Enemy } from "./Enemy";
const { ccclass, property } = _decorator;
@ccclass("BossEnemy")
export class BossEnemy extends Enemy {
@property(Collider2D) private bossCollider: Collider2D;
@property(Animation) private animation: Animation;
private isAnimatingAttack = false;
public start(): void {
this.bossCollider.on(Contact2DType.BEGIN_CONTACT, this.collisionBegin, this);
this.bossCollider.on(Contact2DType.END_CONTACT, this.collisionEnd, this);
}
private collisionBegin(_selfCollider: Collider2D, otherCollider: Collider2D): void {
if (otherCollider.group === GroupType.PLAYER) {
this.animateAttack();
}
}
private collisionEnd(_selfCollider: Collider2D, otherCollider: Collider2D): void {
if (otherCollider.group === GroupType.PLAYER) {
this.animateMove();
}
}
private animateAttack(): void {
if (this.isAnimatingAttack) return;
this.isAnimatingAttack = true;
this.animation.play("Attack");
}
private animateMove(): void {
if (!this.isAnimatingAttack) return;
this.isAnimatingAttack = false;
this.animation.play("Run");
}
}

View File

@@ -0,0 +1,9 @@
{
"ver": "4.0.23",
"importer": "typescript",
"imported": true,
"uuid": "8daaec86-a8d5-4dce-9f68-37df7115c4b0",
"files": [],
"subMetas": {},
"userData": {}
}