CCGameCenterComponent.ts
3.84 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
99
100
101
102
103
104
105
106
107
108
109
110
111
import { EventCenter } from "../event/EventCenter";
import { CompositeDisposable } from "../event/EventKit";
import CooperationDataCenter from "./CooperationDataCenter";
import CCGameCenterNodeFactory from "./CCGameCenterNodeFactory";
import GameCenter from "./GameCenter";
import { DummyNode, DummyPrefab } from "../../common/CCDummyObjects";
/**
* 游戏盒子组件
*/
const { ccclass, property } = cc._decorator;
@ccclass
export default class CCGameCenterComponent extends cc.Component {
@property({ type: cc.Prefab, tooltip: "游戏盒子按钮prefab", displayName: "gameCenterBtnPrefab" })
gameCenterBtnPrefab: cc.Prefab = DummyPrefab;
@property({ type: cc.Prefab, tooltip: "游戏列表prefab", displayName: "gameCenterViewPrefab" })
gameCenterViewPrefab: cc.Prefab = DummyPrefab;
@property({ type: cc.Prefab, tooltip: "子游戏prefab", displayName: "gameCenterItemPrefab" })
gameCenterItemPrefab: cc.Prefab = DummyPrefab;
@property({ type: cc.Prefab, tooltip: "游戏朋友圈prefab", displayName: "gameCenterMomentPrefab" })
gameCenterMomentPrefab: cc.Prefab = DummyPrefab;
@property({ type: cc.Node, tooltip: "游戏中心列表的父节点" })
gameCenterParentNode: cc.Node = DummyNode;
@property({ type: cc.Node, tooltip: "在外面展示的子游戏" })
mainUISubGameNode: cc.Node = DummyNode;
@property({ tooltip: "是否是release环境" })
isRelease: boolean = false;
@property({ tooltip: "当前游戏的微信APPID" })
appID: string = "";
@property({ tooltip: "当前游戏的GameID:" })
gameID: string = "";
@property({ tooltip: "当前游戏的渠道" })
gameChannel: string = "wechat";
private _disposable: CompositeDisposable = new CompositeDisposable;
private _gameCenterViewNode: cc.Node = DummyNode;
onLoad() {
}
init() {
this.registerEventListener();
this.createNode();
this.onShowGameCenterListView(false);
CooperationDataCenter.getInstance().setCurGameID(this.gameID);
CooperationDataCenter.getInstance().setCurGameAppID(this.appID);
CooperationDataCenter.getInstance().setCurGameChannel(this.gameChannel);
GameCenter.getInstance().init();
CCGameCenterNodeFactory.getInstance().init();
CCGameCenterNodeFactory.getInstance().registerMomentPrefab(this.gameCenterMomentPrefab);
CCGameCenterNodeFactory.getInstance().registerSubGamePrefab(this.gameCenterItemPrefab);
CCGameCenterNodeFactory.getInstance().registerMainUISubGameNode(this.mainUISubGameNode);
EventCenter.REQUEST_COOPERATION_DATA_FROM_OSS.emit(this.isRelease);
}
registerEventListener() {
this._disposable.add(EventCenter.COOPERATION_DATA_DOWNLOAD_SUCCEED.on(this.onDownloadCooperationDataSucceed));
this._disposable.add(EventCenter.SHOW_GAME_CENTER_LIST_VIEW.on(this.onShowGameCenterListView));
}
private onDownloadCooperationDataSucceed = () => {
EventCenter.REFRESH_SUB_GAME_LIST.emit();
}
/**创建prefab对应的节点 */
createNode() {
if (!this.gameCenterViewPrefab) {
cc.error("gameCenterViewPrefab is not set , please check it over");
} else {
this._gameCenterViewNode = cc.instantiate(this.gameCenterViewPrefab);
}
let parentNode: cc.Node = cc.director.getScene();
if (this.gameCenterParentNode) {
parentNode = this.gameCenterParentNode;
}
this._gameCenterViewNode.parent = parentNode;
this._gameCenterViewNode.position = cc.v3(cc.winSize.width / 2, cc.winSize.height / 2, 0);
}
start() {
}
update(dt) {
}
/**控制游戏列表是否展示 */
onShowGameCenterListView = (isShow: boolean) => {
if (!this._gameCenterViewNode) {
return;
}
this._gameCenterViewNode.active = isShow;
}
}