// Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html import { SaveDataManager } from "../component/SaveDataManager"; import { tMgr } from "../Global"; import { BattleManager } from "../kernel/battle/BattleManager"; import { BallSkinTable, GamePlayTable, TableName } from "../kernel/table/TableDefine"; const { ccclass, property } = cc._decorator; @ccclass export default class Ball extends cc.Component { /**是否正在飞向出生点 */ collecting: boolean = false; scaleEnable: boolean = true; // static POS_CACHE: cc.Vec3 = cc.v3(); // LIFE-CYCLE CALLBACKS: // onLoad () {} protected onEnable(): void { let skinId = SaveDataManager.ins.runtimeData.ballSkinCurrent; SaveDataManager.ins.runtimeData.ballSkinTry > 0 && (skinId = SaveDataManager.ins.runtimeData.ballSkinTry); //有试用皮肤,优先使用试用 let config = tMgr.getConfig(TableName.BALL_SKIN, skinId) as BallSkinTable; let bindNode = this.node; cc.resources.load('battle/' + config.Img, cc.SpriteFrame, (error, asset) => { if (!error) { let img = bindNode.getChildByName('img'); img.getComponent(cc.Sprite).spriteFrame = asset as cc.SpriteFrame; this.scaleEnable && (img.scale = (tMgr.getConfig(TableName.GAME_PLAY, 15 + config.Size) as GamePlayTable).Value / 100); } }) } protected onDisable(): void { } start() { } protected onDestroy(): void { cc.Tween.stopAllByTarget(this.node); } // update (dt) {} onBeginContact(contact: cc.PhysicsContact, selfCollider: cc.Collider, otherCollider: cc.Collider) { if (otherCollider.node.name == "borderCollector") { // if (BattleManager.ins.curBattle.marblesCollectCount > 0) { // this.collect(Ball.POS_CACHE); // } // else { //第一个球 // contact.disabled = true; let points = contact.getWorldManifold().points; BattleManager.ins.curBattle.marblesCollected(points[0], this.node); // this.node.active = false; // Ball.POS_CACHE.x = BattleManager.ins.curBattle.marblesBornPosNextRound.x; // Ball.POS_CACHE.y = BattleManager.ins.curBattle.marblesBornPosNextRound.y; // Ball.POS_CACHE.z = 0; // } } } // collect(targetPos: cc.Vec3) { // this.node.getComponent(cc.PhysicsCollider).enabled = false; // cc.tween(this.node).to(0.2, { position: targetPos }).call(() => { // this.node.active = false; // this.node.getComponent(cc.PhysicsCollider).enabled = true; // BattleManager.ins.curBattle.marblesCollected(null); // }).start(); // } }