| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- import { _decorator, tween, Vec3 } from 'cc';
 
- import { GameMgr } from './GameFrameWork/GameMgr';
 
- import { ModulerBase } from './GameFrameWork/ModulerBase';
 
- import { MapMgr } from './GameFrameWork/MapMgr';
 
- const { ccclass, property } = _decorator;
 
- @ccclass('Monster')
 
- export class Monster extends ModulerBase {
 
-     //private _gameMgr: GameMgr = null;
 
-     private _speed: number = 0;
 
-     private _points: Vec3[] = null;
 
-     protected onLoad(): void {
 
-         //this._gameMgr = this.node.parent.parent.getComponent(GameMgr);
 
-         //this._points = this._gameMgr.getPath();
 
-         this._points = GameMgr.Instance.getModuler(MapMgr).getPath();
 
-     }
 
-     start() {
 
-         const point = this._points[0];
 
-         this.node.setPosition(point.x, point.y);
 
-         this._speed = 100;
 
-         this.move(this._points, 1)
 
-     }
 
-     move(points: Vec3[],index: number){
 
-         if(index >= points.length - 1){
 
-             return;
 
-         }
 
-         const endPos = points[index];
 
-         const curPos = points[index - 1];
 
-         //计算向量差
 
-         const dis: number = endPos.clone().subtract(curPos).length();
 
-         const t: number = dis / this._speed;
 
-         tween(this.node)
 
-             .to(t,{position:points[index]})
 
-             .call(()=>{
 
-                 this.move(points, index + 1)
 
-             })
 
-             .start();
 
-     }
 
-     private _destroyMonster(points: Vec3[]) {
 
-         if(this.node.getPosition().x === points[points.length - 2].x
 
-         && this.node.getPosition().y === points[points.length - 2].y){
 
-             this.schedule(()=>{
 
-                 this.node.destroy();
 
-             },1)
 
-         }
 
-     }
 
-     update(deltaTime: number) {
 
-         this._destroyMonster(this._points)
 
-     }
 
- }
 
 
  |