无尽关卡,评论

This commit is contained in:
huanghaipeng 2026-01-13 16:52:25 +08:00
parent 3751adb4e0
commit a0fe65361f
50 changed files with 24899 additions and 7554 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -115,6 +115,9 @@ export default class JiaZai extends cc.Component {
private onShowListener: () => void;
private onHideListener: () => void;
RankNode: cc.Node;
// 引导动画执行中
private guideInProgress: boolean = false;
// LIFE-CYCLE CALLBACKS:
onLoad() {
@ -136,6 +139,10 @@ export default class JiaZai extends cc.Component {
this.closeAvatar();
this.setShareInfo();
this.checkTasks();
if (!cc.fx.GameTool.maxLevel()) {
this.specialLevelShow();
}
this.endlessLevelShow();
this.checkAndSetPlayerPassLevel();
// this.checkDailyQuests();
@ -918,15 +925,48 @@ export default class JiaZai extends cc.Component {
}
}
// 最大关卡后第一次进入关卡弹窗
enterGame() {
let recordInfinity = cc.fx.StorageMessage.getStorage("EndLevelPop");
console.log("已经最大关卡 弹窗提示", recordInfinity, cc.fx.GameTool.maxLevel())
if (cc.fx.GameTool.maxLevel()) {
if (recordInfinity == null || recordInfinity == "") {
// 没有弹过窗
this.node.getChildByName("Load").getChildByName("specialTips").active = true;
cc.fx.StorageMessage.setStorage("EndLevelPop", 1);
} else {
this.node.getChildByName("Load").getChildByName("specialTips").active = false;
this.startGame()
}
} else {
cc.fx.StorageMessage.setStorage("EndLevelPop", "");
this.startGame();
}
}
startGame() {
cc.fx.AudioManager._instance.playEffect("anniu_Big", null);
let version = cc.fx.GameTool.getWechatGameVersion();
if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.otherLevel == 0) {
if (version != "开发版" && version != "体验版") {
MiniGameSdk.API.showToast("关卡每周更新,敬请期待!");
cc.fx.GameTool.requestSubscribe();
return;
}
// if (version != "开发版" && version != "体验版") {
// MiniGameSdk.API.showToast("关卡每周更新,敬请期待!");
// cc.fx.GameTool.requestSubscribe();
cc.fx.AudioManager._instance.playEffect("zhuan1", null);
this.node.getChildByName("zhuanchang").active = true;
this.node.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false);
// cc.fx.GameConfig.GM_INFO.randomLevel = cc.fx.GameTool.getNextLevel() || 0;
let rLevel = cc.fx.GameConfig.GM_INFO.randomLevel;
cc.fx.StorageMessage.setStorage("randomLevel", rLevel);
console.log("保存玩家随机关卡", rLevel, cc.fx.GameConfig.GM_INFO.endLevelNum)
Utils.setEndlessLevel(() => { }, rLevel, cc.fx.GameConfig.GM_INFO.endLevelNum);
cc.fx.GameConfig.LEVEL_INFO_init(true, 1000, false, true);
return;
// }
}
let power = cc.fx.GameTool.getUserPowerTime();
@ -2081,6 +2121,9 @@ export default class JiaZai extends cc.Component {
cc.fx.StorageMessage.setStorage("winStreakTime", dateStr);
}
else {
if (cc.fx.GameConfig.GM_INFO.winStreak && cc.fx.GameConfig.GM_INFO.winStreak < 10) {
this.guideHammerAnimation();
}
return;
}
}
@ -2193,6 +2236,13 @@ export default class JiaZai extends cc.Component {
// 更新缓存
cc.fx.StorageMessage.setStorage("CACHE_PASS_CHECK", dateStr);
this.openPassCheck();
cc.fx.GameConfig.GM_INFO.popPassCheck = false;
} else {
if (this.node) {
this.guidePassCheckAnimation();
} else {
console.error("not node guidePassCheckAnimation");
}
}
}
}
@ -2636,6 +2686,100 @@ export default class JiaZai extends cc.Component {
}
}
guideHammerAnimation() {
let loadNode = this.node.getChildByName("Load");
if (!loadNode) return;
let top = loadNode.getChildByName("Top");
if (!top) return;
let hammer = top.getChildByName("hammer");
if (!hammer) return;
let guideNode = loadNode.getChildByName("guideNode");
if (!guideNode) return;
let guideSprNode = guideNode.getChildByName("guideHammer");
if (!guideSprNode) return;
this.guideAnimation(hammer, guideSprNode);
}
guidePassCheckAnimation() {
// 检查节点是否存在
if (!this.node) {
return;
}
// 获取passBtn节点位置
let loadNode = this.node.getChildByName("Load");
if (!loadNode) {
return;
}
let top = loadNode.getChildByName("Top");
if (!top) {
return;
}
let passBtn = top.getChildByName("passBtn");
if (!passBtn) {
return;
}
let guideSprNode = loadNode.getChildByName("guideNode");
if (!guideSprNode) {
return;
}
guideSprNode = guideSprNode.getChildByName("guidePassCheck");
if (!guideSprNode) {
return;
}
this.guideAnimation(passBtn, guideSprNode);
}
guideAnimation(endNode, guideSprNode) {
let timeout = 0;
if (this.guideInProgress) {
this.guideInProgress = false;
timeout = 1400;
} else {
this.guideInProgress = true;
timeout = 0;
}
setTimeout(() => {
let worldPos = endNode.parent.convertToWorldSpaceAR(endNode.position);
let targetPos = guideSprNode.parent.convertToNodeSpaceAR(worldPos);
// 设置精灵的 zIndex 保证在上层显示
guideSprNode.zIndex = 9999;
guideSprNode.setPosition(cc.Vec3.ZERO);
guideSprNode.active = true;
// 重置动画属性
guideSprNode.scale = 0;
guideSprNode.angle = 0;
cc.tween(guideSprNode)
.to(0.3, { scale: 2 })
.delay(1)
// .to(1, { scale: 1 })
.to(0.5,
{ position: cc.v3(targetPos.x, targetPos.y, targetPos.z), scale: 1 },
{ easing: 'quartIn' },)
.to(0.2, {
scale: 0,
// position: cc.v3(targetPos.x, targetPos.y, targetPos.z)
})
.call(() => {
guideSprNode.active = false;
cc.fx.GameTool.onBtnJitter(endNode);
})
.start();
}, timeout);
}
closePassCheck() {
console.log("关闭过时数据", cc.fx.GameConfig.GM_INFO.getItemType)
this.checkAndSetPlayerPassLevel();
@ -3002,6 +3146,71 @@ export default class JiaZai extends cc.Component {
this.node.addChild(reddemCodeNode);
}
// 困难关卡显示紫色图标
specialLevelShow() {
let startBtn = this.node.getChildByName("Load").getChildByName("startBtn")
startBtn.getChildByName("difficultySpr").active = false;
const currentLevel = cc.fx.GameConfig.GM_INFO.level + 1;
const passCheckJson = cc.fx.GameConfig.PASS_RATE;
// 直接查找匹配的记录
const levelData = passCheckJson.find(item => item.level === currentLevel);
if (levelData) {
// 找到了对应的记录
startBtn.getChildByName("difficultySpr").active = true;
} else {
console.log("未找到关卡数据");
}
}
endlessLevelShow() {
const currentLevel = cc.fx.GameConfig.GM_INFO.level;
let levelNode = this.node.getChildByName("Load").getChildByName("levelNode");
let levelNum = levelNode.getChildByName("endlessNode").getChildByName("levelNum");
let startBtn = this.node.getChildByName("Load").getChildByName("startBtn")
startBtn.getChildByName("difficultySpr").active = false;
if (cc.fx.GameTool.maxLevel()) {
if (!cc.fx.GameConfig.GM_INFO.randomLevel) {
cc.fx.GameConfig.GM_INFO.randomLevel = 0;
}
let rLevel = cc.fx.StorageMessage.getStorage("randomLevel");
let endLevelNum = cc.fx.StorageMessage.getStorage("endLevelNum");
Utils.getEndlessLevel((data) => {
if (data.code == 1) {
rLevel = data.data.userLevel;
endLevelNum = data.data.endLevelNum;
cc.fx.GameConfig.GM_INFO.randomLevel = Number(rLevel) || 0;
cc.fx.GameConfig.GM_INFO.endLevelNum = Number(endLevelNum) || 1;
} else {
cc.fx.GameConfig.GM_INFO.randomLevel = rLevel || 0;
cc.fx.GameConfig.GM_INFO.endLevelNum = endLevelNum || 1;
}
if (!cc.fx.GameConfig.GM_INFO.randomLevel || cc.fx.GameConfig.GM_INFO.randomLevel === 0) {
cc.fx.GameConfig.GM_INFO.randomLevel = cc.fx.GameTool.getNextLevel() || 0;
}
cc.fx.StorageMessage.setStorage("randomLevel", cc.fx.GameConfig.GM_INFO.randomLevel);
startBtn.getChildByName("endless").active = true;
levelNode.getChildByName("endlessNode").active = true;
levelNode.getChildByName("diguan").active = false;
NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.endLevelNum, 45, 48, "half_black_", levelNum, true);// 45 48
cc.fx.GameTool.setEndLevelLabelPos(levelNum);
this.level.active = false;
});
} else {
startBtn.getChildByName("endless").active = false;
levelNode.getChildByName("endlessNode").active = false;
levelNode.getChildByName("diguan").active = true;
this.level.active = true;
}
}
update(dt) {
if (this.newbieGift && this.monthlyCardNode) {
if (this.monthlyCardNode.active == true) {

View File

@ -461,8 +461,16 @@ export default class MapConroler extends cc.Component {
if (cc.fx.GameConfig.GM_INFO.winStreak >= 10) {
this.is_frenzy = true;
}
let endLevel = false;
console.log("33333333333333333", cc.fx.GameTool.maxLevel(), cc.fx.GameConfig.GM_INFO.GameplayType)
if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
endLevel = true;
}
let data = {
"is_frenzy": this.is_frenzy
"is_frenzy": this.is_frenzy,
"infinity": endLevel,
}
if (cc.fx.GameConfig.GM_INFO.winStreak >= 10 && cc.fx.GameConfig.GM_INFO.otherLevel == 0) {
cc.fx.GameConfig.GM_INFO.winState = false;
@ -506,8 +514,20 @@ export default class MapConroler extends cc.Component {
let levelName = (cc.fx.GameConfig.GM_INFO.level + 1);
if (cc.fx.GameConfig.GM_INFO.otherLevel) {
levelName = cc.fx.GameConfig.GM_INFO.otherLevel;
} else {
if (cc.fx.GameTool.maxLevel()) {
levelName = cc.fx.GameConfig.GM_INFO.randomLevel;
// let rLevel = cc.fx.GameConfig.GM_INFO.randomLevel;
// cc.fx.StorageMessage.setStorage("randomLevel", rLevel);
// Utils.setEndlessLevel(() => { }, rLevel)
} else {
levelName = cc.fx.GameConfig.GM_INFO.level + 1;
}
}
NumberToImage.numberToImageNodes5(levelName, 35, 0, "custom", this.levelLabel, true)
NumberToImage.numberToImageNodes5(levelName, 35, 0, "custom", this.levelLabel, true);
this.endlessLevelShow();
for (let i = 0; i < this.levelLabel.children.length; i++) {
this.levelLabel.children[i].color = cc.color(0, 0, 0);
}
@ -623,6 +643,7 @@ export default class MapConroler extends cc.Component {
const currentLevel = cc.fx.GameConfig.GM_INFO.level + 1;
const lastVisitedLevel = cc.fx.StorageMessage.getStorage("visitedLevels");
const isFirstTime = (lastVisitedLevel !== currentLevel);
this.node.parent.getChildByName("Top").getChildByName("difficultySpr").active = false;
if (isFirstTime) {
cc.fx.StorageMessage.setStorage("visitedLevels", currentLevel);
const passCheckJson = cc.fx.GameConfig.PASS_RATE;
@ -632,6 +653,7 @@ export default class MapConroler extends cc.Component {
// 找到了对应的记录
let passRateNode = this.node.parent.parent.getChildByName("popUpPassRate")
passRateNode.active = true;
this.node.parent.getChildByName("Top").getChildByName("difficultySpr").active = true;
let passRate = passRateNode.getChildByName("passRate");
// NumberToImage.numberToImageNodes4(levelData.pass_rate, 50, 0, "Black", passRate, true)
if (levelData.pass_rate)
@ -2294,8 +2316,46 @@ export default class MapConroler extends cc.Component {
cc.fx.GameTool.shushu_Track("resource_get", data);
let overTime = Date.now();
this.count_Time = overTime - this.count_Time;
let endLevelShow = () => {
let levelNum = this.node.parent.parent.getChildByName("Win").getChildByName("tween").getChildByName("endlessNode").getChildByName("levelNum")
NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.endLevelNum, 45, 48, "half_black_", levelNum, true);// 45 48
cc.fx.GameTool.setEndLevelLabelPos(levelNum);
if (!cc.fx.GameConfig.GM_INFO.randomLevel || cc.fx.GameConfig.GM_INFO.randomLevel === 0) {
cc.fx.GameConfig.GM_INFO.randomLevel = 31;
}
cc.fx.StorageMessage.setStorage("randomLevel", cc.fx.GameConfig.GM_INFO.randomLevel);
}
console.log("222222222222222", cc.fx.GameTool.maxLevel(), cc.fx.GameConfig.GM_INFO.GameplayType)
if (cc.fx.GameConfig.GM_INFO.otherLevel > 0) {
} else if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
if (!cc.fx.GameConfig.GM_INFO.randomLevel || cc.fx.GameConfig.GM_INFO.randomLevel === 0) {
Utils.getEndlessLevel((data) => {
if (data.code == 1) {
cc.fx.GameConfig.GM_INFO.randomLevel = Number(data.data.userLevel) || cc.fx.GameTool.getNextLevel();
cc.fx.GameConfig.GM_INFO.endLevelNum = Number(data.data.endLevelNum) || 1;
console.log("获取无尽模式等级成功", cc.fx.GameConfig.GM_INFO.randomLevel, data);
} else {
cc.fx.GameConfig.GM_INFO.randomLevel = cc.fx.GameTool.getNextLevel() || 0;
cc.fx.GameConfig.GM_INFO.endLevelNum = 1;
}
endLevelShow();
});
} else {
cc.fx.GameConfig.GM_INFO.randomLevel = cc.fx.GameTool.getNextLevel();
endLevelShow();
cc.fx.GameConfig.GM_INFO.endLevelNum = cc.fx.GameConfig.GM_INFO.endLevelNum + 1;
cc.fx.StorageMessage.setStorage("endLevelNum", cc.fx.GameConfig.GM_INFO.endLevelNum);
console.log("无尽模式保存下一关等级:", cc.fx.GameConfig.GM_INFO.randomLevel, cc.fx.GameConfig.GM_INFO.endLevelNum);
Utils.setEndlessLevel(() => { }, cc.fx.GameConfig.GM_INFO.randomLevel, cc.fx.GameConfig.GM_INFO.endLevelNum);
}
}
else cc.fx.GameTool.addLevel(this.count_Time, this.add_Time, (data) => {
// console.log("加分后排行结果", data);
@ -2363,6 +2423,29 @@ export default class MapConroler extends cc.Component {
}
}
winMaxLevelShowClose() {
this.node.parent.parent.getChildByName("Win").getChildByName("specialTips").active = false;
}
winLevel2() {
let recordInfinity = cc.fx.StorageMessage.getStorage("EndLevelPop");
console.log("已经最大关卡房间 弹窗提示", recordInfinity, cc.fx.GameTool.maxLevel())
if (cc.fx.GameTool.maxLevel()) {
if (recordInfinity == null || recordInfinity == "") {
// 没有弹过窗
this.node.parent.parent.getChildByName("Win").getChildByName("specialTips").active = true;
cc.fx.StorageMessage.setStorage("EndLevelPop", 1);
} else {
this.node.parent.parent.getChildByName("Win").getChildByName("specialTips").active = false;
this.winLevel()
}
} else {
cc.fx.StorageMessage.setStorage("EndLevelPop", "");
this.winLevel();
}
}
winLevel() {
// MiniGameSdk.API.showToast(cc.fx.GameConfig.GM_INFO.level);
if (this.node.parent.parent.getChildByName("Win").getChildByName("tween").
@ -2375,11 +2458,58 @@ export default class MapConroler extends cc.Component {
console.log("下一关", cc.fx.GameConfig.GM_INFO.level);
this.uploadToCloud(cc.fx.GameConfig.GM_INFO.level + 1);
if (cc.fx.GameTool.maxLevel()) {
MiniGameSdk.API.showToast("每周更新,敬请期待");
// 正常游戏到最后一关时 先弹出提示 无尽关暂时都是从外面进入
// if (cc.fx.GameConfig.GM_INFO.randomLevel == 0) {
// if (cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
cc.fx.AudioManager._instance.playEffect("zhuan1", null);
this.node.parent.parent.parent.getChildByName("zhuanchang").active = true;
this.node.parent.parent.parent.getChildByName("zhuanchang").getComponent(sp.Skeleton).setAnimation(1, "up", false);
setTimeout(() => {
console.log("11111111111111111111111", cc.fx.GameConfig.GM_INFO.randomLevel);
let rLevel = cc.fx.StorageMessage.getStorage("randomLevel");
let endLevelNum = cc.fx.StorageMessage.getStorage("endLevelNum");
if (!cc.fx.GameConfig.GM_INFO.randomLevel || cc.fx.GameConfig.GM_INFO.randomLevel === 0) {
Utils.getEndlessLevel((data) => {
if (data.code == 1) {
cc.fx.GameConfig.GM_INFO.randomLevel = Number(data.data.userLevel) || cc.fx.GameTool.getNextLevel();
cc.fx.GameConfig.GM_INFO.endLevelNum = Number(data.data.endLevelNum) || 1;
console.log("获取无尽模式等级成功", cc.fx.GameConfig.GM_INFO.randomLevel, data);
} else {
cc.fx.GameConfig.GM_INFO.randomLevel = rLevel || 0;
cc.fx.GameConfig.GM_INFO.endLevelNum = endLevelNum || 1;
}
if (!cc.fx.GameConfig.GM_INFO.randomLevel || cc.fx.GameConfig.GM_INFO.randomLevel === 0) {
cc.fx.GameConfig.GM_INFO.randomLevel = cc.fx.GameTool.getNextLevel() || 0;
}
cc.fx.GameConfig.LEVEL_INFO_init(true, 0, false, true);
});
} else {
cc.fx.GameConfig.LEVEL_INFO_init(true, 0, false, true);
}
// else {
// cc.fx.GameConfig.GM_INFO.randomLevel = cc.fx.GameTool.getNextLevel();
// cc.fx.GameConfig.GM_INFO.endLevelNum = cc.fx.GameConfig.GM_INFO.endLevelNum + 1;
// cc.fx.StorageMessage.setStorage("endLevelNum", cc.fx.GameConfig.GM_INFO.endLevelNum);
// console.log("无尽模式保存下一关等级:", cc.fx.GameConfig.GM_INFO.randomLevel, cc.fx.GameConfig.GM_INFO.endLevelNum);
// Utils.setEndlessLevel(() => { }, cc.fx.GameConfig.GM_INFO.randomLevel, cc.fx.GameConfig.GM_INFO.endLevelNum);
// }
}, 1200);
setTimeout(() => {
this.node.parent.parent.getChildByName("Win").getChildByName("tween").
getChildByName("nextBtn").getComponent("btnControl").setTouch(true);
}, 500);
// } else {
// MiniGameSdk.API.showToast("每周更新,敬请期待");
// }
}
else {
// console.log("下一关");
@ -2625,7 +2755,14 @@ export default class MapConroler extends cc.Component {
// }
// });
setTimeout(() => {
cc.fx.GameConfig.LEVEL_INFO_init(true, 0, false);
if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
cc.fx.GameConfig.LEVEL_INFO_init(true, 0, false, true);
} else {
cc.fx.GameConfig.LEVEL_INFO_init(true, 0, false);
}
}, 1200);
// this.node.parent.parent.parent.destroy();
}
@ -2794,11 +2931,17 @@ export default class MapConroler extends cc.Component {
this.node.parent.parent.getChildByName("Lose").getChildByName("lose").getChildByName("WinStreak").active = false;
let overTime = Date.now();
this.count_Time = overTime - this.count_Time;
let endLevel = false;
if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
endLevel = true;
}
let data = {
time: this.count_Time,
add_Time: this.add_Time,
is_frenzy: this.is_frenzy,
result: "fail"
result: "fail",
"infinity": endLevel,
}
cc.fx.GameTool.shushu_Track("finish_stage", data);
@ -4729,7 +4872,16 @@ export default class MapConroler extends cc.Component {
let diguan = this.gameOverNode.getChildByName("diguan");
let ruzhi = this.gameOverNode.getChildByName("Ruzhi");
diguan.scaleX = diguan.scaleY = 0.01;
diguan.active = true;
// diguan.active = true;
// 无尽关卡
let endlessNode = this.gameOverNode.getChildByName("endlessNode");
endlessNode.scaleX = diguan.scaleY = 0.01;
if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
endlessNode.active = true;
} else {
diguan.active = true;
}
// caidai 先播放骨骼动画
cc.tween(caidai)
.to(0, { scale: 2 })
@ -4787,6 +4939,14 @@ export default class MapConroler extends cc.Component {
.to(0.06, { scale: 1.05 }, { easing: 'quadOut' })
.to(0.04, { scale: 1 }, { easing: 'quadIn' })
.start();
cc.tween(endlessNode)
.delay(0.3)
.to(0.15, { scale: 1.15 }, { easing: 'backOut' })
.to(0.08, { scale: 0.9 }, { easing: 'quadIn' })
.to(0.06, { scale: 1.05 }, { easing: 'quadOut' })
.to(0.04, { scale: 1 }, { easing: 'quadIn' })
.start();
}
setOtherLevel() {
@ -5003,6 +5163,24 @@ export default class MapConroler extends cc.Component {
})
}
endlessLevelShow() {
console.log("刷新关卡等级", cc.fx.GameTool.maxLevel(), cc.fx.GameConfig.GM_INFO.endLevelNum);
let top = this.node.parent.getChildByName("Top");
top.getChildByName("shareBtn").active = true;
this.node.parent.parent.parent.getChildByName("Pause").getChildByName("share").active = true;
if (cc.fx.GameTool.maxLevel()) {
let endlessNode = top.getChildByName("endlessNode");
endlessNode.active = true;
top.getChildByName("shareBtn").active = false;
top.getChildByName("level").active = false;
top.getChildByName("difficultySpr").active = false;
this.node.parent.parent.parent.getChildByName("Pause").getChildByName("share").active = false;
let levelNum = endlessNode.getChildByName("levelNum");
NumberToImage.numberToImageNodes(cc.fx.GameConfig.GM_INFO.endLevelNum, 45, 48, "half_black_", levelNum, true);
cc.fx.GameTool.setEndLevelLabelPos(levelNum);
}
}
update(dt) {
// 检测连击超时如果超过3秒没有播放音效重置连击计数
if (this.hitSoundCount > 0 && this.hitSoundTime && Date.now() - this.hitSoundTime > 3000) {

871
assets/Script/Message.ts Normal file
View File

@ -0,0 +1,871 @@
import Utils from "./module/Pay/Utils";
import { MiniGameSdk } from "./Sdk/MiniGameSdk";
const { ccclass, property } = cc._decorator;
@ccclass
export default class Message extends cc.Component {
@property(cc.Label)
selectLabel: cc.Label = null;
@property(cc.Label)
jushiLabel: cc.Label = null;
@property(cc.Node)
node2: cc.Node = null;
@property(cc.Node)
node3: cc.Node = null;
@property(cc.Prefab)
contentNode: cc.Prefab = null;
@property(cc.Prefab)
optionNode: cc.Prefab = null;
@property(cc.Prefab)
menuLabel: cc.Prefab = null;
private comment: any[] = [];
private jushiList: any = null;
private currentJushi: any = null;
private currentOption: any = null;
// 存储所有内容节点的数组
private contentNodes: cc.Node[] = [];
private selectIndex: number = -1;
private recordMenu: any = null;
// 存储每列的值key是列索引(0,1,2...)
private columnValues: Map<number, string> = new Map();
// 保存原始模板
private originalTemplate: string = '';
// 记录占位符总数
private placeholderCount: number = 0;
private _pos: number = 1;
protected onLoad(): void {
}
start() {
}
showNode(nodeType: any, pos: number) {
this.node.getChildByName("commentNode").active = false;
this.node.getChildByName("levelWordNode").active = false;
this._pos = pos;
console.log("nodeType", nodeType);
if (nodeType === "commentNode") {
this.node.getChildByName("commentNode").active = true;
this.onShowComment();
} else {
this.node.getChildByName("levelWordNode").active = true;
this.onShowLevelWord();
}
}
onShowComment() {
// const passCheckJson = cc.fx.GameConfig.PASS_CHECK;
const message = cc.fx.GameConfig.MESSAGE_MODEL;
// 解析JSON数据并赋值给comment
// const jsonData = jsonAsset.json;
console.log("解析后的JSON数据:", message);
// 遍历jsonData的所有键
for (const key in message) {
if (Array.isArray(message[key])) {
if (key === "模板") {
// 将"模板"键的数据赋值给this.jushiList
// this.jushiList = jsonData[key];
this.jushiList = {
keyName: key, // 使用键名作为标识
data: message[key] // 保存对应的数据
};
} else {
// 将其他键的数据添加到this.comment中
this.comment.push({
keyName: key, // 使用键名作为标识
data: message[key] // 保存对应的数据
});
}
}
}
this.onCreateJushi();
console.log("this.jushiList", this.jushiList);
console.log("this.comment", this.comment);
// });
}
onCreateJushi() {
// 创建contentNode节点
this.currentJushi = cc.instantiate(this.contentNode);
this.node2.addChild(this.currentJushi);
this.currentJushi.active = false;
let contentBg = this.currentJushi.getChildByName("contentBg");
const contentHeight = this.jushiList.data.length * 60 + 20;
contentBg.setContentSize(768, contentHeight);
// 获取contentNode上的脚本组件
const contentScript = this.currentJushi.getComponent('MessageContent');
// 定义回调函数
const callback = (index: number, data: any) => {
// 处理回调逻辑
console.log("回调数据:", index, data);
// this.selectLabel.string = data.context;
// this.onJushiClick(index, data);
// this.node3.active = true;
if (data && data.context) {
// 保存原始模板
this.originalTemplate = data.context;
// 统计占位符数量
const matches = data.context.match(/\{0\}/g);
this.placeholderCount = matches ? matches.length : 0;
let updatedText = data.context;
for (let i = 0; i < this.placeholderCount; i++) {
console.log("数据显示", i);
}
this.selectLabel.string = data.context;
// 创建对应数量的creatorOptionNodes
this.createJushiOptionNodes(this.placeholderCount);
}
this.onJushiClick(index, data);
};
if (contentScript) {
// 设置数据
contentScript.setContentData(this.jushiList.data, callback);
}
// 创建optionNode节点
// this.createOptionNodes();
}
createJushiOptionNodes(placeholderCount: number) {
// 清除现有的jushi选项节点
this.node3.removeAllChildren();
this.contentNodes = []; // 同时清空内容节点数组
this.selectIndex = -1; // 重置选择索引
this.recordMenu = null; // 重置记录的菜单
this.node3.active = true;
// 重置占位符值映射
this.columnValues.clear();
// 重置原始模板和占位符数量
this.placeholderCount = placeholderCount;
// 初始化占位符值数组
for (let i = 0; i < placeholderCount; i++) {
// 创建基础的选项节点
this.createOptionNodes(i);
}
}
// 创建optionNode节点
createOptionNodes(index: number) {
// 定义节点尺寸和间距
const itemWidth = 240; // 节点宽度
const itemHeight = 98; // 节点高度
const spacingX = 20; // X轴间距
const spacingY = 22; // Y轴间距 (120 - 98)
let node = new cc.Node();
// node.name = `placeholder_${index}`;
node.groupIndex = index;
this.node3.addChild(node, this.placeholderCount - index);
// 为不同组的选项设置不同的Y位置但确保都在可见区域内
node.setPosition(0, -index * 300); // 使用固定的间距来避免位置计算错误
console.log("创建选项节点", index, -index * 260, node.position);
// 遍历this.comment数组创建相应数量的optionNode
for (let i = 0; i < this.comment.length; i++) {
const optionNode = cc.instantiate(this.optionNode);
// this.node3.addChild(optionNode, this.comment.length-i);
node.addChild(optionNode, this.comment.length - i);
console.log("设置大小", this.node3.getContentSize());
// 计算位置每排3个上下排列
const row = Math.floor(i / 3); // 行号0为上排1为下排以此类推
const col = i % 3; // 列号0, 1, 2
// 设置位置基于宽240高98的元素
// 以node3的锚点(0.5, 1)为参考点,从顶部开始向下排列
const totalColumnsInRow = Math.min(3, this.comment.length - row * 3); // 当前行的总列数
// 计算起始X位置使每行节点居中显示
const startX = (-(totalColumnsInRow - 1)) * (itemWidth + spacingX) / 2; // 计算起始X位置使整行居中
const x = startX + col * (itemWidth + spacingX); // 每个节点间隔为宽度+间距
// 从顶部开始,依次向下排列(使用负值,因为锚点在顶部)
const y = -row * (itemHeight + spacingY); // 从上到下分布,每行间距为高度+间距
optionNode.setPosition(x, y);
// 获取contentLabel并设置文本为keyName
const contentLabel = optionNode.getChildByName("contentLabel");
if (contentLabel) {
const labelComponent = contentLabel.getComponent(cc.Label);
if (labelComponent) {
labelComponent.string = this.comment[i].keyName;
}
}
const menuBtn = optionNode.getChildByName("menu");
const background_1 = menuBtn ? menuBtn.getChildByName("background_1") : null;
const background_2 = menuBtn ? menuBtn.getChildByName("background_2") : null;
if (background_2) background_2.active = false;
// 存储选项节点和其背景状态的映射关系
if (menuBtn) {
// 使用闭包保存i的值创建一个唯一的索引
const optionIndex = index * this.comment.length + i; // 计算全局索引
menuBtn.on(cc.Node.EventType.TOUCH_END, (event) => {
console.log(`this.comment[${i}] = `, this.comment[i]);
// 可以在这里添加更多处理逻辑
if (background_1) background_1.active = false;
if (background_2) background_2.active = true;
this.onCreateOption(optionIndex, this.comment[i], menuBtn, index);
}, this)
if (this.comment[i].data && Array.isArray(this.comment[i].data)) {
// 创建内容节点
const contentNode = cc.instantiate(this.contentNode);
optionNode.addChild(contentNode);
this.contentNodes.push(contentNode);
// 设置内容节点的位置(默认隐藏在选项节点下方)
contentNode.setPosition(0, -contentNode.height / 2 - 60);
contentNode.active = false;
// 获取contentBg并设置尺寸
let contentBg = contentNode.getChildByName("contentBg");
if (contentBg) {
const contentHeight = this.comment[i].data.length * 60 + 20;
contentBg.setContentSize(268, contentHeight); // 宽默认268高度根据数据长度计算
// 获取contentNode上的脚本组件
const contentScript = contentNode.getComponent('MessageContent');
// const dataContext =
// 定义回调函数
const callback = (num: number, data: any) => {
// 处理回调逻辑
console.log("内容节点回调数据:", num, data, `来自第${i}个选项`);
this.onCreateOption();
// this.selectLabel
if (this.selectLabel && data && data.context) {
// 设置指定列的值
this.columnValues.set(index, data.context);
// 更新显示
this.updateDisplay();
// 检查是否所有占位符都已替换
let allReplaced = true;
for (let j = 0; j < this.placeholderCount; j++) {
if (!this.columnValues.has(j)) {
allReplaced = false;
break;
}
}
if (allReplaced) {
this.node3.active = false;
}
// 重置所有选项的背景状态
this.resetAllOptionBackgrounds();
}
};
if (contentScript) {
// 设置数据
contentScript.setContentData(this.comment[i].data, callback);
}
}
}
}
}
// 动态调整node3的尺寸以适应所有选项节点
if (this.comment.length > 0) {
const totalRows = Math.ceil(this.comment.length / 3);
const totalColumns = Math.min(3, this.comment.length); // 第一行的列数
// 计算node3需要的宽度和高度
const requiredWidth = totalColumns > 1 ? (totalColumns - 1) * spacingX + totalColumns * itemWidth : itemWidth;
const requiredHeight = (totalRows - 1) * (itemHeight + spacingY) + itemHeight;
// 设置node3的尺寸稍微增加一些边距
this.node3.width = requiredWidth + 20; // 添加10像素边距
this.node3.height = requiredHeight + 20; // 添加10像素边距
}
}
// 重置所有选项的背景状态为白色
resetAllOptionBackgrounds() {
for (let j = 0; j < this.node3.childrenCount; j++) {
const groupNode = this.node3.children[j];
// 遍历组节点的所有子节点(即选项节点)
for (let k = 0; k < groupNode.childrenCount; k++) {
const optionNode = groupNode.children[k];
const menuBtn = optionNode.getChildByName("menu");
const background_1 = menuBtn ? menuBtn.getChildByName("background_1") : null;
const background_2 = menuBtn ? menuBtn.getChildByName("background_2") : null;
if (background_1) background_1.active = true;
if (background_2) background_2.active = false;
}
}
}
private updateChildNodeVisibility(selectedIndex: number) {
if (!this.node3) return;
console.log("updateChildNodeVisibility", selectedIndex);
// 如果当前索引小于选中的索引,则隐藏
// if (i < selectedIndex) {
// child.active = false;
// } else {
// // 否则显示
// child.active = true;
// }
if (selectedIndex === 1) {
for (let i = 0; i < this.node3.childrenCount; i++) {
const child = this.node3.children[i];
if (i === 2) {
child.active = false;
}
}
}
if (selectedIndex === 2) {
for (let i = 0; i < this.node3.childrenCount; i++) {
const child = this.node3.children[i];
if (i > 0) {
child.active = false;
}
}
}
}
onCreateOption(index?: number, data?: any, clickedMenuBtn?: cc.Node, optionIndex?: number) {
// 计算node3的位置使用固定的y值
if (optionIndex !== undefined && optionIndex >= 0) {
// 根据点击的索引设置node3的固定y位置
let targetY = 0;
switch (optionIndex) {
case 0:
targetY = 0;
break;
case 1:
targetY = 300;
break;
case 2:
targetY = 600;
break;
default:
targetY = optionIndex * 300;
break;
}
console.log("node3的y位置:", optionIndex);
if (this.node3) {
this.node3.y = 218 + targetY;
if (optionIndex !== 0) {
this.updateChildNodeVisibility(optionIndex);
}
}
} else {
// 如果没有有效索引即关闭所有子节点则设置为默认位置index为0的位置
if (this.node3) {
this.node3.y = 218; // 回到index为0的位置
for (let i = 0; i < this.node3.childrenCount; i++) {
const child = this.node3.children[i];
child.active = true;
}
}
}
if (this.selectIndex !== -1) {
this.recordMenu.getChildByName("menu");
this.recordMenu.getChildByName("background_1").active = true;
this.recordMenu.getChildByName("background_2").active = false;
}
if (index === undefined || index < 0) {
// 如果没有提供有效索引,隐藏所有内容节点
for (let i = 0; i < this.contentNodes.length; i++) {
if (this.contentNodes[i]) {
this.contentNodes[i].active = false;
}
}
// 重置选择索引
this.selectIndex = -1;
if (this.node3) {
this.node3.y = 218;
for (let i = 0; i < this.node3.childrenCount; i++) {
const child = this.node3.children[i];
child.active = true;
}
}
return;
}
// 检查索引是否在有效范围内
if (index >= this.contentNodes.length) {
console.log("无效索引");
return;
}
// 检查是否与上次点击的是同一个选项
if (this.selectIndex === index) {
// 如果是同一个选项,则隐藏对应的内容节点
if (this.contentNodes[index]) {
this.contentNodes[index].active = false;
}
this.selectIndex = -1;
if (this.node3) {
this.node3.y = 218;
}
} else {
// 隐藏所有内容节点
for (let i = 0; i < this.contentNodes.length; i++) {
if (this.contentNodes[i]) {
this.contentNodes[i].active = false;
}
}
// 显示当前点击的内容节点
if (this.contentNodes[index]) {
this.contentNodes[index].active = true;
}
// 更新选择索引为当前索引
this.selectIndex = index;
this.recordMenu = clickedMenuBtn;
}
}
onJushiClick(event, customData) {
if (this.currentJushi) {
if (this.currentJushi.active) {
this.currentJushi.active = false;
} else {
this.currentJushi.active = true;
}
}
}
onCloseClick(event, customData) {
console.log("onCloseClick", event, customData);
this.node.destroy();
}
onUpClick(event, customData) {
console.log("onUpClick", event, customData);
// 获取当前玩家的名称、头像和当前关卡等级
const playerName = cc.fx.GameConfig.GM_INFO.username;
let playerAvatar = cc.fx.GameConfig.GM_INFO.useravatar;
if (cc.fx.GameConfig.GM_INFO.useravatarIcon.length > 10) {
console.log("获取头像链接:", cc.fx.GameConfig.GM_INFO.useravatarIcon);
playerAvatar = cc.fx.GameConfig.GM_INFO.useravatarIcon;
}
const currentLevel = cc.fx.GameConfig.GM_INFO.level;
// 获取留言内容
const messageContent = this.selectLabel.string; // 使用当前显示的消息内容
let data = {
name: playerName,
head: playerAvatar,
content: messageContent,
};
// 输出信息到控制台
console.log("玩家名称:", playerName);
console.log("玩家头像:", playerAvatar);
console.log("当前关卡等级:", currentLevel);
console.log("留言内容:", messageContent);
console.log("lick 0"); // 按照要求添加
Utils.setCommentInfo((res) => {
if (res.code == 1) {
// cc.fx.GameTool.shushu_Track("comment", data);
// cc.fx.GameTool.typingAni(this.selectLabel, messageContent, () => {
// this.onCloseClick(null, null);
// }, this.node);
console.log("留言成功", res.msg);
MiniGameSdk.API.showToast(res.msg);
}
}, data, this._pos)
// 删除当前节点
// this.node.destroy();
}
updateDisplay() {
if (this.selectLabel) {
this.selectLabel.string = this.getFinalResult();
}
}
getFinalResult(): string {
if (!this.originalTemplate) {
return '';
}
let result = this.originalTemplate;
let matchIndex = 0;
result = result.replace(/\{0\}/g, () => {
// 如果该位置有设置的值,就用设置的值
if (this.columnValues.has(matchIndex)) {
matchIndex++;
return this.columnValues.get(matchIndex - 1);
}
// 否则保持占位符
matchIndex++;
return "{0}";
});
return result;
}
setColumnValue(columnIndex: number, value: string) {
if (columnIndex < 0 || columnIndex >= this.placeholderCount) {
cc.warn("列索引超出范围:", columnIndex);
return;
}
this.columnValues.set(columnIndex, value);
this.updateDisplay(); // 实时更新显示
}
// 清除指定列的值
clearColumnValue(columnIndex: number) {
this.columnValues.delete(columnIndex);
this.updateDisplay();
}
onShowLevelWord() {
let levelWordNode = this.node.getChildByName("levelWordNode");
let showNum = 3;
// 检查是否存在labelContainer节点如果没有则创建
let labelContainer = levelWordNode.getChildByName("labelContainer");
if (!labelContainer) {
// 如果场景中没有预设的labelContainer节点则创建一个新的
labelContainer = new cc.Node("labelContainer");
labelContainer.parent = levelWordNode;
labelContainer.zIndex = 100; // 确保label在正确层级
}
let comment = null;
// let commentData = [{
// content: "首先,方块吧",
// head: "https://thirdwx.qlogo.cn/mmopen/vi_32/oCAezhMhThqmsb7ovGhC4ZDU7QoBCYqbLlAJqOofpzkCSOzqmzlXVqVc87ib1Oo9f6HOgbFLSJq83AIefT0M7xTkaE3Jb0kaFKRlYkhJol6M/132",
// index: 0,
// like: 2310,
// name: "卡越来越",
// uid: "68d0edf0cc79706182bda53f"
// }, {
// content: "首先2*2方块吧",
// head: "https://thirdwx.qlogo.cn/mmopen/vi_32/oCAezhMhThqmsb7ovGhC4ZDU7QoBCYqbLlAJqOofpzkCSOzqmzlXVqVc87ib1Oo9f6HOgbFLSJq83AIefT0M7xTkaE3Jb0kaFKRlYkhJol6M/132",
// index: 0,
// like: 110,
// name: "卡越来越",
// uid: "68d0edf0cc79706182bda53f"
// }, {
// content: "首先1x3方块吧",
// head: "https://thirdwx.qlogo.cn/mmopen/vi_32/oCAezhMhThqmsb7ovGhC4ZDU7QoBCYqbLlAJqOofpzkCSOzqmzlXVqVc87ib1Oo9f6HOgbFLSJq83AIefT0M7xTkaE3Jb0kaFKRlYkhJol6M/132",
// index: 0,
// like: 120,
// name: "卡越来越",
// uid: "68d0edf0cc79706182bda53f"
// }, {
// content: "首先,方块吧",
// head: "https://thirdwx.qlogo.cn/mmopen/vi_32/oCAezhMhThqmsb7ovGhC4ZDU7QoBCYqbLlAJqOofpzkCSOzqmzlXVqVc87ib1Oo9f6HOgbFLSJq83AIefT0M7xTkaE3Jb0kaFKRlYkhJol6M/132",
// index: 0,
// like: 0,
// name: "卡越来越",
// uid: "68d0edf0cc79706182bda53f"
// }, {
// content: "首先,方块吧",
// head: "https://thirdwx.qlogo.cn/mmopen/vi_32/oCAezhMhThqmsb7ovGhC4ZDU7QoBCYqbLlAJqOofpzkCSOzqmzlXVqVc87ib1Oo9f6HOgbFLSJq83AIefT0M7xTkaE3Jb0kaFKRlYkhJol6M/132",
// index: 0,
// like: 0,
// name: "卡越来越",
// uid: "68d0edf0cc79706182bda53f"
// }];
// let res = { code: 1, data: commentData, msg: "成功" }
Utils.getLikeInfo((res) => {
console.log("获取点赞信息", res);
comment = res.data.comment;
const likedDataKey = 'liked_data';
let likedData = cc.sys.localStorage.getItem(likedDataKey);
likedData = likedData ? JSON.parse(likedData) : { level: null, pos: null, likedIds: [] };
console.log("从本地获取点赞信息", likedData);
// 检查当前关卡等级和pos是否与缓存中的匹配
const currentLevel = cc.fx.GameConfig.GM_INFO.level;
const currentPos = this._pos;
const shouldUseCachedIds = likedData.level === currentLevel && likedData.pos === currentPos;
// comment = res.data;
// if (comment.length <= showNum) {
for (let i = 0; i < comment.length; i++) {
let node = levelWordNode.getChildByName("node" + (i + 1));
console.log("node", node)
// 检查节点是否存在
if (node) {
node.active = false;
if (i < showNum) {
node.active = true;
// 为每个node添加文本显示但将Label放在单独的容器中以优化合批
let labelNode = labelContainer.getChildByName("labelNode" + i);
// 检查menuLabel是否存在再实例化
if (!labelNode && this.menuLabel) {
labelNode = cc.instantiate(this.menuLabel);
if (labelNode) {
labelNode.name = "labelNode" + i;
labelContainer.addChild(labelNode);
}
} else if (!labelNode && !this.menuLabel) {
console.warn(`menuLabel prefab is not assigned, creating label node directly`);
// 如果没有预制体直接创建一个带Label组件的节点
labelNode = new cc.Node();
let labelComponent = labelNode.addComponent(cc.Label);
// 设置统一的字体和样式以优化合批
// labelComponent.fontSize = 40;
// labelComponent.lineHeight = 45;
// labelComponent.enableBold = true;
labelComponent.horizontalAlign = cc.Label.HorizontalAlign.CENTER;
labelComponent.verticalAlign = cc.Label.VerticalAlign.CENTER;
labelComponent.overflow = cc.Label.Overflow.NONE;
// 重要设置CHAR模式以优化合批
labelComponent.cacheMode = cc.Label.CacheMode.CHAR;
labelNode.name = "labelNode" + i;
labelContainer.addChild(labelNode);
}
// 检查labelNode是否存在再设置属性
if (labelNode) {
// 设置label位置与对应的node对齐
labelNode.active = true;
// 使用node的世界坐标转换为labelContainer的局部坐标
labelNode.position = labelContainer.convertToNodeSpaceAR(node.parent.convertToWorldSpaceAR(node.position));
// 如果需要显示特定文本,可以在这里设置
let labelComponent = labelNode.getComponent(cc.Label);
if (labelComponent) {
// 重要设置CHAR模式以优化合批
labelComponent.cacheMode = cc.Label.CacheMode.CHAR;
// 设置统一的文本内容,如果需要不同内容,请确保使用相同的字体资源
// labelComponent.string = "文本内容";
console.log("comment[i].content", comment[i].content);
labelComponent.string = comment[i].content;
// 确保所有Label使用相同的字体和样式设置
// labelComponent.font = null; // 清除可能存在的字体资源引用
// labelComponent.useSystemFont = true;
// labelComponent.fontSize = 60;
// labelComponent.lineHeight = 60;
// labelComponent.enableBold = true;
labelComponent.horizontalAlign = cc.Label.HorizontalAlign.CENTER;
labelComponent.verticalAlign = cc.Label.VerticalAlign.CENTER;
labelComponent.overflow = cc.Label.Overflow.NONE;
}
}
// 获取当前节点下的likeBtn
let likeBtn = node.getChildByName("likeBtn");
if (likeBtn) {
// 移除之前的点击事件监听器,避免重复添加
likeBtn.off(cc.Node.EventType.TOUCH_END);
// 查找或创建点赞数显示标签
let likeLabel = node.getChildByName("likeLabel");
if (!likeLabel) {
// 创建点赞数显示标签
likeLabel = new cc.Node("likeLabel");
let labelComponent = likeLabel.addComponent(cc.Label);
// 设置标签样式
labelComponent.string = comment[i].like.toString();
labelComponent.fontSize = 30;
labelComponent.lineHeight = 32;
labelComponent.horizontalAlign = cc.Label.HorizontalAlign.LEFT;
labelComponent.verticalAlign = cc.Label.VerticalAlign.CENTER;
// 设置颜色
likeLabel.color = cc.Color.BLACK;
likeLabel.anchorX = 0;
likeLabel.anchorY = 0.5;
// 添加到节点
node.addChild(likeLabel);
// 设置位置通常在likeBtn旁边
likeLabel.setPosition(likeBtn.x + likeBtn.width / 2 + 20, likeBtn.y); // 根据实际需求调整位置
} else {
// 如果标签已存在,更新显示的点赞数
let labelComponent = likeLabel.getComponent(cc.Label);
if (labelComponent) {
labelComponent.string = comment[i].like.toString();
}
}
// 检查当前评论ID是否已经在本地缓存的已点赞列表中
const currentCommentId = comment[i].index; // 使用index作为唯一标识
const isAlreadyLiked = shouldUseCachedIds && likedData.likedIds.includes(currentCommentId);
if (isAlreadyLiked) {
// 如果已经点赞过,设置按钮为不可点击状态
likeBtn['_hasLiked'] = true;
console.log(`节点 ${i + 1} 的likeBtn已点赞过设置为不可点击状态`);
} else {
// 如果没有点赞过,添加点击事件
likeBtn['_hasLiked'] = false;
likeBtn.on(cc.Node.EventType.TOUCH_END, (event) => {
if (likeBtn['_hasLiked']) {
console.log(`节点 ${i + 1} 的likeBtn已经点赞不可再次点击`);
return; // 如果已经点赞,则不执行后续操作
}
console.log(`调用事件信息: 节点 ${i + 1} 的likeBtn被点击评论内容: ${comment[i].content}, 用户: ${comment[i].name}`);
// 这里可以添加点赞逻辑
this.handleLikeClick(i, comment[i], likeLabel, likeBtn, currentCommentId, currentLevel, currentPos);
}, this);
}
// 设置按钮的ID以便在后续处理中识别
likeBtn['_commentId'] = currentCommentId;
} else {
console.warn(`节点 ${i + 1} 下未找到名为 likeBtn 的子节点`);
}
} else {
// 如果节点超出显示范围隐藏其对应的label
let labelNode = labelContainer.getChildByName("labelNode" + i);
if (labelNode) {
labelNode.active = false;
}
// 检查超出范围的节点是否也有likeBtn也需要处理
let likeBtn = node.getChildByName("likeBtn");
if (likeBtn) {
likeBtn.off(cc.Node.EventType.TOUCH_END); // 移除可能存在的事件监听器
likeBtn.active = false; // 隐藏超出范围的点赞按钮
}
}
} else {
console.warn(`Node with name "node${i}" not found in levelWordNode`);
}
}
// }
}, this._pos)
}
// 添加点赞点击处理函数
private handleLikeClick(index: number, commentData: any, likeLabel: cc.Node, likeBtn: cc.Node, commentId: number, level: number, pos: number) {
console.log(`点赞按钮被点击,索引: ${index}, 评论数据:`, commentData);
Utils.setLikeInfo((res) => {
if (res.code === 1) {
commentData.like += 1;
let labelComponent = likeLabel.getComponent(cc.Label);
if (labelComponent) {
labelComponent.string = commentData.like.toString();
}
// 设置按钮为已点赞状态,不可再次点击
likeBtn['_hasLiked'] = true;
likeBtn.off(cc.Node.EventType.TOUCH_END); // 移除点击事件
// 更新本地缓存中的已点赞数据
const likedDataKey = 'liked_data';
let likedData = cc.sys.localStorage.getItem(likedDataKey);
likedData = likedData ? JSON.parse(likedData) : { level: null, pos: null, likedIds: [] };
// 更新关卡等级和pos
likedData.level = level;
likedData.pos = pos;
// 添加当前ID到已点赞列表如果不存在
if (!likedData.likedIds.includes(commentId)) {
likedData.likedIds.push(commentId);
}
// 保存到本地缓存
cc.sys.localStorage.setItem(likedDataKey, JSON.stringify(likedData));
console.log("点赞成功!");
} else {
console.log("点赞失败!");
}
}, this._pos, index);
}
onUpLikeClick(event, customData) {
console.log("onUpClick", event, customData);
// 获取当前玩家的名称、头像和当前关卡等级
const playerName = cc.fx.GameConfig.GM_INFO.username;
const playerAvatar = cc.fx.GameConfig.GM_INFO.useravatar;
const currentLevel = cc.fx.GameConfig.GM_INFO.level;
// 获取留言内容
const messageContent = this.selectLabel.string; // 使用当前显示的消息内容
let likeNum = 0;
let data = {
name: playerName,
head: playerAvatar,
content: messageContent,
like: likeNum,
};
let pos = 1;
let index = 1;
// 输出信息到控制台
// console.log("玩家名称:", playerName);
// console.log("玩家头像:", playerAvatar);
// console.log("当前关卡等级:", currentLevel);
// console.log("留言内容:", messageContent);
// console.log("lick 0"); // 按照要求添加
Utils.setLikeInfo((res) => {
if (res.code == 1) {
// cc.fx.GameTool.shushu_Track("comment", data);
// cc.fx.GameTool.typingAni(this.selectLabel, messageContent, () => {
// this.onCloseClick(null, null);
// }, this.node);
}
}, pos, index)
// 删除当前节点
// this.node.destroy();
}
// 清除所有
clearAll() {
this.columnValues.clear();
this.updateDisplay();
}
}

View File

@ -0,0 +1,10 @@
{
"ver": "1.1.0",
"uuid": "d5f79f9c-09d1-4f1e-bef3-e80e6bcf1bd6",
"importer": "typescript",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -0,0 +1,67 @@
const { ccclass, property } = cc._decorator;
@ccclass
export default class MessageContent extends cc.Component {
@property(cc.Prefab)
itemPrefab: cc.Prefab = null;
private contentData: any[] = [];
private itemNodes: cc.Node[] = [];
private callback: any = null;
start() {
}
setContentData(data: any[], callback) {
this.contentData = data;
this.updateContent();
this.callback = callback;
}
updateContent() {
// 清除现有的项目
this.clearItems();
// 为每个数据项创建一个节点
for (let i = 0; i < this.contentData.length; i++) {
const itemNode = cc.instantiate(this.itemPrefab);
this.node.addChild(itemNode);
// 设置位置
const yPos = -30 - i * 60; // 每个项目的高度为60
itemNode.setPosition(0, yPos);
// 获取并设置标签内容
const label = itemNode.getComponent(cc.Label);
if (label) {
label.string = this.contentData[i].context.toString(); // 根据实际数据结构调整
}
// 添加点击事件
itemNode.on(cc.Node.EventType.TOUCH_END, () => {
this.onItemClick(i, this.contentData[i]);
});
this.itemNodes.push(itemNode);
}
}
onItemClick(index: number, data: any) {
console.log(`点击了第 ${index} 个项目,数据为:`, data);
if (this.callback) {
this.callback(index, data);
}
// 发送自定义事件到父节点Message组件
// this.node.emit('item-clicked', index, data);
}
clearItems() {
for (let i = 0; i < this.itemNodes.length; i++) {
this.itemNodes[i].off(cc.Node.EventType.TOUCH_END);
this.itemNodes[i].destroy();
}
this.itemNodes = [];
}
}

View File

@ -0,0 +1,10 @@
{
"ver": "1.1.0",
"uuid": "cb2e560f-ac0e-4e58-8196-1eb0a8db8c57",
"importer": "typescript",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}

View File

@ -74,6 +74,10 @@ export default class SceneManager extends cc.Component {
@property(cc.SpriteAtlas)
avatar: cc.SpriteAtlas = null;
@property(cc.Prefab)
messageNode: cc.Node = null;
particleEffects: cc.ParticleAsset[];
// @property({type: [cc.ParticleSystem], tooltip:"粒子数组"})
// particleEffects : Array<cc.ParticleSystem> = [];
@ -157,6 +161,9 @@ export default class SceneManager extends cc.Component {
let levelName = (cc.fx.GameConfig.GM_INFO.level + 1);
if (cc.fx.GameConfig.GM_INFO.otherLevel > 0) {
levelName = cc.fx.GameConfig.GM_INFO.otherLevel;
} else if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
// levelName = cc.fx.GameConfig.GM_INFO.randomLevel.newLevel;
levelName = cc.fx.GameConfig.GM_INFO.randomLevel;
}
NumberToImage.numberToImageNodes3(levelName, 43, 15, "rank_", this.level, true);
//time金币数量
@ -257,11 +264,17 @@ export default class SceneManager extends cc.Component {
let overTime = Date.now();
let count_Time = overTime - MapConroler._instance.count_Time;
let add_Time = MapConroler._instance.add_Time;
let endLevel = false;
if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
endLevel = true;
}
let data = {
time: count_Time,
add_Time: add_Time,
is_frenzy: MapConroler._instance.is_frenzy,
result: "give_up"
result: "give_up",
"infinity": endLevel,
}
cc.fx.GameTool.shushu_Track("finish_stage", data);
let data2 = {
@ -655,7 +668,24 @@ export default class SceneManager extends cc.Component {
closeLoad() {
this.node.getChildByName("Loading").active = false;
}
openMessage() {
let reddemCodeNode = cc.instantiate(this.messageNode);
let messageScrpit = reddemCodeNode.getComponent("Message");
let nodeType = "commentNode";
console.log("打开界面", nodeType);
let pos = 1;
messageScrpit.showNode(nodeType, pos);
this.node.addChild(reddemCodeNode);
}
openMessage2() {
let reddemCodeNode = cc.instantiate(this.messageNode);
let messageScrpit = reddemCodeNode.getComponent("Message");
let nodeType = "levelWordNode";
console.log("打开界面", nodeType);
let pos = 1;
messageScrpit.showNode(nodeType, pos);
this.node.addChild(reddemCodeNode);
}
update(dt) {
}

View File

@ -58,6 +58,7 @@ export class GameConfig {
static NEW_GUIDE: any;
static PASS_CHECK: any;
static PASS_RATE: any;
static MESSAGE_MODEL: any;
static TA: any;
static GE: any;
@ -143,6 +144,9 @@ export class GameConfig {
cityRank: number; //城市排名
sceneValue: string; //当前场景值
shopDouble: { gold_1: boolean; gold_2: boolean; gold_3: boolean; gold_4: boolean; gold_5: boolean; gold_6: boolean; };
randomLevel: number;
endLevelNum: number; // 通关后 记录玩家随机游戏关卡数量
GameplayType: number; //游戏类型
};
@ -336,7 +340,10 @@ export class GameConfig {
"gold_4": false,
"gold_5": false,
"gold_6": false
}
},
randomLevel: 0,
endLevelNum: 1,
GameplayType: 0, // 0 正常模式, 1无尽模式
};
// this.setCode(this.getKey("scode"));
// this.GM_INFO.level = 0;
@ -381,26 +388,50 @@ export class GameConfig {
const newLevelData = res.json;
this.PASS_RATE = newLevelData;
})
cc.resources.load("Json/MESSAGE_MODEL", (err: any, res: cc.JsonAsset) => {
if (err) {
console.error("加载 MESSAGE_MODEL.JSON 失败:", err);
return;
}
const newLevelData = res.json;
this.MESSAGE_MODEL = newLevelData;
})
}
static LEVEL_INFO_init(type, time, otherLevel) {
static LEVEL_INFO_init(type, time, otherLevel, endless = false) {
// 示例 围墙会根据缺的地块自动生成
// 带缺口 {"id":"1006","map":[10,11],"gap":[cc.v2(4,9),cc.v2(5,9)]},
// 带升降地块 {"id":"1004","map":[7,8],"risefall":[{pos:cc.v2(5,4),color:2},{pos:cc.v2(5,5),color:5}]},
// 如果普通的就 {"id":"1001","map":[6,7]}, 这个样子就可以了
var self = this;
let name = null;
if (endless) {
let level = 0;
if (!cc.fx.GameConfig.GM_INFO.randomLevel || cc.fx.GameConfig.GM_INFO.randomLevel <= 0) {
cc.fx.GameConfig.GM_INFO.randomLevel = cc.fx.GameTool.getNextLevel();
}
level = cc.fx.GameConfig.GM_INFO.randomLevel;
if (cc.fx.GameTool.maxLevel() && otherLevel == false) {
MiniGameSdk.API.showToast("关卡每周更新,敬请期待");
cc.fx.GameTool.requestSubscribe();
return;
}
let name = "Json/level" + (cc.fx.GameConfig.GM_INFO.level + 1);
if (cc.fx.GameConfig.GM_INFO.otherLevel > 0) {
console.log("进入特殊帮助关卡,可越过自己关卡等级");
name = "Json/level" + cc.fx.GameConfig.GM_INFO.otherLevel;
name = "Json/level" + (level);
console.log("无尽模式关卡", level);
cc.fx.GameConfig.GM_INFO.GameplayType = 1;
} else {
if (cc.fx.GameTool.maxLevel() && otherLevel == false) {
// MiniGameSdk.API.showToast("关卡每周更新,敬请期待");
// cc.fx.GameTool.requestSubscribe();
console.log("关卡更新提示")
return;
}
name = "Json/level" + (cc.fx.GameConfig.GM_INFO.level + 1);
if (cc.fx.GameConfig.GM_INFO.otherLevel > 0) {
console.log("进入特殊帮助关卡,可越过自己关卡等级");
name = "Json/level" + cc.fx.GameConfig.GM_INFO.otherLevel;
}
}
let bundleName = "custom"; // 替换为实际的分包名称

View File

@ -1401,6 +1401,54 @@ export default class Utils {
})
}
}
static setEndlessLevel(callBack, data1, data2) {
if (typeof wx !== 'undefined' && wx !== null) {
let uid = cc.fx.StorageMessage.getStorage("uid");
//旧的读取数据设置数据方法,以强联网为主
if (uid != undefined && uid != "" && uid != null) {
cc.fx.GameConfig.GM_INFO.uid = uid;
}
let setData = {
uid: cc.fx.GameConfig.GM_INFO.uid,
action: 'save',
userLevel: parseInt(data1), // JSON.stringify(data1), //
endLevelNum: parseInt(data2),
}
console.log("设置无尽关卡等级:", setData);
Utils.POST("setUserLevel", setData, res => {
if (res.code === 1) {
console.log("设置无尽关卡", res);
if (callBack) callBack(res);
} else {
console.log("设置无尽关卡", res);
}
})
}
}
static getEndlessLevel(callBack) {
if (typeof wx !== 'undefined' && wx !== null) {
let uid = cc.fx.StorageMessage.getStorage("uid");
//旧的读取数据设置数据方法,以强联网为主
if (uid != undefined && uid != "" && uid != null) {
cc.fx.GameConfig.GM_INFO.uid = uid;
}
let setData = {
uid: cc.fx.GameConfig.GM_INFO.uid,
action: 'read',
}
Utils.POST("setUserLevel", setData, res => {
console.log("获得无尽关卡等级:", res);
if (res.code === 1) {
if (callBack) callBack(res);
} else {
if (callBack) callBack(res);
}
});
}
}
static getRedeemInfo(callBack, cdk) {
//@ts-ignore
if (typeof wx !== 'undefined' && wx !== null) {
@ -1443,4 +1491,119 @@ export default class Utils {
});
}
}
//获取
static getCommentInfo(callBack) {
//@ts-ignore
if (typeof wx !== 'undefined' && wx !== null) {
let uid = cc.fx.StorageMessage.getStorage("uid");
//旧的读取数据设置数据方法,以强联网为主
if (uid != undefined && uid != "" && uid != null) {
cc.fx.GameConfig.GM_INFO.uid = uid;
}
let setData = {
uid: cc.fx.GameConfig.GM_INFO.uid,
action: 'read',
}
Utils.POST("comment", setData, res => {
if (res.code === 1) {
console.log("请求评论成功:", res);
if (callBack) callBack(res);
} else {
console.log("请求评论失败:", res);
if (callBack) callBack(res);
}
});
}
}
//设置评论
static setCommentInfo(callBack, data, _pos) {
//@ts-ignore
if (typeof wx !== 'undefined' && wx !== null) {
let uid = cc.fx.StorageMessage.getStorage("uid");
//旧的读取数据设置数据方法,以强联网为主
if (uid != undefined && uid != "" && uid != null) {
cc.fx.GameConfig.GM_INFO.uid = uid;
}
let setData = {
uid: cc.fx.GameConfig.GM_INFO.uid,
action: 'save',
pos: _pos,
level: cc.fx.GameConfig.GM_INFO.level,
comment: JSON.stringify(data),
}
console.log("设置评论数据:", setData);
Utils.POST("comment", setData, res => {
if (res.code === 1) {
console.log("设置评论成功", res);
if (callBack) callBack(res);
} else {
console.log("设置评论失败", res);
}
})
}
}
//获取点赞
static getLikeInfo(callBack, _pos) {
//@ts-ignore
if (typeof wx !== 'undefined' && wx !== null) {
let uid = cc.fx.StorageMessage.getStorage("uid");
//旧的读取数据设置数据方法,以强联网为主
if (uid != undefined && uid != "" && uid != null) {
cc.fx.GameConfig.GM_INFO.uid = uid;
}
let setData = {
uid: cc.fx.GameConfig.GM_INFO.uid,
action: 'read',
level: cc.fx.GameConfig.GM_INFO.level,
pos: _pos,
}
Utils.POST("comment", setData, res => {
if (res.code === 1) {
console.log("请求点赞成功:", res);
if (callBack) callBack(res);
} else {
console.log("请求点赞失败:", res);
if (callBack) callBack(res);
}
});
}
}
//设置点赞
static setLikeInfo(callBack, _pos, _index) {
//@ts-ignore
if (typeof wx !== 'undefined' && wx !== null) {
let uid = cc.fx.StorageMessage.getStorage("uid");
//旧的读取数据设置数据方法,以强联网为主
if (uid != undefined && uid != "" && uid != null) {
cc.fx.GameConfig.GM_INFO.uid = uid;
}
let setData = {
uid: cc.fx.GameConfig.GM_INFO.uid,
action: 'like',
level: cc.fx.GameConfig.GM_INFO.level,
pos: _pos,
index: _index,
// comment: JSON.stringify(data),
}
console.log("设置点赞数据:", setData);
Utils.POST("comment", setData, res => {
if (res.code === 1) {
console.log("设置点赞成功", res);
if (callBack) callBack(res);
} else {
console.log("设置点赞失败", res);
}
})
}
}
}

View File

@ -32,6 +32,16 @@ export default class ItemRender extends cc.Component {
NumberToImage.numberToImageNodes3((this.data.rank), 43, 15, "rank_", this.node.getChildByName("rankLab"), true);
NumberToImage.numberToImageNodes3(this.data.levelAmount, 43, 15, "level_", this.node.getChildByName("totalLab"), true);
console.log("查看排行", this.data.endLebelNum);
if (this.data.endLebelNum && Number(this.data.endLebelNum) > 1) {
let endlessNode = this.node.getChildByName("endlessNode");
endlessNode.active = true;
NumberToImage.numberToImageNodes5(this.data.endLebelNum - 1, 30, 15, "Black", endlessNode.getChildByName("levelNum"), true);
// NumberToImage.numberToImageNodes5(this.data.rank, 30, 15, "Black", endlessNode.getChildByName("levelNum"), true);
} else {
this.node.getChildByName("endlessNode").active = false;
}
// this.node.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + "";
this.node.getChildByName("rank").getChildByName("one").active = false;
this.node.getChildByName("rank").getChildByName("two").active = false;

View File

@ -375,11 +375,16 @@ var GameTool = {
is_frenzy = MapConroler._instance.is_frenzy;
}
if (time1 != null && time2 != null) {
let endLevel = false;
if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
endLevel = true;
}
let data = {
time: time1,
add_Time: time2,
is_frenzy: is_frenzy,
result: "success"
result: "success",
"infinity": endLevel,
}
cc.fx.GameTool.shushu_Track("finish_stage", data);
let data2 = {
@ -1249,9 +1254,14 @@ var GameTool = {
}
break;
case "enter_stage":
let userLevel = (cc.fx.GameConfig.GM_INFO.level + 1);
if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
userLevel = cc.fx.GameConfig.GM_INFO.randomLevel;
}
eventData = {
stage_id: (cc.fx.GameConfig.GM_INFO.level + 1),
stage_id: userLevel,
is_frenzy: data.is_frenzy,
infinity: data.infinity,
}
if (cc.fx.GameConfig.GM_INFO.otherLevel > 0) {
eventData = {
@ -1260,12 +1270,17 @@ var GameTool = {
}
break;
case "finish_stage":
let userLevel2 = (cc.fx.GameConfig.GM_INFO.level + 1);
if (cc.fx.GameTool.maxLevel() && cc.fx.GameConfig.GM_INFO.GameplayType == 1) {
userLevel2 = cc.fx.GameConfig.GM_INFO.randomLevel;
}
eventData = {
stage_id: (cc.fx.GameConfig.GM_INFO.level + 1),
stage_id: userLevel2,
stage_duration: data.time,
added_time: data.add_Time,
is_frenzy: data.is_frenzy,
result: data.result
result: data.result,
infinity: data.infinity,
}
if (cc.fx.GameConfig.GM_INFO.otherLevel > 0) {
eventData = {
@ -2088,7 +2103,67 @@ var GameTool = {
return;
}
MiniGameSdk.API.shushu_Track('error', errorData);
}
},
getNextLevel() {
const MAX_LEVEL = cc.fx.GameConfig.GM_INFO.level - 30;
const MIN_LEVEL = 30; // 从30开始
if (cc.fx.GameTool.maxLevel()) {
if (cc.fx.GameConfig.GM_INFO.randomLevel >= MAX_LEVEL) {
cc.fx.GameConfig.GM_INFO.randomLevel = MIN_LEVEL;
} else if (cc.fx.GameConfig.GM_INFO.randomLevel == 0) {
cc.fx.GameConfig.GM_INFO.randomLevel = MIN_LEVEL;
}
let nextLevel = 0;
if (cc.fx.GameConfig.GM_INFO.randomLevel == MAX_LEVEL - 1) {
nextLevel = MAX_LEVEL;
} else {
nextLevel = Math.round(Math.random() * (MAX_LEVEL - cc.fx.GameConfig.GM_INFO.randomLevel)) + cc.fx.GameConfig.GM_INFO.randomLevel + 1;
nextLevel = Math.min(nextLevel, MAX_LEVEL);
}
// Math.floor(Math.random() * 100) + 1;
cc.fx.GameConfig.GM_INFO.randomLevel = nextLevel;
return nextLevel;
}
return 0;
},
getPurelyRandom() {
const MAX_LEVEL = cc.fx.GameConfig.GM_INFO.level;
const MIN_LEVEL = 30;
if (cc.fx.GameTool.maxLevel()) {
let randomNum = MAX_LEVEL - MIN_LEVEL;
// 修改为包含两端的随机数生成方式
let nextLevel = Math.floor(Math.random() * (randomNum + 1)) + MIN_LEVEL;
return nextLevel;
}
},
// 抖动效果
onBtnJitter(node) {
let originalPosition = node.position.clone();
// 定义抖动幅度
let strength = 5;
// 创建抖动动画
cc.tween(node)
.by(0.05, { position: cc.v3(strength, strength, 0) }) // 向右上角偏移
.by(0.1, { position: cc.v3(-strength * 2, -strength * 2, 0) }) // 向左下角偏移
.by(0.1, { position: cc.v3(strength * 2, 0, 0) }) // 向右下角偏移
.by(0.1, { position: cc.v3(-strength * 2, strength * 2, 0) }) // 向左上角偏移
.to(0.05, { position: originalPosition }) // 回到原始位置
.start();
},
setEndLevelLabelPos(levelNum) {
let numDigits = 1;
if (cc.fx.GameConfig.GM_INFO.endLevelNum > 0) {
numDigits = Math.floor(Math.log10(cc.fx.GameConfig.GM_INFO.endLevelNum)) + 1;
} else if (cc.fx.GameConfig.GM_INFO.endLevelNum === 0) {
numDigits = 1;
} else {
numDigits = Math.floor(Math.log10(-cc.fx.GameConfig.GM_INFO.endLevelNum)) + 1;
}
levelNum.x = 50 + numDigits * 15;
},
};
export { GameTool };

View File

@ -291,6 +291,15 @@ export default class ranking extends cc.Component {
this.selfNode.getChildByName("add").active = true;
}
else this.selfNode.getChildByName("add").active = false;
// if (this.selfInfo.endLebelNum && Number(this.selfInfo.endLebelNum) > 1) {
// let endlessNode = this.selfNode.getChildByName("endlessNode");
// endlessNode.active = true;
// NumberToImage.numberToImageNodes5(this.selfInfo.endLebelNum - 1, 30, 15, "Black", endlessNode.getChildByName("levelNum"), true);
// } else {
// this.node.getChildByName("endlessNode").active = false;
// }
// this.node.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + "";
this.selfNode.getChildByName("rank").getChildByName("one").active = false;
this.selfNode.getChildByName("rank").getChildByName("two").active = false;

View File

@ -9,7 +9,7 @@
"genMipmaps": false,
"packable": true,
"width": 120,
"height": 120,
"height": 132,
"platformSettings": {},
"subMetas": {
"floor": {

13
assets/UI/UI/message.meta Normal file
View File

@ -0,0 +1,13 @@
{
"ver": "1.1.3",
"uuid": "8b64088f-17a4-4e06-b4bd-22c60adbe367",
"importer": "folder",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}

View File

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>bg_1.png</key>
<dict>
<key>frame</key>
<string>{{2,2},{950,1801}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{950,1801}}</string>
<key>sourceSize</key>
<string>{950,1801}</string>
</dict>
<key>dialog_box.png</key>
<dict>
<key>frame</key>
<string>{{1805,2},{768,113}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{768,113}}</string>
<key>sourceSize</key>
<string>{768,113}</string>
</dict>
<key>display_area.png</key>
<dict>
<key>frame</key>
<string>{{570,954},{788,266}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{788,266}}</string>
<key>sourceSize</key>
<string>{788,266}</string>
</dict>
<key>menu_bg.png</key>
<dict>
<key>frame</key>
<string>{{2,954},{268,566}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{268,566}}</string>
<key>sourceSize</key>
<string>{268,566}</string>
</dict>
<key>option_1.png</key>
<dict>
<key>frame</key>
<string>{{1600,1119},{238,96}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{238,96}}</string>
<key>sourceSize</key>
<string>{238,96}</string>
</dict>
<key>option_2.png</key>
<dict>
<key>frame</key>
<string>{{1360,1119},{238,96}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{238,96}}</string>
<key>sourceSize</key>
<string>{238,96}</string>
</dict>
<key>tijiao_btn.png</key>
<dict>
<key>frame</key>
<string>{{1360,954},{476,163}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{476,163}}</string>
<key>sourceSize</key>
<string>{476,163}</string>
</dict>
<key>title.png</key>
<dict>
<key>frame</key>
<string>{{1805,772},{131,64}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{131,64}}</string>
<key>sourceSize</key>
<string>{131,64}</string>
</dict>
</dict>
<key>metadata</key>
<dict>
<key>format</key>
<integer>2</integer>
<key>realTextureFileName</key>
<string>message.png</string>
<key>size</key>
<string>{1920,1224}</string>
<key>smartupdate</key>
<string>$TexturePacker:SmartUpdate:5687cfd6b7cc4c3586f5d634dc55d038$</string>
<key>textureFileName</key>
<string>message.png</string>
</dict>
</dict>
</plist>

View File

@ -0,0 +1,197 @@
{
"ver": "1.2.6",
"uuid": "67562408-3b02-4c6d-804e-5b957afe77aa",
"importer": "asset",
"rawTextureUuid": "78517160-7689-4bc5-b0bf-6762cf030bb2",
"size": {
"width": 1920,
"height": 1224
},
"type": "Texture Packer",
"subMetas": {
"bg_1.png": {
"ver": "1.0.6",
"uuid": "e77e9f91-1901-422c-88bd-8d24b238190e",
"importer": "sprite-frame",
"rawTextureUuid": "78517160-7689-4bc5-b0bf-6762cf030bb2",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 2,
"trimY": 2,
"width": 950,
"height": 1801,
"rawWidth": 950,
"rawHeight": 1801,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"spriteType": "normal",
"subMetas": {}
},
"dialog_box.png": {
"ver": "1.0.6",
"uuid": "53ae246b-de03-4db0-b2bc-674409def194",
"importer": "sprite-frame",
"rawTextureUuid": "78517160-7689-4bc5-b0bf-6762cf030bb2",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 1805,
"trimY": 2,
"width": 768,
"height": 113,
"rawWidth": 768,
"rawHeight": 113,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"spriteType": "normal",
"subMetas": {}
},
"display_area.png": {
"ver": "1.0.6",
"uuid": "5fc66fd5-0b21-4877-b908-cdc815cf86a2",
"importer": "sprite-frame",
"rawTextureUuid": "78517160-7689-4bc5-b0bf-6762cf030bb2",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 570,
"trimY": 954,
"width": 788,
"height": 266,
"rawWidth": 788,
"rawHeight": 266,
"borderTop": 80,
"borderBottom": 80,
"borderLeft": 80,
"borderRight": 80,
"spriteType": "normal",
"subMetas": {}
},
"menu_bg.png": {
"ver": "1.0.6",
"uuid": "c9e00cfc-2ebf-4c1c-9db6-dcfd0d06dae2",
"importer": "sprite-frame",
"rawTextureUuid": "78517160-7689-4bc5-b0bf-6762cf030bb2",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 2,
"trimY": 954,
"width": 268,
"height": 566,
"rawWidth": 268,
"rawHeight": 566,
"borderTop": 80,
"borderBottom": 80,
"borderLeft": 80,
"borderRight": 80,
"spriteType": "normal",
"subMetas": {}
},
"option_1.png": {
"ver": "1.0.6",
"uuid": "63e12cb5-9d72-4ef0-8fae-d0b7ddae0a73",
"importer": "sprite-frame",
"rawTextureUuid": "78517160-7689-4bc5-b0bf-6762cf030bb2",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1600,
"trimY": 1119,
"width": 238,
"height": 96,
"rawWidth": 238,
"rawHeight": 96,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"spriteType": "normal",
"subMetas": {}
},
"option_2.png": {
"ver": "1.0.6",
"uuid": "faa5e43d-2a28-4b4d-a566-4d895c7ace54",
"importer": "sprite-frame",
"rawTextureUuid": "78517160-7689-4bc5-b0bf-6762cf030bb2",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1360,
"trimY": 1119,
"width": 238,
"height": 96,
"rawWidth": 238,
"rawHeight": 96,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"spriteType": "normal",
"subMetas": {}
},
"tijiao_btn.png": {
"ver": "1.0.6",
"uuid": "1731fb78-1608-4f46-9fbd-c15d24137b9a",
"importer": "sprite-frame",
"rawTextureUuid": "78517160-7689-4bc5-b0bf-6762cf030bb2",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1360,
"trimY": 954,
"width": 476,
"height": 163,
"rawWidth": 476,
"rawHeight": 163,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"spriteType": "normal",
"subMetas": {}
},
"title.png": {
"ver": "1.0.6",
"uuid": "81df6f09-18b0-4a76-9ba4-63931dda3e66",
"importer": "sprite-frame",
"rawTextureUuid": "78517160-7689-4bc5-b0bf-6762cf030bb2",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 1805,
"trimY": 772,
"width": 131,
"height": 64,
"rawWidth": 131,
"rawHeight": 64,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"spriteType": "normal",
"subMetas": {}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,15 @@
{
"ver": "2.3.7",
"uuid": "78517160-7689-4bc5-b0bf-6762cf030bb2",
"importer": "texture",
"type": "raw",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1920,
"height": 1224,
"platformSettings": {},
"subMetas": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -0,0 +1,38 @@
{
"ver": "2.3.7",
"uuid": "54509a9d-9056-49a6-b258-6d2d77d9cdcc",
"importer": "texture",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 570,
"height": 170,
"platformSettings": {},
"subMetas": {
"special_beginBtn": {
"ver": "1.0.6",
"uuid": "7ea6946c-2a75-4166-bb7a-bd22f1fea5e5",
"importer": "sprite-frame",
"rawTextureUuid": "54509a9d-9056-49a6-b258-6d2d77d9cdcc",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 570,
"height": 170,
"rawWidth": 570,
"rawHeight": 170,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,38 @@
{
"ver": "2.3.7",
"uuid": "3688e5d1-1bc2-4776-b8c4-e3a8a51e19ba",
"importer": "texture",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 423,
"height": 186,
"platformSettings": {},
"subMetas": {
"special_level_bg": {
"ver": "1.0.6",
"uuid": "e5f4ce1c-a588-46a9-a8ba-ef90ecf475eb",
"importer": "sprite-frame",
"rawTextureUuid": "3688e5d1-1bc2-4776-b8c4-e3a8a51e19ba",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 423,
"height": 186,
"rawWidth": 423,
"rawHeight": 186,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -0,0 +1,38 @@
{
"ver": "2.3.7",
"uuid": "fc6f7855-df1d-440d-9782-e90c42986ef9",
"importer": "texture",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 111,
"height": 85,
"platformSettings": {},
"subMetas": {
"special_logo": {
"ver": "1.0.6",
"uuid": "cfbd1a61-f596-42a2-a7bb-c39160d78236",
"importer": "sprite-frame",
"rawTextureUuid": "fc6f7855-df1d-440d-9782-e90c42986ef9",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 111,
"height": 85,
"rawWidth": 111,
"rawHeight": 85,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,38 @@
{
"ver": "2.3.7",
"uuid": "a12f8f40-17bb-4ee3-b2d6-732676908ae5",
"importer": "texture",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 117,
"height": 121,
"platformSettings": {},
"subMetas": {
"special_logo_rank": {
"ver": "1.0.6",
"uuid": "bcf4ab95-f14a-4a45-a7e1-627451f8f051",
"importer": "sprite-frame",
"rawTextureUuid": "a12f8f40-17bb-4ee3-b2d6-732676908ae5",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 117,
"height": 121,
"rawWidth": 117,
"rawHeight": 121,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -0,0 +1,38 @@
{
"ver": "2.3.7",
"uuid": "e3ca3a92-ff58-43bd-8964-6531d84ff329",
"importer": "texture",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 900,
"height": 1249,
"platformSettings": {},
"subMetas": {
"special_tips": {
"ver": "1.0.6",
"uuid": "97821dd6-5f27-42b5-85ac-aebdc868c994",
"importer": "sprite-frame",
"rawTextureUuid": "e3ca3a92-ff58-43bd-8964-6531d84ff329",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0.5,
"trimX": 1,
"trimY": 0,
"width": 898,
"height": 1248,
"rawWidth": 900,
"rawHeight": 1249,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,38 @@
{
"ver": "2.3.7",
"uuid": "5b5c1117-20cc-4f4b-bd99-cc835e63b211",
"importer": "texture",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 93,
"height": 104,
"platformSettings": {},
"subMetas": {
"special_tips_btn": {
"ver": "1.0.6",
"uuid": "16d3bc5f-f179-4a18-8074-d4728906f905",
"importer": "sprite-frame",
"rawTextureUuid": "5b5c1117-20cc-4f4b-bd99-cc835e63b211",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 93,
"height": 104,
"rawWidth": 93,
"rawHeight": 104,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}

View File

@ -0,0 +1,226 @@
[
{
"__type__": "cc.Prefab",
"_name": "",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"asyncLoadAssets": false,
"readonly": false
},
{
"__type__": "cc.Node",
"_name": "contentNode",
"_objFlags": 0,
"_parent": null,
"_children": [
{
"__id__": 2
}
],
"_active": true,
"_components": [
{
"__id__": 6
}
],
"_prefab": {
"__id__": 7
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 0,
"height": 0
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
-42,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "contentBg",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 3
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 5
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 268,
"height": 300
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 1
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"_materials": [
{
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
}
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "c9e00cfc-2ebf-4c1c-9db6-dcfd0d06dae2"
},
"_type": 1,
"_sizeMode": 0,
"_fillType": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
"__uuid__": "67562408-3b02-4c6d-804e-5b957afe77aa"
},
"_id": ""
},
{
"__type__": "cc.BlockInputEvents",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "2dhwYh3SRB96weWNjH8QBk",
"sync": false
},
{
"__type__": "cb2e5YPrA5OWIGWHrCo24xX",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"itemPrefab": {
"__uuid__": "481a5aaa-a20b-4381-bb03-87ac9598cff5"
},
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "",
"sync": false
}
]

View File

@ -0,0 +1,9 @@
{
"ver": "1.3.2",
"uuid": "2aad7723-ee9e-4d54-b348-8b775d98febd",
"importer": "prefab",
"optimizationPolicy": "AUTO",
"asyncLoadAssets": false,
"readonly": false,
"subMetas": {}
}

View File

@ -0,0 +1,120 @@
[
{
"__type__": "cc.Prefab",
"_name": "",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"asyncLoadAssets": false,
"readonly": false
},
{
"__type__": "cc.Node",
"_name": "menuLabel",
"_objFlags": 0,
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
}
],
"_prefab": {
"__id__": 3
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 240,
"height": 60
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
-42,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"_materials": [
{
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
}
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_string": "内容详情",
"_N$string": "内容详情",
"_fontSize": 60,
"_lineHeight": 60,
"_enableWrapText": true,
"_N$file": null,
"_isSystemFontUsed": true,
"_spacingX": 0,
"_batchAsBitmap": false,
"_styleFlags": 1,
"_underlineHeight": 0,
"_N$horizontalAlign": 1,
"_N$verticalAlign": 1,
"_N$fontFamily": "Arial",
"_N$overflow": 0,
"_N$cacheMode": 2,
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "",
"sync": false
}
]

View File

@ -0,0 +1,9 @@
{
"ver": "1.3.2",
"uuid": "481a5aaa-a20b-4381-bb03-87ac9598cff5",
"importer": "prefab",
"optimizationPolicy": "AUTO",
"asyncLoadAssets": false,
"readonly": false,
"subMetas": {}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
{
"ver": "1.3.2",
"uuid": "eb0ee703-6d66-42d6-88a5-d6cd43669080",
"importer": "prefab",
"optimizationPolicy": "AUTO",
"asyncLoadAssets": false,
"readonly": false,
"subMetas": {}
}

View File

@ -0,0 +1,597 @@
[
{
"__type__": "cc.Prefab",
"_name": "",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"asyncLoadAssets": false,
"readonly": false
},
{
"__type__": "cc.Node",
"_name": "optionNode",
"_objFlags": 0,
"_parent": null,
"_children": [
{
"__id__": 2
},
{
"__id__": 11
}
],
"_active": true,
"_components": [
{
"__id__": 14
}
],
"_prefab": {
"__id__": 15
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 240,
"height": 98
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "menu",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [
{
"__id__": 3
},
{
"__id__": 6
}
],
"_active": true,
"_components": [
{
"__id__": 9
}
],
"_prefab": {
"__id__": 10
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 240,
"height": 98
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Node",
"_name": "background_1",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 4
}
],
"_prefab": {
"__id__": 5
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 238,
"height": 96
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 3
},
"_enabled": true,
"_materials": [
{
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
}
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "63e12cb5-9d72-4ef0-8fae-d0b7ddae0a73"
},
"_type": 1,
"_sizeMode": 0,
"_fillType": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
"__uuid__": "67562408-3b02-4c6d-804e-5b957afe77aa"
},
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "36OH6fB+FPhZzOB+P+pRlZ",
"sync": false
},
{
"__type__": "cc.Node",
"_name": "background_2",
"_objFlags": 0,
"_parent": {
"__id__": 2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 7
}
],
"_prefab": {
"__id__": 8
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 238,
"height": 96
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
0,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 6
},
"_enabled": true,
"_materials": [
{
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
}
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "faa5e43d-2a28-4b4d-a566-4d895c7ace54"
},
"_type": 1,
"_sizeMode": 0,
"_fillType": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
"__uuid__": "67562408-3b02-4c6d-804e-5b957afe77aa"
},
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "0fQGL7cztHJK103a1L343h",
"sync": false
},
{
"__type__": "cc.Button",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 2
},
"_enabled": true,
"_normalMaterial": null,
"_grayMaterial": null,
"duration": 0.1,
"zoomScale": 1.2,
"clickEvents": [],
"_N$interactable": true,
"_N$enableAutoGrayEffect": false,
"_N$transition": 0,
"transition": 0,
"_N$normalColor": {
"__type__": "cc.Color",
"r": 230,
"g": 230,
"b": 230,
"a": 255
},
"_N$pressedColor": {
"__type__": "cc.Color",
"r": 200,
"g": 200,
"b": 200,
"a": 255
},
"pressedColor": {
"__type__": "cc.Color",
"r": 200,
"g": 200,
"b": 200,
"a": 255
},
"_N$hoverColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"hoverColor": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_N$disabledColor": {
"__type__": "cc.Color",
"r": 120,
"g": 120,
"b": 120,
"a": 200
},
"_N$normalSprite": {
"__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952"
},
"_N$pressedSprite": {
"__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a"
},
"pressedSprite": {
"__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a"
},
"_N$hoverSprite": {
"__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952"
},
"hoverSprite": {
"__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952"
},
"_N$disabledSprite": {
"__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
},
"_N$target": {
"__id__": 3
},
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "04BvN27FBNr4NZslJngRWC",
"sync": false
},
{
"__type__": "cc.Node",
"_name": "contentLabel",
"_objFlags": 0,
"_parent": {
"__id__": 1
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 12
}
],
"_prefab": {
"__id__": 13
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 0,
"g": 0,
"b": 0,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 238,
"height": 60
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
0,
3,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Label",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 11
},
"_enabled": true,
"_materials": [
{
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
}
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_string": "内容1",
"_N$string": "内容1",
"_fontSize": 40,
"_lineHeight": 50,
"_enableWrapText": false,
"_N$file": null,
"_isSystemFontUsed": true,
"_spacingX": 0,
"_batchAsBitmap": false,
"_styleFlags": 1,
"_underlineHeight": 0,
"_N$horizontalAlign": 1,
"_N$verticalAlign": 1,
"_N$fontFamily": "Arial",
"_N$overflow": 1,
"_N$cacheMode": 1,
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "6epSveW7FHr5g1aXehbC92",
"sync": false
},
{
"__type__": "cb2e5YPrA5OWIGWHrCo24xX",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"itemPrefab": {
"__uuid__": "481a5aaa-a20b-4381-bb03-87ac9598cff5"
},
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "",
"sync": false
}
]

View File

@ -0,0 +1,9 @@
{
"ver": "1.3.2",
"uuid": "98f34fed-fed5-446c-8ac4-8bf6f5798ad9",
"importer": "prefab",
"optimizationPolicy": "AUTO",
"asyncLoadAssets": false,
"readonly": false,
"subMetas": {}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,284 @@
{
"模板": [
{
"id": 1,
"context": "首先,{0}吧"
},
{
"id": 2,
"context": "以{0}为目标吧"
},
{
"id": 3,
"context": "{0}{0}{0}很有用"
},
{
"id": 4,
"context": "{0}。"
},
{
"id": 5,
"context": "{0}"
},
{
"id": 6,
"context": "{0}"
},
{
"id": 7,
"context": "{0}……"
}
],
"基础颜色": [
{
"id": 1,
"context": "白色"
},
{
"id": 2,
"context": "黄色"
},
{
"id": 3,
"context": "浅绿"
},
{
"id": 4,
"context": "深绿"
},
{
"id": 5,
"context": "浅蓝"
},
{
"id": 6,
"context": "深蓝"
},
{
"id": 7,
"context": "粉色"
},
{
"id": 8,
"context": "红色"
},
{
"id": 9,
"context": "橙色"
},
{
"id": 10,
"context": "紫色"
},
{
"id": 11,
"context": "灰色"
}
],
"形状": [
{
"id": 1,
"context": "方块"
},
{
"id": 2,
"context": "2x2方块"
},
{
"id": 3,
"context": "1x3方块"
},
{
"id": 4,
"context": "L方块"
},
{
"id": 5,
"context": "反L方块"
},
{
"id": 6,
"context": "十字方块"
},
{
"id": 7,
"context": "丁字方块"
}
],
"物品": [
{
"id": 1,
"context": "方块"
},
{
"id": 2,
"context": "门"
},
{
"id": 3,
"context": "金币"
},
{
"id": 4,
"context": "方块克星"
},
{
"id": 5,
"context": "时间冻结器"
},
{
"id": 6,
"context": "魔杖"
},
{
"id": 7,
"context": "体力"
},
{
"id": 8,
"context": "x x x"
},
{
"id": 9,
"context": "x x x"
},
{
"id": 10,
"context": "x x x"
},
{
"id": 11,
"context": "钥匙"
},
{
"id": 12,
"context": "锁"
},
{
"id": 13,
"context": "冰块"
},
{
"id": 14,
"context": "左右"
},
{
"id": 15,
"context": "上下"
}
],
"方位": [
{
"id": 1,
"context": "上边"
},
{
"id": 2,
"context": "下边"
},
{
"id": 3,
"context": "左边"
},
{
"id": 4,
"context": "右边"
},
{
"id": 5,
"context": "中间"
},
{
"id": 6,
"context": "左上"
},
{
"id": 7,
"context": "右上"
},
{
"id": 8,
"context": "左下"
},
{
"id": 9,
"context": "右下"
}
],
"方位(副本)": [
{
"id": 1,
"context": "上边"
},
{
"id": 2,
"context": "下边"
},
{
"id": 3,
"context": "左边"
},
{
"id": 4,
"context": "右边"
},
{
"id": 5,
"context": "中间"
},
{
"id": 6,
"context": "左上"
},
{
"id": 7,
"context": "右上"
},
{
"id": 8,
"context": "左下"
},
{
"id": 9,
"context": "右下"
}
],
"方位(副本)(副本)": [
{
"id": 1,
"context": "上边"
},
{
"id": 2,
"context": "下边"
},
{
"id": 3,
"context": "左边"
},
{
"id": 4,
"context": "右边"
},
{
"id": 5,
"context": "中间"
},
{
"id": 6,
"context": "左上"
},
{
"id": 7,
"context": "右上"
},
{
"id": 8,
"context": "左下"
},
{
"id": 9,
"context": "右下"
}
]
}

View File

@ -0,0 +1,6 @@
{
"ver": "1.0.2",
"uuid": "6e53925f-ecb3-463f-a814-edd2212f7511",
"importer": "json",
"subMetas": {}
}

View File

@ -7,11 +7,11 @@
<key>15.png</key>
<dict>
<key>frame</key>
<string>{{980,1505},{141,37}}</string>
<string>{{1583,1166},{141,37}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{141,37}}</string>
<key>sourceSize</key>
@ -20,11 +20,11 @@
<key>18yuan.png</key>
<dict>
<key>frame</key>
<string>{{965,947},{182,63}}</string>
<string>{{505,1154},{182,63}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{182,63}}</string>
<key>sourceSize</key>
@ -33,11 +33,11 @@
<key>activate_btn.png</key>
<dict>
<key>frame</key>
<string>{{409,1673},{394,160}}</string>
<string>{{1763,409},{394,160}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{394,160}}</string>
<key>sourceSize</key>
@ -46,25 +46,38 @@
<key>bright_bg.png</key>
<dict>
<key>frame</key>
<string>{{494,1916},{116,124}}</string>
<string>{{1899,958},{116,124}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{116,124}}</string>
<key>sourceSize</key>
<string>{116,124}</string>
</dict>
<key>description_1.png</key>
<key>buy_btn.png</key>
<dict>
<key>frame</key>
<string>{{2,737},{1079,126}}</string>
<string>{{1597,458},{516,164}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{516,164}}</string>
<key>sourceSize</key>
<string>{516,164}</string>
</dict>
<key>description_1.png</key>
<dict>
<key>frame</key>
<string>{{862,2},{1079,126}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{1079,126}}</string>
<key>sourceSize</key>
<string>{1079,126}</string>
@ -72,7 +85,7 @@
<key>description_2.png</key>
<dict>
<key>frame</key>
<string>{{731,2},{300,460}}</string>
<string>{{1295,458},{300,460}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@ -85,11 +98,11 @@
<key>description_3.png</key>
<dict>
<key>frame</key>
<string>{{125,1819},{136,140}}</string>
<string>{{1763,805},{136,140}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{136,140}}</string>
<key>sourceSize</key>
@ -98,11 +111,11 @@
<key>description_5.png</key>
<dict>
<key>frame</key>
<string>{{557,737},{501,214}}</string>
<string>{{774,881},{501,214}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{501,214}}</string>
<key>sourceSize</key>
@ -111,11 +124,11 @@
<key>description_6.png</key>
<dict>
<key>frame</key>
<string>{{557,1240},{421,431}}</string>
<string>{{862,458},{421,431}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{421,431}}</string>
<key>sourceSize</key>
@ -124,11 +137,11 @@
<key>description_7.png</key>
<dict>
<key>frame</key>
<string>{{144,737},{770,270}}</string>
<string>{{2,802},{770,270}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{770,270}}</string>
<key>sourceSize</key>
@ -137,7 +150,7 @@
<key>description_8.png</key>
<dict>
<key>frame</key>
<string>{{893,727},{426,70}}</string>
<string>{{1925,409},{426,70}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@ -147,10 +160,23 @@
<key>sourceSize</key>
<string>{426,70}</string>
</dict>
<key>free.png</key>
<dict>
<key>frame</key>
<string>{{774,802},{84,44}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{84,44}}</string>
<key>sourceSize</key>
<string>{84,44}</string>
</dict>
<key>get.png</key>
<dict>
<key>frame</key>
<string>{{267,1815},{124,95}}</string>
<string>{{1605,285},{124,95}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@ -163,11 +189,11 @@
<key>get_btn.png</key>
<dict>
<key>frame</key>
<string>{{965,727},{218,78}}</string>
<string>{{505,1074},{218,78}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{218,78}}</string>
<key>sourceSize</key>
@ -176,7 +202,7 @@
<key>left_bg.png</key>
<dict>
<key>frame</key>
<string>{{731,464},{304,261}}</string>
<string>{{1277,920},{304,261}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@ -189,11 +215,11 @@
<key>line.png</key>
<dict>
<key>frame</key>
<string>{{130,737},{1080,12}}</string>
<string>{{862,130},{1080,12}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{1080,12}}</string>
<key>sourceSize</key>
@ -202,7 +228,7 @@
<key>lock.png</key>
<dict>
<key>frame</key>
<string>{{409,1583},{66,88}}</string>
<string>{{1943,2},{66,88}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@ -215,11 +241,11 @@
<key>miaoshu.png</key>
<dict>
<key>frame</key>
<string>{{416,737},{844,139}}</string>
<string>{{862,144},{844,139}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{844,139}}</string>
<key>sourceSize</key>
@ -228,7 +254,7 @@
<key>no_bright_bg.png</key>
<dict>
<key>frame</key>
<string>{{368,1916},{116,124}}</string>
<string>{{1763,947},{116,124}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@ -241,7 +267,7 @@
<key>num_xg.png</key>
<dict>
<key>frame</key>
<string>{{893,1155},{29,41}}</string>
<string>{{1055,1159},{29,41}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@ -254,11 +280,11 @@
<key>progress_bar_1.png</key>
<dict>
<key>frame</key>
<string>{{980,1131},{372,60}}</string>
<string>{{725,1097},{372,60}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{372,60}}</string>
<key>sourceSize</key>
@ -267,7 +293,7 @@
<key>progress_bar_2.png</key>
<dict>
<key>frame</key>
<string>{{2,1957},{364,52}}</string>
<string>{{689,1159},{364,52}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@ -280,11 +306,11 @@
<key>progress_bar_3.png</key>
<dict>
<key>frame</key>
<string>{{833,727},{58,501}}</string>
<string>{{2,1134},{58,501}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{58,501}}</string>
<key>sourceSize</key>
@ -293,11 +319,11 @@
<key>progress_bar_4.png</key>
<dict>
<key>frame</key>
<string>{{773,727},{58,501}}</string>
<string>{{2,1074},{58,501}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{58,501}}</string>
<key>sourceSize</key>
@ -306,11 +332,11 @@
<key>quit.png</key>
<dict>
<key>frame</key>
<string>{{682,1835},{102,119}}</string>
<string>{{1901,837},{102,119}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{102,119}}</string>
<key>sourceSize</key>
@ -319,11 +345,11 @@
<key>right_bg.png</key>
<dict>
<key>frame</key>
<string>{{144,1509},{304,263}}</string>
<string>{{1708,144},{304,263}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{304,263}}</string>
<key>sourceSize</key>
@ -332,24 +358,37 @@
<key>skylineHealth.png</key>
<dict>
<key>frame</key>
<string>{{2,1818},{137,121}}</string>
<string>{{1760,1065},{137,121}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{137,121}}</string>
<key>sourceSize</key>
<string>{137,121}</string>
</dict>
<key>tongpiao.png</key>
<key>tongpaizi.png</key>
<dict>
<key>frame</key>
<string>{{805,1673},{188,175}}</string>
<string>{{1207,1097},{84,43}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{84,43}}</string>
<key>sourceSize</key>
<string>{84,43}</string>
</dict>
<key>tongpiao.png</key>
<dict>
<key>frame</key>
<string>{{1583,976},{188,175}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<key>sourceColorRect</key>
<string>{{0,0},{188,175}}</string>
<key>sourceSize</key>
@ -358,33 +397,33 @@
<key>tongpiaozi.png</key>
<dict>
<key>frame</key>
<string>{{368,1835},{312,79}}</string>
<string>{{862,285},{741,171}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{312,79}}</string>
<string>{{0,0},{741,171}}</string>
<key>sourceSize</key>
<string>{312,79}</string>
<string>{741,171}</string>
</dict>
<key>tu.png</key>
<dict>
<key>frame</key>
<string>{{2,2},{727,733}}</string>
<string>{{2,2},{858,798}}</string>
<key>offset</key>
<string>{0,0}</string>
<string>{-1,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{727,733}}</string>
<string>{{0,31},{858,798}}</string>
<key>sourceSize</key>
<string>{727,733}</string>
<string>{860,860}</string>
</dict>
<key>wenhao.png</key>
<dict>
<key>frame</key>
<string>{{620,1939},{93,103}}</string>
<string>{{1899,1084},{93,103}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
@ -397,11 +436,11 @@
<key>yaoshi.png</key>
<dict>
<key>frame</key>
<string>{{803,1850},{106,122}}</string>
<string>{{1099,1097},{106,122}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<true/>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{106,122}}</string>
<key>sourceSize</key>
@ -415,9 +454,9 @@
<key>realTextureFileName</key>
<string>passCheck.png</string>
<key>size</key>
<string>{1045,2034}</string>
<string>{2017,1221}</string>
<key>smartupdate</key>
<string>$TexturePacker:SmartUpdate:b38bba9c8092bec15cd84139fb51241d$</string>
<string>$TexturePacker:SmartUpdate:66738798be9bf9b5bc5221ea3b379a93$</string>
<key>textureFileName</key>
<string>passCheck.png</string>
</dict>

View File

@ -4,8 +4,8 @@
"importer": "asset",
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"size": {
"width": 1045,
"height": 2034
"width": 2017,
"height": 1221
},
"type": "Texture Packer",
"subMetas": {
@ -16,11 +16,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 980,
"trimY": 1505,
"trimX": 1583,
"trimY": 1166,
"width": 141,
"height": 37,
"rawWidth": 141,
@ -39,11 +39,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 965,
"trimY": 947,
"trimX": 505,
"trimY": 1154,
"width": 182,
"height": 63,
"rawWidth": 182,
@ -62,11 +62,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 409,
"trimY": 1673,
"trimX": 1763,
"trimY": 409,
"width": 394,
"height": 160,
"rawWidth": 394,
@ -85,11 +85,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 494,
"trimY": 1916,
"trimX": 1899,
"trimY": 958,
"width": 116,
"height": 124,
"rawWidth": 116,
@ -101,6 +101,29 @@
"spriteType": "normal",
"subMetas": {}
},
"buy_btn.png": {
"ver": "1.0.6",
"uuid": "0b892182-2a4f-4811-99ac-6f6ee27d5ef0",
"importer": "sprite-frame",
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 1597,
"trimY": 458,
"width": 516,
"height": 164,
"rawWidth": 516,
"rawHeight": 164,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"spriteType": "normal",
"subMetas": {}
},
"description_1.png": {
"ver": "1.0.6",
"uuid": "3e9915b7-f51b-415d-9014-e05d5b0a6c2e",
@ -108,11 +131,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 2,
"trimY": 737,
"trimX": 862,
"trimY": 2,
"width": 1079,
"height": 126,
"rawWidth": 1079,
@ -134,8 +157,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 731,
"trimY": 2,
"trimX": 1295,
"trimY": 458,
"width": 300,
"height": 460,
"rawWidth": 300,
@ -154,11 +177,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 125,
"trimY": 1819,
"trimX": 1763,
"trimY": 805,
"width": 136,
"height": 140,
"rawWidth": 136,
@ -177,11 +200,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 557,
"trimY": 737,
"trimX": 774,
"trimY": 881,
"width": 501,
"height": 214,
"rawWidth": 501,
@ -200,11 +223,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 557,
"trimY": 1240,
"trimX": 862,
"trimY": 458,
"width": 421,
"height": 431,
"rawWidth": 421,
@ -223,11 +246,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 144,
"trimY": 737,
"trimX": 2,
"trimY": 802,
"width": 770,
"height": 270,
"rawWidth": 770,
@ -249,8 +272,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 893,
"trimY": 727,
"trimX": 1925,
"trimY": 409,
"width": 426,
"height": 70,
"rawWidth": 426,
@ -262,6 +285,29 @@
"spriteType": "normal",
"subMetas": {}
},
"free.png": {
"ver": "1.0.6",
"uuid": "fe76d61f-966d-48db-a6a5-a0edb479d756",
"importer": "sprite-frame",
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 774,
"trimY": 802,
"width": 84,
"height": 44,
"rawWidth": 84,
"rawHeight": 44,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"spriteType": "normal",
"subMetas": {}
},
"get.png": {
"ver": "1.0.6",
"uuid": "f8ee887f-42e6-4c42-a42c-d31d1aed99fb",
@ -272,8 +318,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 267,
"trimY": 1815,
"trimX": 1605,
"trimY": 285,
"width": 124,
"height": 95,
"rawWidth": 124,
@ -292,11 +338,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 965,
"trimY": 727,
"trimX": 505,
"trimY": 1074,
"width": 218,
"height": 78,
"rawWidth": 218,
@ -318,8 +364,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 731,
"trimY": 464,
"trimX": 1277,
"trimY": 920,
"width": 304,
"height": 261,
"rawWidth": 304,
@ -338,11 +384,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 130,
"trimY": 737,
"trimX": 862,
"trimY": 130,
"width": 1080,
"height": 12,
"rawWidth": 1080,
@ -364,8 +410,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 409,
"trimY": 1583,
"trimX": 1943,
"trimY": 2,
"width": 66,
"height": 88,
"rawWidth": 66,
@ -384,11 +430,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 416,
"trimY": 737,
"trimX": 862,
"trimY": 144,
"width": 844,
"height": 139,
"rawWidth": 844,
@ -410,8 +456,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 368,
"trimY": 1916,
"trimX": 1763,
"trimY": 947,
"width": 116,
"height": 124,
"rawWidth": 116,
@ -433,8 +479,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 893,
"trimY": 1155,
"trimX": 1055,
"trimY": 1159,
"width": 29,
"height": 41,
"rawWidth": 29,
@ -453,11 +499,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 980,
"trimY": 1131,
"trimX": 725,
"trimY": 1097,
"width": 372,
"height": 60,
"rawWidth": 372,
@ -479,8 +525,8 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 2,
"trimY": 1957,
"trimX": 689,
"trimY": 1159,
"width": 364,
"height": 52,
"rawWidth": 372,
@ -499,11 +545,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 833,
"trimY": 727,
"trimX": 2,
"trimY": 1134,
"width": 58,
"height": 501,
"rawWidth": 58,
@ -522,11 +568,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 773,
"trimY": 727,
"trimX": 2,
"trimY": 1074,
"width": 58,
"height": 501,
"rawWidth": 58,
@ -545,11 +591,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 682,
"trimY": 1835,
"trimX": 1901,
"trimY": 837,
"width": 102,
"height": 119,
"rawWidth": 102,
@ -568,11 +614,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 144,
"trimY": 1509,
"trimX": 1708,
"trimY": 144,
"width": 304,
"height": 263,
"rawWidth": 304,
@ -591,11 +637,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 2,
"trimY": 1818,
"trimX": 1760,
"trimY": 1065,
"width": 137,
"height": 121,
"rawWidth": 137,
@ -607,6 +653,29 @@
"spriteType": "normal",
"subMetas": {}
},
"tongpaizi.png": {
"ver": "1.0.6",
"uuid": "da215dcf-d967-49d7-a843-5125c4e5d55d",
"importer": "sprite-frame",
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 1207,
"trimY": 1097,
"width": 84,
"height": 43,
"rawWidth": 84,
"rawHeight": 43,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"spriteType": "normal",
"subMetas": {}
},
"tongpiao.png": {
"ver": "1.0.6",
"uuid": "98d96ffe-0116-4556-8620-cae510fe250b",
@ -614,11 +683,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 805,
"trimY": 1673,
"trimX": 1583,
"trimY": 976,
"width": 188,
"height": 175,
"rawWidth": 188,
@ -640,12 +709,12 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 368,
"trimY": 1835,
"width": 312,
"height": 79,
"rawWidth": 312,
"rawHeight": 79,
"trimX": 862,
"trimY": 285,
"width": 741,
"height": 171,
"rawWidth": 741,
"rawHeight": 171,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@ -661,14 +730,14 @@
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetX": -1,
"offsetY": 0,
"trimX": 2,
"trimY": 2,
"width": 727,
"height": 733,
"rawWidth": 727,
"rawHeight": 733,
"width": 858,
"height": 798,
"rawWidth": 860,
"rawHeight": 860,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@ -686,8 +755,8 @@
"rotated": true,
"offsetX": 0,
"offsetY": 0,
"trimX": 620,
"trimY": 1939,
"trimX": 1899,
"trimY": 1084,
"width": 93,
"height": 103,
"rawWidth": 93,
@ -706,11 +775,11 @@
"rawTextureUuid": "975e92ea-9360-41e9-a282-065297f61fea",
"trimType": "auto",
"trimThreshold": 1,
"rotated": true,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 803,
"trimY": 1850,
"trimX": 1099,
"trimY": 1097,
"width": 106,
"height": 122,
"rawWidth": 106,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 KiB

After

Width:  |  Height:  |  Size: 282 KiB

View File

@ -8,8 +8,8 @@
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1045,
"height": 2034,
"width": 2017,
"height": 1221,
"platformSettings": {},
"subMetas": {}
}

View File

@ -27,14 +27,14 @@
"_active": true,
"_components": [
{
"__id__": 46
"__id__": 43
},
{
"__id__": 47
"__id__": 44
}
],
"_prefab": {
"__id__": 48
"__id__": 45
},
"_opacity": 255,
"_color": {
@ -221,7 +221,7 @@
"_active": true,
"_components": [],
"_prefab": {
"__id__": 45
"__id__": 42
},
"_opacity": 255,
"_color": {
@ -394,7 +394,7 @@
"__id__": 14
},
{
"__id__": 17
"__id__": 18
},
{
"__id__": 21
@ -403,19 +403,16 @@
"__id__": 24
},
{
"__id__": 27
"__id__": 35
},
{
"__id__": 38
},
{
"__id__": 41
}
],
"_active": true,
"_components": [],
"_prefab": {
"__id__": 44
"__id__": 41
},
"_opacity": 255,
"_color": {
@ -466,7 +463,7 @@
},
{
"__type__": "cc.Node",
"_name": "topBg",
"_name": "tongpiaozi",
"_objFlags": 0,
"_parent": {
"__id__": 10
@ -491,8 +488,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 773,
"height": 180
"width": 741,
"height": 171
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@ -503,7 +500,7 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
17,
5.386,
760,
0,
0,
@ -543,113 +540,6 @@
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "3cac0c04-c634-4a91-8e3f-75c231e2cafe"
},
"_type": 0,
"_sizeMode": 1,
"_fillType": 0,
"_fillCenter": {
"__type__": "cc.Vec2",
"x": 0,
"y": 0
},
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": null,
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "ee8YOTE0ZIhbADo7JxXy0E",
"sync": false
},
{
"__type__": "cc.Node",
"_name": "tongpiaozi",
"_objFlags": 0,
"_parent": {
"__id__": 10
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 15
}
],
"_prefab": {
"__id__": 16
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 312,
"height": 79
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
5.386,
790.794,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "cc.Sprite",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 14
},
"_enabled": true,
"_materials": [
{
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
}
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "12c8c8a1-3158-4495-9339-6e1c810a6316"
},
@ -691,14 +581,14 @@
"_active": true,
"_components": [
{
"__id__": 18
"__id__": 15
},
{
"__id__": 19
"__id__": 16
}
],
"_prefab": {
"__id__": 20
"__id__": 17
},
"_opacity": 255,
"_color": {
@ -710,8 +600,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 66,
"height": 66
"width": 114,
"height": 114
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@ -722,8 +612,8 @@
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
429.677,
719.897,
447,
704,
0,
0,
0,
@ -752,7 +642,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 17
"__id__": 14
},
"_enabled": true,
"_materials": [
@ -763,7 +653,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "8e755f4b-6c32-4acd-95f2-e48afcf0c3ee"
"__uuid__": "24417002-6e72-4d4d-96e3-6117d8420e9b"
},
"_type": 0,
"_sizeMode": 1,
@ -776,9 +666,7 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": {
"__uuid__": "52d3eb5b-948f-403a-aafa-1c8f1a40a8c8"
},
"_atlas": null,
"_id": ""
},
{
@ -786,7 +674,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 17
"__id__": 14
},
"_enabled": true,
"_normalMaterial": null,
@ -871,11 +759,11 @@
"_active": true,
"_components": [
{
"__id__": 22
"__id__": 19
}
],
"_prefab": {
"__id__": 23
"__id__": 20
},
"_opacity": 255,
"_color": {
@ -887,8 +775,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 727,
"height": 733
"width": 858,
"height": 798
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@ -929,7 +817,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 21
"__id__": 18
},
"_enabled": true,
"_materials": [
@ -980,11 +868,11 @@
"_active": true,
"_components": [
{
"__id__": 25
"__id__": 22
}
],
"_prefab": {
"__id__": 26
"__id__": 23
},
"_opacity": 255,
"_color": {
@ -1038,7 +926,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 24
"__id__": 21
},
"_enabled": true,
"_materials": [
@ -1087,26 +975,26 @@
},
"_children": [
{
"__id__": 28
"__id__": 25
},
{
"__id__": 31
"__id__": 28
}
],
"_active": true,
"_components": [
{
"__id__": 34
"__id__": 31
},
{
"__id__": 35
"__id__": 32
},
{
"__id__": 36
"__id__": 33
}
],
"_prefab": {
"__id__": 37
"__id__": 34
},
"_opacity": 255,
"_color": {
@ -1118,8 +1006,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 519,
"height": 168
"width": 516,
"height": 164
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@ -1160,17 +1048,17 @@
"_name": "18yuan",
"_objFlags": 0,
"_parent": {
"__id__": 27
"__id__": 24
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 29
"__id__": 26
}
],
"_prefab": {
"__id__": 30
"__id__": 27
},
"_opacity": 255,
"_color": {
@ -1224,7 +1112,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 28
"__id__": 25
},
"_enabled": true,
"_materials": [
@ -1269,17 +1157,17 @@
"_name": "tongpiao",
"_objFlags": 0,
"_parent": {
"__id__": 27
"__id__": 24
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 32
"__id__": 29
}
],
"_prefab": {
"__id__": 33
"__id__": 30
},
"_opacity": 255,
"_color": {
@ -1333,7 +1221,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 31
"__id__": 28
},
"_enabled": true,
"_materials": [
@ -1378,7 +1266,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 27
"__id__": 24
},
"_enabled": true,
"_normalMaterial": null,
@ -1451,7 +1339,7 @@
"__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
},
"_N$target": {
"__id__": 27
"__id__": 24
},
"_id": ""
},
@ -1460,7 +1348,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 27
"__id__": 24
},
"_enabled": true,
"_materials": [
@ -1471,7 +1359,7 @@
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "d9be6eea-569b-46da-bb80-0d9c8b8f5263"
"__uuid__": "0b892182-2a4f-4811-99ac-6f6ee27d5ef0"
},
"_type": 0,
"_sizeMode": 1,
@ -1484,7 +1372,9 @@
"_fillStart": 0,
"_fillRange": 0,
"_isTrimmedMode": true,
"_atlas": null,
"_atlas": {
"__uuid__": "56aacf5e-256b-4c72-b5d1-3982932775c9"
},
"_id": ""
},
{
@ -1492,7 +1382,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 27
"__id__": 24
},
"_enabled": true,
"_id": ""
@ -1519,18 +1409,18 @@
"_active": true,
"_components": [
{
"__id__": 39
"__id__": 36
}
],
"_prefab": {
"__id__": 40
"__id__": 37
},
"_opacity": 255,
"_color": {
"__type__": "cc.Color",
"r": 193,
"g": 141,
"b": 93,
"r": 78,
"g": 63,
"b": 58,
"a": 255
},
"_contentSize": {
@ -1577,7 +1467,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 38
"__id__": 35
},
"_enabled": true,
"_materials": [
@ -1627,11 +1517,11 @@
"_active": true,
"_components": [
{
"__id__": 42
"__id__": 39
}
],
"_prefab": {
"__id__": 43
"__id__": 40
},
"_opacity": 255,
"_color": {
@ -1685,7 +1575,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 41
"__id__": 38
},
"_enabled": true,
"_materials": [
@ -1782,13 +1672,13 @@
},
"_enabled": true,
"qiutBtn": {
"__id__": 19
"__id__": 16
},
"buyBtn": {
"__id__": 34
"__id__": 31
},
"countdown": {
"__id__": 42
"__id__": 39
},
"_id": ""
},