SkinPreviewBall.ts
2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// 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
}