1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import { EditorSet } from "../common/editorSet";
- const {ccclass, property, executeInEditMode, playOnFocus} = cc._decorator;
- ccclass
- class AniData{
- loop: boolean;
- }
- @ccclass
- @executeInEditMode
- @playOnFocus
- export default class AniList extends cc.Component {
- @property(cc.Prefab) monster: cc.Prefab = null;
- @property([cc.AnimationClip]) aniClip = [];
- monsterNode: cc.Node;
- protected onLoad(): void {
- let monsterNode = new cc.Node('monsterGroup');
- this.monsterNode = monsterNode;
- EditorSet.DontShow(monsterNode);
- this.node.addChild(monsterNode);
- if(CC_EDITOR){
- let node = new cc.Node('Collide');
- this.node.addChild(node);
- node.zIndex = cc.macro.MAX_ZINDEX;
- EditorSet.DontShow(node);
- let debugDrawer = node.addComponent(cc.Graphics);
- debugDrawer.lineWidth = 5;
- debugDrawer.strokeColor = new cc.Color(255, 0, 0);
- debugDrawer.fillColor = new cc.Color(255, 0, 0);
- debugDrawer.circle(0, 0, 20);
- debugDrawer.stroke();
- }
- else{
- this.play();
- }
-
- }
- // protected onFocusInEditor(): void {
- // this.play();
- // }
- // protected onLostFocusInEditor(): void {
- // this.end();
- // }
- end(){
- this.monsterNode.destroyAllChildren();
- }
- play(): void {
- this.monsterNode.destroyAllChildren();
- if(!this.monster) {
- cc.log('设置怪物资源');
- return;
- }
- let monsterNode = cc.instantiate(this.monster);
- let cnt = 0;
- let callAni = ()=>{
- let aniNode = new cc.Node('AniItem');
- let parent = monsterNode.parent ? monsterNode.parent : this.monsterNode;
- monsterNode.removeFromParent(false);
- aniNode.addChild(monsterNode);
- parent.addChild(aniNode);
- let ani = aniNode.addComponent(cc.Animation);
- ani.addClip(this.aniClip[cnt], 'path')
- ani.play('path');
- ani.once(cc.Animation.EventType.FINISHED, ()=>{
- cnt++;
- if(cnt < this.aniClip.length){
- aniNode.angle = 0;
- callAni();
- }
- });
- }
- callAni();
- }
- }
|