| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- const spawnGroup = require('spawnGroup');
- const levelStates = require('LevelStates');
- cc.Class({
- extends: cc.Component,
- properties: {
- ABPrefab: cc.Prefab,
- ABLayer: cc.Node,
- initPipeX: 0,
- //-- 创建PipeGroup需要的时间
- spawnInterval: 0,
- //当前要生成的地图数组
- currentSpawnArray: [],
- //当前生成什么项目
- currentSportsType: null,
- spawnIndex: 0,
- },
- onLoad() {
- GlobalData.spawnManager = this;
- //获取地图js
- //GlobalData.levelManager = this.node.getComponent('LevelManager');
- // this.LevelPool = new cc.NodePool();
- },
- start() {
- this.startSpawn();
- },
- startSpawn() {
- // this.schedule(this.spawnItem, this.spawnInterval);
- //新的项目从0开始
- this.spawnIndex = 0;
- if (!GlobalData.levelManager.spawnSportsName) {
- if(GlobalData.levelManager.spawnSportsName==0){
- this.SpawnSportsIndex = 1;//第一个项目,spawnSprint Enum ==1;
- this.SwitchSports(this.SpawnSportsIndex);
- this.spawnItem();
- }else{
- console.warn('GlobalData.levelManager.spawnSportsName 不存在!');
- }
- return;
- }
- this.SwitchSports(GlobalData.levelManager.spawnSportsName);
- // console.log('当前动态数组', this.currentSpawnArray, GlobalData.levelManager.SprintSports.sportsName);
- if (this.currentSpawnArray.length == 0) {
- return;
- }
- this.spawnItem();
- },
- SwitchSports(name){
- switch (name) {
- case levelStates.spawnSportsName.spawnSprint:
- this.currentSpawnArray = GlobalData.levelManager.SprintSports.itemPrefab;
- this.currentSportsType = GlobalData.levelManager.SprintSports.sportsName;
-
- break;
- case levelStates.spawnSportsName.spawnLongJump:
- this.currentSpawnArray = GlobalData.levelManager.LongJumpSports.itemPrefab;
- this.currentSportsType = GlobalData.levelManager.LongJumpSports.sportsName;
- break;
- case levelStates.spawnSportsName.spawnHurdle:
- this.currentSpawnArray = GlobalData.levelManager.HurdleSports.itemPrefab;
- this.currentSportsType = GlobalData.levelManager.HurdleSports.sportsName;
- break;
- case levelStates.spawnSportsName.spawnJavelin:
- this.currentSpawnArray = GlobalData.levelManager.JavelinSports.itemPrefab;
- this.currentSportsType = GlobalData.levelManager.JavelinSports.sportsName;
- break;
- case levelStates.spawnSportsName.spawnBike:
- this.currentSpawnArray = GlobalData.levelManager.BikeSports.itemPrefab;
- this.currentSportsType = GlobalData.levelManager.BikeSports.sportsName;
-
- break;
- }
- GlobalData.game.currentSpawnSport = this.currentSportsType;
- // console.log('当前生成项目的enum值:', GlobalData.game.currentSpawnSport);
- },
- //-- 需要生成全部体育项目
- SpawnAllSportsItem() {
-
- },
- //-- 创建
- spawnItem() {
- this.ABPrefab = this.currentSpawnArray[this.spawnIndex];
- let spawnGroupTemp = null;
- // if (this.LevelPool.size) {
- // spawnGroupTemp = this.LevelPool.get(spawnGroup);
- // console.log('取出对象',spawnGroupTemp);
- // } else {
- spawnGroupTemp = cc.instantiate(this.ABPrefab).getComponent(spawnGroup);
- // console.log('重新生成对象',spawnGroupTemp);
- // }
- this.ABLayer.addChild(spawnGroupTemp.node);
- spawnGroupTemp.node.active = true;
- // spawnGroupTemp.node.x = this.initPipeX;
- spawnGroupTemp.node.setPosition(this.initPipeX, 0);
- // console.log(spawnGroupTemp.node.name);
- //如果是结束的预制
- if (spawnGroupTemp.node.name == "FinishLine") {
- this.spawnIndex = 0;
- if(GlobalData.levelManager.spawnSportsName==0){
- this.SpawnSportsIndex++;
-
- this.SwitchSports(this.SpawnSportsIndex);
- //如果存在,说明是初始化全部项目。最后一个项目,设置成1;
- // console.log(this.SpawnSportsIndex);
- if(this.SpawnSportsIndex == 5){
- this.SpawnSportsIndex =0;
- }
- }
- } else {
- this.spawnIndex++;
- }
- },
- despawnPipe(destroyObj) {
- // destroyObj.node.removeFromParent();
- // destroyObj.node.active = false;
- // this.LevelPool.put(destroyObj.node);
- destroyObj.node.destroy();
- this.spawnItem();
- },
- reset() {
- this.unschedule(this.spawnItem);
- }
- });
|