增加个人逻辑

This commit is contained in:
admin
2023-04-25 17:29:36 +08:00
parent d414e37e6e
commit 5eecee380e
3 changed files with 63 additions and 11 deletions

View File

@@ -931,8 +931,8 @@
"__expectedType__": "cc.Prefab" "__expectedType__": "cc.Prefab"
}, },
"zd_speed": 0.2, "zd_speed": 0.2,
"new_zd_time": 0.2, "new_zd_time": 0.1,
"createDpTime": 2, "createDpTime": 3,
"dp1_speed": 0.05, "dp1_speed": 0.05,
"dp2_speed": 0.03, "dp2_speed": 0.03,
"_id": "aaX4RqMLVAKL2tbj7n23Tn" "_id": "aaX4RqMLVAKL2tbj7n23Tn"

View File

@@ -14,6 +14,12 @@ export class dpComponent extends Component {
@property @property
public _dpType = dpImpl.dpType.TYPE1; public _dpType = dpImpl.dpType.TYPE1;
/**控制敌人运动和子弹类型的轮数 */
private ns:number = 0;
/**是否是组合出现 */
private isarr:number = 0;
//飞行最大距离 //飞行最大距离
public dp_max:number = 12; public dp_max:number = 12;
@@ -23,6 +29,14 @@ export class dpComponent extends Component {
} }
update(deltaTime: number) { update(deltaTime: number) {
//敌人逻辑0发射单排子弹横线运动
//敌人逻辑1发射单排子弹向我方p的z轴靠近
//敌人逻辑2发射散射子弹横线运动
//敌人逻辑3发射散射子弹向我方p的z轴靠近
//前10秒出现的单个敌人 0/1随机一种
//20-60秒出现的敌人如果是单个 1/2随机一种组合出现 0/2随机一种
//60秒以上 单个1/2/3随机一种组合0/1/2随机一种
const pos = this.node.position; const pos = this.node.position;
let movez = pos.z + this.dpSpeed; let movez = pos.z + this.dpSpeed;
@@ -32,9 +46,15 @@ export class dpComponent extends Component {
} }
public _init(speed:number){ public _init(speed:number,n:number,a:number){
this.dpSpeed = speed; this.dpSpeed = speed;
this.ns = n;
this.isarr = a;
} }
/**向我方z轴靠近 */
public moveToP(){
//控制this.node.x轴逐步接近玩家的x值
}
} }

View File

@@ -35,20 +35,20 @@ export class gameManager extends Component {
/**发射子弹的间隔*/ /**发射子弹的间隔*/
@property @property
public new_zd_time = 0.2; public new_zd_time = 0.1;
/**当前发射子弹的间隔*/ /**当前发射子弹的间隔*/
public _new_zd_time = 0; public _new_zd_time = 0;
/**敌人生成的间隔时间 */ /**敌人生成的间隔时间 */
@property @property
public createDpTime = 2; public createDpTime = 3;
/**当前敌人生成的时间 */ /**当前敌人生成的时间 */
public _createDpTime = 0; public _createDpTime = 0;
/**组合间隔状态 */ /**组合间隔状态 */
public _createDpArr = dpImpl.dpArr.dps1; public _createDpArr = 0;
@property @property
public dp1_speed:number = 0.05; public dp1_speed:number = 0.05;
@@ -58,6 +58,8 @@ export class gameManager extends Component {
private _isTouch:boolean = false; private _isTouch:boolean = false;
private lasttype:number = 0;
start() { start() {
this._new_zd_time = this.new_zd_time; this._new_zd_time = this.new_zd_time;
this.changeDpMode(); this.changeDpMode();
@@ -71,21 +73,37 @@ export class gameManager extends Component {
this._new_zd_time = 0; this._new_zd_time = 0;
} }
if(this._createDpArr === dpImpl.dpArr.dps1){ this._createDpTime += deltaTime;
if(this._createDpArr <= 2){
this._createDpTime += deltaTime;
if(this._createDpTime > this.createDpTime){ if(this._createDpTime > this.createDpTime){
this.cerateDp(); this.cerateDp(0);
this._createDpTime = 0; this._createDpTime = 0;
} }
}else{ }else{
if(this._createDpTime > this.createDpTime * 0.8){
let rm = math.randomRangeInt(1,3);
if(rm == 2 && this.lasttype == 0){
this.cerateDpArr(this._createDpArr > 2 && this._createDpArr <= 6 ? 1:2);
this.lasttype=1;
}
else{
this.cerateDp(this._createDpArr > 2 && this._createDpArr <= 6 ? 1:2);
this.lasttype=0;
}
this._createDpTime = 0;
}
} }
} }
public cerateDp() {
public cerateDp(n:number) {
let randm = math.randomRangeInt(1,3); let randm = math.randomRangeInt(1,3);
let p:Prefab = null; let p:Prefab = null;
@@ -103,12 +121,26 @@ export class gameManager extends Component {
const dp = instantiate(p); const dp = instantiate(p);
dp.setParent(this.node); dp.setParent(this.node);
const dpc = dp.getComponent(dpComponent); const dpc = dp.getComponent(dpComponent);
dpc._init(speed); dpc._init(speed,n,0);
let loc = math.randomRange(-3.8,3.8); let loc = math.randomRange(-3.8,3.8);
dp.setPosition(loc, 1, -dpc.dp_max); dp.setPosition(loc, 1, -dpc.dp_max);
} }
public cerateDpArr(n:number) {
let parr = new Array<Node>(5);
for (let i = 0; i < parr.length; i++) {
let randm = math.randomRangeInt(1,3);
parr[i] = instantiate(randm==1?this.dp1:this.dp2);
parr[i].setParent(this.node);
const dpc = parr[i].getComponent(dpComponent);
dpc._init(randm==1?this.dp1_speed:this.dp2_speed,n,1);
parr[i].setPosition(i*1.8-3.6, 1, -dpc.dp_max);
}
}
public createZd(){ public createZd(){
const zd01 = instantiate(this.zd1); const zd01 = instantiate(this.zd1);
zd01.setParent(this.zdOut); zd01.setParent(this.zdOut);