@property(Prefab) eggPrefab: Prefab; //预制体
import {Prefab,input,Input,KeyCode, Color,_decorator, v3, tween, Component, EventTouch, Node, log,Label, Tween, Vec3, EventKeyboard, instantiate, random } from 'cc';
@property(Prefab) eggPrefab: Prefab;
缩放会影响设置位置踩坑
import {Prefab,input,Input,KeyCode, Color,_decorator, v3, tween, Component, EventTouch, Node, log,Label, Tween, Vec3, EventKeyboard, instantiate, random } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('GameRoot')
export class GameRoot extends Component {
@property(Node) player: Node;
@property(Node) jiRoot: Node;
@property(Node) danRoot: Node;
@property(Prefab) eggPrefab: Prefab;
playerPosIndex = 0
jiPosArr = []
initData(){
for(let i = 0; i<this.jiRoot.children.length;i++){
const ji = this.jiRoot.children[i]
this.jiPosArr[i] = ji.position.x
}
}
start() {
this.initData()
this.openInputEvent()
this.renderPlayPos()
console.log(this.jiRoot.position.y,'this.jiRoot.position.y');
this.startCreateEggs()
}
startCreateEggs(){
this.schedule(this.createOneEgg,2)
}
createOneEgg(){
const randomIndex = Math.floor(Math.random()*5)
const egg = instantiate(this.eggPrefab)
this.danRoot.addChild(egg)
egg.setPosition(this.jiPosArr[randomIndex] , this.jiRoot.position.y)
}
openInputEvent(){
input.on(Input.EventType.KEY_DOWN,this.onKeyDown,this)
}
movePlay(dir:1|-1){
this.playerPosIndex +=dir
if(this.playerPosIndex<0){
this.playerPosIndex = 4
}
if(this.playerPosIndex>4){
this.playerPosIndex =0
}
const x = this.jiPosArr[this.playerPosIndex]
const y = this.player.position.y
this.player.setPosition(x,y)
}
renderPlayPos(){
const x = this.jiPosArr[this.playerPosIndex]
const y = this.player.position.y
this.player.setPosition(x,y)
}
onKeyDown(event:EventKeyboard){
switch(event.keyCode){
case KeyCode.KEY_A:
this.movePlay(-1)
break;
case KeyCode.KEY_D:
this.movePlay(1)
break;
}
}
update(deltaTime: number) {
for (let i = 0; i < this.danRoot.children.length; i++) {
const egg = this.danRoot.children[i]
const x = egg.position.x
const y = egg.position.y - 150*deltaTime
egg.setPosition(x,y)
if(y<-500){
egg.destroy()
}
}
}
}