Ball.ts
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// 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();
// }
}