// 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 { tMgr } from "../Global"; import { TableName, BallSkinTable, GamePlayTable } from "../kernel/table/TableDefine"; import { UIBase } from "../ui/UIBase"; const { ccclass, property } = cc._decorator; @ccclass export default class SkinPreviewBall extends UIBase { private _skinId: number = 0; //#region lifecycle //#endregion //#region public method setSkin(id: number): void { this._skinId = id let config = tMgr.getConfig(TableName.BALL_SKIN, this._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; img.scale = (tMgr.getConfig(TableName.GAME_PLAY, 15 + config.Size) as GamePlayTable).Value / 100; } }) } //#endregion //#region event onBeginContact(contact: cc.PhysicsContact, selfCollider: cc.Collider, otherCollider: cc.Collider) { let points = contact.getWorldManifold().points; if (points.length > 0) { let p = points[0]; let pos = this.node.parent.convertToNodeSpaceAR(p); let parNode = this.node.parent.getChildByName('particle'); parNode.setPosition(pos); let skinConfig = tMgr.getConfig(TableName.BALL_SKIN, this._skinId) as BallSkinTable; cc.resources.load('battle/' + skinConfig.Particle, cc.SpriteFrame, (error, asset) => { if (!error) { parNode.active = true; parNode.getComponent(cc.ParticleSystem).custom = true; parNode.getComponent(cc.ParticleSystem).spriteFrame = asset as cc.SpriteFrame; parNode.getComponent(cc.ParticleSystem).resetSystem(); } }) } } //#endregion //#region private method //#endregion }