咸鱼的反击
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
xianyudefanji/assets/Scripts/ZaoCanDian/ZaoCanDianNpc.ts

125 lines
3.6 KiB

// Learn TypeScript:
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html
import Common5 from "../../Platform/th/Common5";
import { Npc_Direct } from "./ZaoCanDian";
const { ccclass, property } = cc._decorator;
@ccclass
export default class ZaoCanDianNpc extends cc.Component {
@property(cc.Node)
needNode: cc.Node = null;
@property(cc.Sprite)
wuping: cc.Sprite = null;
@property(cc.Label)
numLabel: cc.Label = null;
// LIFE-CYCLE CALLBACKS:
// onLoad () {}
m_direct = null
needStr: string;
stateIndex: number;
needNum: number;
start() {
}
/**
*
* @param direct 来的方向
* @param position 停留位置
* @param needStr 早餐名字
* @param stateIndex 站立位置的index,站位
* @param needNum 需要几个早餐
*/
init(direct: Npc_Direct, position: cc.Vec2, needStr: string, stateIndex: number, needNum: number) {
this.m_direct = direct
this.needNode.active = false
this.stateIndex = stateIndex
this.setNeedNum(needNum)
let size = cc.view.getVisibleSize();
let x = size.width / 2 + this.node.getContentSize().width
if (direct == Npc_Direct.LEFT) {
this.node.setPosition(cc.v3(-x, 0))
} else if (direct == Npc_Direct.RIGHT) {
this.node.setPosition(cc.v3(x, 0))
this.node.scaleX *= -1
}
//有位置说明需要物品,没位置就逛街
if (position) {
cc.tween(this.node)
.sequence(
cc.tween().to(1, { position: cc.v3(position.x, 0) }),
cc.tween().to(0.5, { position: position }),
cc.tween().call(() => {
//随机需要的早餐
this.needStr = needStr
this.needNode.active = true
Common5.getSpriteFrameFromBundle('ZaoCanDian', `res/${this.needStr}`, this.wuping)
this.numLabel.string = `${this.getNeedNum()}`
})
)
.start()
} else {
cc.tween(this.node)
.sequence(
cc.tween().to(1, { position: cc.v3(direct == Npc_Direct.LEFT ? x : -x, 0) }),
cc.tween().call(() => {
this.node.removeAllChildren()
this.node.destroy()
})
)
.start()
}
}
getNeedStr() {
return this.needStr
}
getStateIndex() {
return this.stateIndex
}
setNeedNum(num) {
this.needNum = num
this.numLabel.string = `${num}`
}
getNeedNum() {
return this.needNum
}
getZaoCanAfter() {
this.needNode.active = false
let size = cc.view.getVisibleSize();
let x = size.width / 2 + this.node.getContentSize().width
if (this.m_direct == Npc_Direct.LEFT) {
} else if (this.m_direct == Npc_Direct.RIGHT) {
x *= -1
}
cc.tween(this.node)
.sequence(
cc.tween().to(1, { position: cc.v3(x, this.node.position.y) }),
cc.tween().call(() => {
this.node.removeAllChildren()
this.node.destroy()
})
)
.start()
}
// update (dt) {}
}