123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import FMap from "../map/FMap";
- import CUtilTime from "../../../util/CUtilTime";
- import FSprite from "../object/FSprite";
- import CMath from "../../../util/CMath";
- import { GroupType } from "../object/FObject";
- const { ccclass, property } = cc._decorator;
- /**
- * 怪物触发器
- */
- @ccclass
- export default class EnemyTrigger extends cc.Component {
- @property({
- displayName: '关联表格数据'
- })
- mId: number = 0;
- @property({
- type: cc.Prefab,
- displayName: '怪物原型',
- })
- mMonster: cc.Prefab = null;
- @property({
- displayName: '初始怪物数量'
- })
- mInitCount: number = 20;
- @property({
- displayName: '最大存在值',
- })
- mMaxCount: number = 20;
- @property({
- displayName: '刷怪周期/秒(-1:不刷新)',
- })
- mFlushTime: number = 5;
- @property({
- displayName: '周期刷怪个数',
- })
- mFlushCount: number = 3;
- public mMap: FMap;
- /**
- * 上次刷新时间
- */
- private prevTime = 0;
- onLoad() {
- let mapNode = this.node.parent.parent;
- this.mMap = mapNode.getComponent(FMap);
- this.flush(this.mInitCount);
- this.prevTime = CUtilTime.getNowTime();
- if (this.mFlushTime > 0) {
- this.schedule(this.addMonster, this.mFlushTime);
- }
- }
- /**
- * 刷新怪物
- * @param count
- */
- private flush(count: number) {
- for (let i = 0; i < count; i++) {
- // let node: cc.Node = cc.instantiate(this.mMonster);
- // let sp: FSprite = node.getComponent(FSprite);
- // sp.node.group = GroupType.B;
- // sp.trigger = this;
- // sp.mId = this.mId;
- // sp.fData = this.mMap.ff.main.sManage.getMonsterData(this.mId);
- // node.setPosition(this.getRandInit());
- // this.mMap.addSprite(sp);
- }
-
- }
- public getRandInit(): cc.Vec2 {
- let pos = cc.v2();
- pos.x = CMath.getRandom(this.node.x - this.node.width / 2, this.node.x + this.node.width / 2);
- pos.y = CMath.getRandom(this.node.y - this.node.height / 2, this.node.y + this.node.height / 2);
- return pos;
- }
- public addMonster() {
- //判断数量
- // let count = 0;
- // let sprites = this.mMap.getSprites();
- // for (let i = 0; i < sprites.length; i++) {
- // const node = sprites[i];
- // let sp = node.getComponent(FSprite);
- // if(sp && sp.trigger == this){
- // count ++;
- // }
- // }
- // if(count >= this.mMaxCount){
- // return;
- // }
- // this.flush(this.mFlushCount);
- }
- }
|