Compare commits

..

No commits in common. "master" and "v0.0.13" have entirely different histories.

1531 changed files with 141876 additions and 60911 deletions

View File

@ -2,10 +2,11 @@
"ver": "1.2.0", "ver": "1.2.0",
"importer": "directory", "importer": "directory",
"imported": true, "imported": true,
"uuid": "0c826003-fe58-4d0d-8099-9be2a0972aad", "uuid": "b8b9e8c8-a0fe-4da6-8c6b-32f185520cd0",
"files": [], "files": [],
"subMetas": {}, "subMetas": {},
"userData": { "userData": {
"isBundle": true "isBundle": true,
"bundleName": "Game"
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "c50538f5-db13-41ea-b02d-08299cdd9a88",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "rewardHistoryListItem"
}
}

View File

@ -1,102 +0,0 @@
import { _decorator, UIRenderer, Component, Color, clamp, director, Director, Sprite, Label } from 'cc';
import { DEV, JSB } from 'cc/env';
const { ccclass, property, executeInEditMode, requireComponent, menu } = _decorator;
@ccclass
@executeInEditMode
@requireComponent(UIRenderer)
@menu('Public/Palette')
export class Palette extends Component {
@property
private _colorLB: Color = new Color(255, 255, 255, 255);
@property({ displayName: DEV && '↙ 左下' })
public get colorLB() { return this._colorLB };
public set colorLB(value: Color) {
this._colorLB = value;
this.updateColor();
}
@property
private _colorRB: Color = new Color(255, 255, 255, 255);
@property({ displayName: DEV && '↘ 右下' })
public get colorRB() { return this._colorRB };
public set colorRB(value: Color) {
this._colorRB = value;
this.updateColor();
}
@property
private _colorLT: Color = new Color(255, 255, 255, 255);
@property({ displayName: DEV && '↖ 左上' })
private get colorLT() { return this._colorLT };
private set colorLT(value: Color) {
this._colorLT = value;
this.updateColor();
}
@property
private _colorRT: Color = new Color(255, 255, 255, 255);
@property({ displayName: DEV && '↗ 右上' })
private get colorRT() { return this._colorRT };
private set colorRT(value: Color) {
this._colorRT = value;
this.updateColor();
}
@property
private _hueRatio: number = 1;
@property({ range: [0, 1], step: 0.01, slide: true, displayName: '🌈 色相' })
get hueRatio() { return this._hueRatio; }
set hueRatio(val) {
this._hueRatio = clamp(val, 0, 1);
this.updateHueRatio();
this.updateColor();
}
@property
private _darkness: number = 1;
@property({ range: [0, 1], step: 0.01, slide: true, displayName: '🌞 暗度' })
get darkness() { return this._darkness; }
set darkness(val) {
this._darkness = clamp(val, 0, 1);
this.updateColor();
}
private ur: UIRenderer = null;
private hue: number[] = [1, 1, 1]; //色相分量
protected onLoad() {
this.ur = this.node.getComponent(UIRenderer);
if (!(this.ur instanceof Sprite || this.ur instanceof Label)) {
console.warn('Palette只对Sprite和Label有效');
this.destroy();
return;
}
this.ur['_useVertexOpacity'] = true; //启用顶点透明度否则透明度只受color.a影响
}
protected onEnable() {
this.updateHueRatio();
director.once(Director.EVENT_AFTER_DRAW, this.updateColor, this);
}
protected onDisable() {
if (!this.ur['_renderData']) return;
let vb = this.ur['_renderData'].chunk.vb;
let color = this.ur.color;
vb[5] = vb[14] = vb[23] = vb[32] = color.r / 255;
vb[6] = vb[15] = vb[24] = vb[33] = color.g / 255;
vb[7] = vb[16] = vb[25] = vb[34] = color.b / 255;
vb[8] = vb[17] = vb[26] = vb[35] = color.a / 255;
}
private updateColor() {
let vb = this.ur['_renderData'].chunk.vb;
let lb = this._colorLB, rb = this._colorRB, lt = this._colorLT, rt = this._colorRT;
let d = this._darkness / 255, h = this.hue, r = h[0] * d, g = h[1] * d, b = h[2] * d;
vb[5] = lb.r * r; vb[6] = lb.g * g; vb[7] = lb.b * b; vb[8] = lb.a / 255;
vb[14] = rb.r * r; vb[15] = rb.g * g; vb[16] = rb.b * b; vb[17] = rb.a / 255;
vb[23] = lt.r * r; vb[24] = lt.g * g; vb[25] = lt.b * b; vb[26] = lt.a / 255;
vb[32] = rt.r * r; vb[33] = rt.g * g; vb[34] = rt.b * b; vb[35] = rt.a / 255;
}
private updateHueRatio(): void {
const step = 1 / 7;
let hueRatio = this._hueRatio;
if (hueRatio < step) this.hue = [1, hueRatio / step, 0];
else if (hueRatio < step * 2) this.hue = [2 - hueRatio / step, 1, 0];
else if (hueRatio < step * 3) this.hue = [0, 1, hueRatio / step - 2];
else if (hueRatio < step * 4) this.hue = [0, 4 - hueRatio / step, 1];
else if (hueRatio < 5 * step) this.hue = [hueRatio / step - 4, 0, 1];
else if (hueRatio < 6 * step) this.hue = [1, 0, 6 - hueRatio / step];
else { this.hue = [1, hueRatio / step - 6, hueRatio / step - 6]; }
}
}

View File

@ -1,9 +0,0 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "11aa7c13-7832-4d35-aae9-daf89262e33c",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -1,336 +0,0 @@
import { _decorator, Color, Component, Label, Node, Tween, tween } from 'cc';
import { VirtualScrollView } from './VScrollView';
import { Palette } from './Palette';
import { SlotRankingDataManager } from './SlotRankingDataManager';
import { callGameApiForRank, getGameId, truncateString } from 'db://assets/Loading/scripts/comm';
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
const { ccclass, property } = _decorator;
@ccclass('RankHistoryList')
export class RankHistoryList extends Component {
// ==================== 历史排行榜 ====================
rankHistoryList: Node = null; // 历史排行榜节点
rankHistoryLoadingNode: Node = null; // 历史记录加载节点
// 历史排行榜 - 翻页按钮
rightBtn: Node = null; // 右箭头按钮(下一期)
leftBtn: Node = null; // 左箭头按钮(上一期)
closeBtn: Node = null; // 关闭按钮
rankingHistoryListVScroll: VirtualScrollView = null; // 历史排行榜虚拟列表
selfInfo: Node = null; // 自己的信息节点
// 历史排行榜 - 日周月切换
rankHistoryRadioDWM: Node = null; // 历史记录日周月单选按钮父节点
rankHistoryRadioDayBtn: Node = null; // 历史记录日榜单选按钮
rankHistoryRadioWeekBtn: Node = null; // 历史记录周榜单选按钮
rankHistoryRadioMonthBtn: Node = null; // 历史记录月榜单选按钮
// 活动未开启提示
activityNotOpenTip: Node = null; // 活动未开启提示 label
currentHistoryType: string = '';
historyIndex: number = 1; // 历史记录索引1表示上一期最大为10
maxHistoryIndex: number = 10; // 最大历史记录数
availableTypes: Set<string> = new Set(); // 可用的类型
// 回调函数
onBack: () => void = null; // 返回到主列表
init(rankHistoryListNode: Node) {
this.rankHistoryList = rankHistoryListNode;
let titleChange = this.rankHistoryList.getChildByName('titleChange');
this.rightBtn = titleChange.getChildByName('rightBtn');
this.leftBtn = titleChange.getChildByName('leftBtn');
this.selfInfo = this.rankHistoryList.getChildByName('list').getChildByName('self');
this.rankHistoryLoadingNode = this.rankHistoryList.getChildByName('list').getChildByName('loading');
this.rankingHistoryListVScroll = this.rankHistoryList.getChildByName('list').getChildByName('vScroll').getComponent(VirtualScrollView);
this.rankHistoryRadioDWM = this.rankHistoryList.getChildByName('rankHistoryRadioDWM');
this.rankHistoryRadioDayBtn = this.rankHistoryRadioDWM.getChildByName('dayBtn');
this.rankHistoryRadioWeekBtn = this.rankHistoryRadioDWM.getChildByName('weekBtn');
this.rankHistoryRadioMonthBtn = this.rankHistoryRadioDWM.getChildByName('monthBtn');
this.activityNotOpenTip = this.rankHistoryList.getChildByName('list').getChildByName('activityNotOpenTip');
this.rankHistoryList.active = false;
this.rankHistoryLoadingNode.active = false;
this.activityNotOpenTip.active = false;
this.closeBtn = this.rankHistoryList.getChildByName('closeHistory');
this.rightBtn.on(Node.EventType.TOUCH_END, this.onClickRightBtn, this);
this.leftBtn.on(Node.EventType.TOUCH_END, this.onClickLeftBtn, this);
this.closeBtn.on(Node.EventType.TOUCH_END, this.closeRankHistoryPopup, this);
this.rankHistoryRadioDayBtn.on(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioDayBtn, this);
this.rankHistoryRadioWeekBtn.on(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioWeekBtn, this);
this.rankHistoryRadioMonthBtn.on(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioMonthBtn, this);
}
// ==================== 对外接口 ====================
async show(type: string) {
this.rankHistoryList.active = true;
this.updateAvailableTypes();
this.currentHistoryType = type;
this.historyIndex = 1;
this.updateHistoryArrows();
this.refreshSelfRankingInfo(null);
await this.loadHistoryData(this.currentHistoryType, this.historyIndex);
}
updateAvailableTypes() {
let rankList = SlotRankingDataManager.instance.rankList;
this.availableTypes.clear();
if (rankList && rankList.List) {
for (let item of rankList.List) {
this.availableTypes.add(item.Type);
}
}
}
isTypeAvailable(type: string): boolean {
return this.availableTypes.has(type);
}
showActivityNotOpenTip() {
this.activityNotOpenTip.active = true;
this.rankingHistoryListVScroll.setTotalCount(0);
}
hideActivityNotOpenTip() {
this.activityNotOpenTip.active = false;
}
hide() {
this.rankHistoryList.active = false;
}
// ==================== 历史记录逻辑 ====================
async loadHistoryData(type: string, index: number) {
this.setRankHistoryRadioBtn(type);
this.refreshSelfRankingInfo(null);
if (!this.isTypeAvailable(type)) {
console.log(`${type} 历史榜单活动未开启`);
this.rankHistoryLoadingNode.active = false;
this.showActivityNotOpenTip();
return;
}
this.hideActivityNotOpenTip();
this.rankingHistoryListVScroll.setTotalCount(0);
Tween.stopAllByTarget(this.rankHistoryLoadingNode);
this.rankHistoryLoadingNode.active = true;
tween(this.rankHistoryLoadingNode)
.by(0.3, { angle: 360 })
.repeatForever()
.start();
let historyDate = this.getHistoryDate(type, index);
let data = {
Type: type,
GameId: getGameId(),
Date: historyDate,
}
try {
let rankInfos = await callGameApiForRank('getRankInfos', data);
Tween.stopAllByTarget(this.rankHistoryLoadingNode);
this.rankHistoryLoadingNode.active = false;
this.openRankHistoryPopup(rankInfos);
this.refreshSelfRankingInfo(rankInfos.Self);
} catch (error) {
console.error('获取历史排行榜数据失败:', error);
Tween.stopAllByTarget(this.rankHistoryLoadingNode);
this.rankHistoryLoadingNode.active = false;
}
}
refreshSelfRankingInfo(selfInfo: any) {
if (!selfInfo) {
this.selfInfo.getChildByName('Rank').getChildByName('sp_1').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('sp_2').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('sp_3').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = true;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = '-';
this.selfInfo.getChildByName('Uid').getComponent(Label).string = '-';
this.selfInfo.getChildByName('Shop').getComponent(Label).string = '-';
this.selfInfo.getChildByName('Win').getComponent(Label).string = '-';
return;
}
this.selfInfo.getChildByName('Rank').getChildByName('sp_1').active = selfInfo.Rank === 1;
this.selfInfo.getChildByName('Rank').getChildByName('sp_2').active = selfInfo.Rank === 2;
this.selfInfo.getChildByName('Rank').getChildByName('sp_3').active = selfInfo.Rank === 3;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = selfInfo.Rank >= 4;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = selfInfo.Rank.toString();
if (selfInfo.Rank === -1) {
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = true;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = '-';
}
this.selfInfo.getChildByName('Uid').getComponent(Label).string = truncateString(selfInfo.Uid);
this.selfInfo.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Bet.toString();
}
getHistoryDate(type: string, index: number): string {
let now = new Date();
let date = new Date(now);
if (type === 'day') {
date.setDate(date.getDate() - index);
} else if (type === 'week') {
date.setDate(date.getDate() - index * 7);
} else if (type === 'month') {
date.setMonth(date.getMonth() - index);
}
let year = date.getFullYear();
let month = (date.getMonth() + 1).toString();
let day = date.getDate().toString();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return `${year}${month}${day}`;
}
updateHistoryArrows() {
this.rightBtn.active = this.historyIndex > 1;
this.leftBtn.active = this.historyIndex < this.maxHistoryIndex;
}
openRankHistoryPopup(rankInfos: any) {
this.rankingHistoryListVScroll.setTotalCount(rankInfos.List.length);
this.rankingHistoryListVScroll.renderItemFn = (node: Node, idx: number) => {
let itemData = rankInfos.List[idx];
if (!itemData) {
return;
}
node.getChildByName('bg').active = idx % 2 === 0;
node.getChildByName('bg2').active = idx % 2 !== 0;
node.getChildByName('Rank').getChildByName('sp_1').active = idx === 0;
node.getChildByName('Rank').getChildByName('sp_2').active = idx === 1;
node.getChildByName('Rank').getChildByName('sp_3').active = idx === 2;
node.getChildByName('Rank').getChildByName('rankLab').active = idx >= 3;
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = (idx + 1).toString();
node.getChildByName('Uid').getComponent(Label).string = truncateString(itemData.Uid);
node.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
node.getChildByName('Win').getComponent(Label).string = itemData.Bet.toString();
}
this.rankingHistoryListVScroll.refreshList(rankInfos.List);
}
// ==================== 按钮状态管理 ====================
setRankHistoryRadioBtn(type: string) {
let selectedColor = new Color(219, 180, 180, 255);
let unselectedColor = new Color(197, 255, 175, 255);
this.setRadioBtnState(this.rankHistoryRadioDayBtn, type === 'day', selectedColor, unselectedColor);
this.setRadioBtnState(this.rankHistoryRadioWeekBtn, type === 'week', selectedColor, unselectedColor);
this.setRadioBtnState(this.rankHistoryRadioMonthBtn, type === 'month', selectedColor, unselectedColor);
}
setRadioBtnState(btn: Node, isSelected: boolean, selectedColor: Color, unselectedColor: Color) {
let check = btn.getChildByName('check');
let unCheck = btn.getChildByName('unCheck');
let label = btn.getChildByName('label');
let palette = label?.getComponent(Palette);
if (isSelected) {
check.active = true;
unCheck.active = false;
if (palette) {
palette.colorLB = selectedColor;
palette.colorRB = selectedColor;
}
} else {
check.active = false;
unCheck.active = true;
if (palette) {
palette.colorLB = unselectedColor;
palette.colorRB = unselectedColor;
}
}
}
// ==================== 按钮事件 ====================
async onClickLeftBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
if (this.historyIndex >= this.maxHistoryIndex) {
return;
}
this.historyIndex++;
this.updateHistoryArrows();
await this.loadHistoryData(this.currentHistoryType, this.historyIndex);
}
async onClickRightBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
if (this.historyIndex <= 1) {
return;
}
this.historyIndex--;
this.updateHistoryArrows();
await this.loadHistoryData(this.currentHistoryType, this.historyIndex);
}
async onClickRankHistoryRadioDayBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
if (this.currentHistoryType === 'day') {
return;
}
this.currentHistoryType = 'day';
this.historyIndex = 1;
this.updateHistoryArrows();
await this.loadHistoryData('day', this.historyIndex);
}
async onClickRankHistoryRadioWeekBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
if (this.currentHistoryType === 'week') {
return;
}
this.currentHistoryType = 'week';
this.historyIndex = 1;
this.updateHistoryArrows();
await this.loadHistoryData('week', this.historyIndex);
}
async onClickRankHistoryRadioMonthBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
if (this.currentHistoryType === 'month') {
return;
}
this.currentHistoryType = 'month';
this.historyIndex = 1;
this.updateHistoryArrows();
await this.loadHistoryData('month', this.historyIndex);
}
closeRankHistoryPopup() {
AudioManager.instance.playSFX("Common_Button_Click");
this.onBack?.call(null);
}
onDestroy() {
this.rightBtn.off(Node.EventType.TOUCH_END, this.onClickRightBtn, this);
this.leftBtn.off(Node.EventType.TOUCH_END, this.onClickLeftBtn, this);
this.rankHistoryRadioDayBtn.off(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioDayBtn, this);
this.rankHistoryRadioWeekBtn.off(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioWeekBtn, this);
this.rankHistoryRadioMonthBtn.off(Node.EventType.TOUCH_END, this.onClickRankHistoryRadioMonthBtn, this);
this.closeBtn.off(Node.EventType.TOUCH_END, this.closeRankHistoryPopup, this);
}
}

View File

@ -1,518 +0,0 @@
import { _decorator, Button, Color, Component, Label, Node, Sprite, Tween, tween, UITransform, v3, Vec2 } from 'cc';
import { VirtualScrollView } from './VScrollView';
import { Palette } from './Palette';
import { SlotRankingDataManager } from './SlotRankingDataManager';
import { callGameApiForRank, getGameId, truncateString } from 'db://assets/Loading/scripts/comm';
import { I18nManager } from 'db://assets/Loading/scripts/manager/I18nManager';
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
const { ccclass, property } = _decorator;
@ccclass('RankList')
export class RankList extends Component {
// ==================== 当前排行榜 ====================
msg_1: Node = null // 跑马灯信息
currentMarqueeIndex: number = 0; // 当前跑马灯文本索引
marqueeTexts: string[] = []; // 跑马灯文本数组
rankList: Node = null; // 当前排行榜节点
rankingEndTime: Node = null; // 排行榜结束时间节点
rankLoadingNode: Node = null; // 加载动画节点
rankingListVScroll: VirtualScrollView = null; // 排行榜虚拟列表
selfInfo: Node = null; // 自己的信息节点
// 当前排行榜 - 日周月切换
rankRadioDWM: Node = null; // 日周月单选按钮父节点
rankRadioDayBtn: Node = null; // 日榜单选按钮
rankRadioWeekBtn: Node = null; // 周榜单选按钮
rankRadioMonthBtn: Node = null; // 月榜单选按钮
rankingHistoryBtn: Node = null; // 历史记录按钮
rankingRewardBtn: Node = null; // 奖励按钮
// 活动未开启提示
activityNotOpenTip: Node = null; // 活动未开启提示 label
currentRankType: string = '';
countdownTimer: any = null; // 存储定时器
availableTypes: Set<string> = new Set(); // 可用的类型
// 回调函数
onShowHistory: (type: string) => void = null; // 跳转到历史记录
onShowReward: (type: string) => void = null; // 跳转到奖励列表
onClose: () => void = null; // 关闭主弹窗
init(rankListNode: Node) {
this.rankList = rankListNode;
this.msg_1 = this.rankList.getChildByName('msg').getChildByName('Mask').getChildByName('msg_1');
this.rankLoadingNode = this.rankList.getChildByName('list').getChildByName('loading');
this.rankingEndTime = this.rankList.getChildByName('endTime');
this.rankingListVScroll = this.rankList.getChildByName('list').getChildByName('vScroll').getComponent(VirtualScrollView);
this.selfInfo = this.rankList.getChildByName('list').getChildByName('self');
this.rankRadioDWM = this.rankList.getChildByName('rankRadioDWM');
this.rankRadioDayBtn = this.rankRadioDWM.getChildByName('dayBtn');
this.rankRadioWeekBtn = this.rankRadioDWM.getChildByName('weekBtn');
this.rankRadioMonthBtn = this.rankRadioDWM.getChildByName('monthBtn');
this.rankingHistoryBtn = this.rankList.getChildByName('history');
let radioTitle = this.rankList.getChildByName('radioTitle');
this.rankingRewardBtn = radioTitle.getChildByName('rewardBtn');
this.activityNotOpenTip = this.rankList.getChildByName('list').getChildByName('activityNotOpenTip');
this.rankList.active = false;
this.rankLoadingNode.active = false;
this.activityNotOpenTip.active = false;
this.rankingHistoryBtn.on(Node.EventType.TOUCH_END, this.onClickRankHistoryBtn, this);
this.rankingRewardBtn.on(Node.EventType.TOUCH_END, this.onClickRewardBtn, this);
this.rankRadioDayBtn.on(Node.EventType.TOUCH_END, this.onClickRankRadioDayBtn, this);
this.rankRadioWeekBtn.on(Node.EventType.TOUCH_END, this.onClickRankRadioWeekBtn, this);
this.rankRadioMonthBtn.on(Node.EventType.TOUCH_END, this.onClickRankRadioMonthBtn, this);
}
// ==================== 对外接口 ====================
async show(defaultType: string = 'day') {
this.rankList.active = true;
this.currentRankType = '';
this.updateRankButtonsAvailability();
this.refreshSelfRankingInfo(null);
await this.switchRankTab(defaultType);
}
hide() {
this.rankList.active = false;
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
}
// 停止跑马灯
if (this.msg_1 && this.msg_1.isValid) {
Tween.stopAllByTarget(this.msg_1);
this.msg_1.active = false;
}
this.marqueeTexts = [];
this.currentMarqueeIndex = 0;
}
getCurrentType(): string {
return this.currentRankType;
}
// ==================== 排行榜逻辑 ====================
isTypeAvailable(type: string): boolean {
return this.availableTypes.has(type);
}
showActivityNotOpenTip() {
this.activityNotOpenTip.active = true;
this.rankingListVScroll.setTotalCount(0);
this.rankingEndTime.getComponent(Label).string = "--:--:--";
}
hideActivityNotOpenTip() {
this.activityNotOpenTip.active = false;
}
async switchRankTab(type: string) {
if (this.currentRankType === type) {
return;
}
this.currentRankType = type;
this.setRankRadioBtn(type);
this.refreshSelfRankingInfo(null);
if (!this.isTypeAvailable(type)) {
console.log(`${type} 榜单活动未开启`);
this.rankLoadingNode.active = false;
if (this.msg_1 && this.msg_1.isValid) {
this.msg_1.active = false;
}
this.marqueeTexts = [];
this.currentMarqueeIndex = 0;
this.showActivityNotOpenTip();
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
}
return;
}
this.hideActivityNotOpenTip();
this.rankingListVScroll.setTotalCount(0);
Tween.stopAllByTarget(this.rankLoadingNode);
this.rankLoadingNode.active = true;
tween(this.rankLoadingNode)
.by(0.3, { angle: 360 })
.repeatForever()
.start();
let currentRankInfo = SlotRankingDataManager.instance.getRankInfoByType(type);
if (this.msg_1 && this.msg_1.isValid) {
Tween.stopAllByTarget(this.msg_1);
}
this.setupMarquee(currentRankInfo);
this.setRankingEndTime(type);
let data = {
Type: type,
GameId: getGameId(),
Date: this.getCurrentDateString(),
}
try {
let rankInfos = await callGameApiForRank('getRankInfos', data);
Tween.stopAllByTarget(this.rankLoadingNode);
this.rankLoadingNode.active = false;
this.openRankingPopup(rankInfos);
} catch (error) {
console.error('获取排行榜数据失败:', error);
this.showActivityNotOpenTip();
Tween.stopAllByTarget(this.rankLoadingNode);
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
}
this.rankingEndTime.getComponent(Label).string = "--:--:--";
this.rankLoadingNode.active = false;
// 停止跑马灯
if (this.msg_1 && this.msg_1.isValid) {
Tween.stopAllByTarget(this.msg_1);
this.msg_1.active = false;
}
this.marqueeTexts = [];
this.currentMarqueeIndex = 0;
}
}
// ==================== 跑马灯逻辑 ====================
setupMarquee(currentRankInfo: any) {
if (!this.msg_1 || !this.msg_1.isValid) return;
// 获取活动数据
let rewardsCount = currentRankInfo.Rewards?.length || 0;
let spinLimit = currentRankInfo.SpinLimit || 0;
let betLimit = currentRankInfo.BetLimit || 0;
// 获取翻译文本并替换XX
let text1 = I18nManager.instance.t('During the event, participate in designated games and rank in the top XX by winnings to receive generous rewards!');
let text2 = I18nManager.instance.t('Accumulate XX bets or a total wager of XX to participate in the event');
// 替换第一段文本中的XX为Rewards的length
text1 = text1.replace('XX', rewardsCount.toString());
// 替换第二段文本中的两个XXSpinLimit和BetLimit
text2 = text2.replace(/XX/, spinLimit.toString()).replace(/XX/, (betLimit / 10000).toString());
// 保存两段文本
this.marqueeTexts = [text1, text2];
this.currentMarqueeIndex = 0;
// 显示跑马灯并播放第一段文本
this.msg_1.active = true;
this.playMarquee();
}
playMarquee() {
if (!this.msg_1 || !this.msg_1.isValid || this.marqueeTexts.length === 0) return;
let labelComp = this.msg_1.getComponent(Label);
if (!labelComp) return;
// 获取当前要显示的文本
let currentText = this.marqueeTexts[this.currentMarqueeIndex];
// 确保Label的overflow设置为NONE以便完整显示文本
labelComp.overflow = Label.Overflow.NONE;
labelComp.string = currentText;
// 强制更新Label的渲染数据确保宽度正确计算
labelComp.updateRenderData(true);
// 等待下一帧更新UITransform
this.scheduleOnce(() => {
if (!this.msg_1 || !this.msg_1.isValid) return;
// 再次强制更新以确保宽度准确
labelComp.updateRenderData(true);
let labelLength = labelComp.node.getComponent(UITransform).width;
let maskLength = this.msg_1.parent.getComponent(UITransform).width
// 设置初始位置
let endX = 0
let duration = 0
if (labelLength <= maskLength) {
labelComp.node.getComponent(UITransform).setAnchorPoint(new Vec2(0.5, 0.5))
this.msg_1.setPosition(0, this.msg_1.position.y, this.msg_1.position.z);
endX = - maskLength / 2 - labelLength / 2 - 30
duration = Math.max(3, labelLength / 80);
} else {
labelComp.node.getComponent(UITransform).setAnchorPoint(new Vec2(0, 0.5))
this.msg_1.setPosition(- maskLength / 2, this.msg_1.position.y, this.msg_1.position.z);
endX = - maskLength / 2 - labelLength - 30
duration = Math.max(3, (- maskLength / 2 + labelLength) / 80);
}
// 启动跑马灯动画
Tween.stopAllByTarget(this.msg_1);
tween(this.msg_1)
.delay(1)
.to(duration, { position: v3(endX, this.msg_1.position.y, this.msg_1.position.z) })
.call(() => {
// 切换到下一段文本
this.currentMarqueeIndex = (this.currentMarqueeIndex + 1) % this.marqueeTexts.length;
// 播放下一段文本
this.playMarquee();
})
.start();
}, 0);
}
// ==================== 排行榜列表逻辑 ====================
openRankingPopup(rankInfos: any) {
this.rankingListVScroll.setTotalCount(rankInfos.List.length);
this.rankingListVScroll.renderItemFn = (node: Node, idx: number) => {
let itemData = rankInfos.List[idx];
if (!itemData) {
return;
}
node.getChildByName('bg').active = idx % 2 === 0;
node.getChildByName('bg2').active = idx % 2 !== 0;
node.getChildByName('Rank').getChildByName('sp_1').active = idx === 0;
node.getChildByName('Rank').getChildByName('sp_2').active = idx === 1;
node.getChildByName('Rank').getChildByName('sp_3').active = idx === 2;
node.getChildByName('Rank').getChildByName('rankLab').active = idx >= 3;
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = itemData.Rank.toString();
node.getChildByName('Uid').getComponent(Label).string = truncateString(itemData.Uid);
node.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
node.getChildByName('Win').getComponent(Label).string = itemData.Bet.toString();
}
this.rankingListVScroll.refreshList(rankInfos.List);
this.refreshSelfRankingInfo(rankInfos.Self);
}
refreshSelfRankingInfo(selfInfo: any) {
if (!selfInfo) {
this.selfInfo.getChildByName('Rank').getChildByName('sp_1').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('sp_2').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('sp_3').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = true;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = '-';
this.selfInfo.getChildByName('Uid').getComponent(Label).string = '-';
this.selfInfo.getChildByName('Shop').getComponent(Label).string = '-';
this.selfInfo.getChildByName('Win').getComponent(Label).string = '-';
return;
}
this.selfInfo.getChildByName('Rank').getChildByName('sp_1').active = selfInfo.Rank === 1;
this.selfInfo.getChildByName('Rank').getChildByName('sp_2').active = selfInfo.Rank === 2;
this.selfInfo.getChildByName('Rank').getChildByName('sp_3').active = selfInfo.Rank === 3;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = selfInfo.Rank >= 4;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = selfInfo.Rank.toString();
if (selfInfo.Rank === -1) {
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = true;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = '-';
}
this.selfInfo.getChildByName('Uid').getComponent(Label).string = truncateString(selfInfo.Uid);
this.selfInfo.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Bet.toString();
}
// ==================== 按钮状态管理 ====================
updateRankButtonsAvailability() {
let rankList = SlotRankingDataManager.instance.rankList;
this.availableTypes.clear();
if (rankList && rankList.List) {
for (let item of rankList.List) {
this.availableTypes.add(item.Type);
}
}
this.updateButtonAvailability(this.rankRadioDayBtn);
this.updateButtonAvailability(this.rankRadioWeekBtn);
this.updateButtonAvailability(this.rankRadioMonthBtn);
}
updateButtonAvailability(btn: Node) {
btn.active = true;
let button = btn.getComponent(Button);
if (button) {
button.interactable = true;
}
let check = btn.getChildByName('check');
let unCheck = btn.getChildByName('unCheck');
let whiteColor = Color.WHITE;
if (check) {
let checkSprite = check.getComponent(Sprite);
if (checkSprite) {
checkSprite.color = whiteColor;
}
}
if (unCheck) {
let unCheckSprite = unCheck.getComponent(Sprite);
if (unCheckSprite) {
unCheckSprite.color = whiteColor;
}
}
}
setRankRadioBtn(type: string) {
let selectedColor = new Color(219, 180, 180, 255);
let unselectedColor = new Color(197, 255, 175, 255);
this.setRadioBtnState(this.rankRadioDayBtn, type === 'day', selectedColor, unselectedColor);
this.setRadioBtnState(this.rankRadioWeekBtn, type === 'week', selectedColor, unselectedColor);
this.setRadioBtnState(this.rankRadioMonthBtn, type === 'month', selectedColor, unselectedColor);
}
setRadioBtnState(btn: Node, isSelected: boolean, selectedColor: Color, unselectedColor: Color) {
let check = btn.getChildByName('check');
let unCheck = btn.getChildByName('unCheck');
let label = btn.getChildByName('label');
let palette = label?.getComponent(Palette);
if (isSelected) {
check.active = true;
unCheck.active = false;
if (palette) {
palette.colorLB = selectedColor;
palette.colorRB = selectedColor;
}
} else {
check.active = false;
unCheck.active = true;
if (palette) {
palette.colorLB = unselectedColor;
palette.colorRB = unselectedColor;
}
}
}
// ==================== 倒计时功能 ====================
setRankingEndTime(type: string) {
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
}
let endTime = SlotRankingDataManager.instance.getRankEndTimeByType(type);
if (!endTime) {
this.rankingEndTime.getComponent(Label).string = "--:--:--";
return;
}
this.updateCountdown(endTime);
this.countdownTimer = setInterval(() => {
this.updateCountdown(endTime);
}, 1000);
}
// 1. 客户端可定时通过HTTP请求轮询服务器定期拉取活动状态或结束时间如每分钟或每次切换排行榜时如果发现状态变为停止则立即处理。
// 2. 在每次需要用到活动信息前(如展示排行榜、下注等),都重新请求活动状态信息,避免缓存已过期的信息。
// 3. 可以在服务器接口响应中增加“活动状态”字段每次请求都返回当前的活动状态如active、stopped客户端据此判定。
// 4. 如有WebSocket等实时通道可让服务器主动推送“活动已结束”通知客户端收到后立刻更新活动状态并做相应提示。
// 5. 若客户端检测到接口数据异常(如活动相关接口返回错误代码、空列表或特定标记等),也可判定活动可能已停止并刷新状态。
updateCountdown(endTime: number) {
let now = Math.floor(Date.now() / 1000);
let remainingSeconds = endTime - now;
if (remainingSeconds <= 0) {
this.rankingEndTime.getComponent(Label).string = "--:--:--";
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
}
return;
}
let timeStr = this.formatCountdown(remainingSeconds);
this.rankingEndTime.getComponent(Label).string = I18nManager.instance.t('Countdown to end') + ' : ' + timeStr;
}
formatCountdown(seconds: number): string {
let days = Math.floor(seconds / 86400);
let hours = Math.floor((seconds % 86400) / 3600);
let minutes = Math.floor((seconds % 3600) / 60);
let secs = seconds % 60;
if (days >= 1) {
return `${days}d ${hours}h ${minutes}min ${secs}s`;
} else {
return `${hours}h ${minutes}min ${secs}s`;
}
}
// ==================== 按钮事件 ====================
onClickRankRadioDayBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.switchRankTab('day');
}
onClickRankRadioWeekBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.switchRankTab('week');
}
onClickRankRadioMonthBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.switchRankTab('month');
}
onClickRankHistoryBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.onShowHistory?.call(null, this.currentRankType || 'day');
}
onClickRewardBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.onShowReward?.call(null, this.currentRankType || 'day');
}
closeRankingPopup() {
this.onClose?.call(null);
}
// ==================== 工具方法 ====================
getCurrentDateString(): string {
let now = new Date();
let year = now.getFullYear();
let month = (now.getMonth() + 1).toString();
let day = now.getDate().toString();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
return `${year}${month}${day}`;
}
onDestroy() {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
this.rankingHistoryBtn.off(Node.EventType.TOUCH_END, this.onClickRankHistoryBtn, this);
this.rankingRewardBtn.off(Node.EventType.TOUCH_END, this.onClickRewardBtn, this);
this.rankRadioDayBtn.off(Node.EventType.TOUCH_END, this.onClickRankRadioDayBtn, this);
this.rankRadioWeekBtn.off(Node.EventType.TOUCH_END, this.onClickRankRadioWeekBtn, this);
this.rankRadioMonthBtn.off(Node.EventType.TOUCH_END, this.onClickRankRadioMonthBtn, this);
}
}

View File

@ -1,122 +0,0 @@
import { _decorator, Component, Label, Node, Tween, tween } from 'cc';
import { VirtualScrollView } from './VScrollView';
import { callGameApiForRank } from 'db://assets/Loading/scripts/comm';
import { I18nManager } from 'db://assets/Loading/scripts/manager/I18nManager';
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
const { ccclass, property } = _decorator;
@ccclass('RewardHistoryList')
export class RewardHistoryList extends Component {
rewardHistoryList: Node = null; // 历史记录列表节点
rewardHistoryLoadingNode: Node = null; // 历史记录加载节点
closeBtn: Node = null; // 关闭按钮
rewardHistoryListVScroll: VirtualScrollView = null; // 历史记录列表虚拟列表
historyData: any[] = [];
// 回调函数
onBack: () => void = null;
init(rewardHistoryListNode: Node) {
this.rewardHistoryList = rewardHistoryListNode;
this.rewardHistoryLoadingNode = this.rewardHistoryList.getChildByName('list').getChildByName('loading');
this.rewardHistoryListVScroll = this.rewardHistoryList.getChildByName('list').getChildByName('vScroll').getComponent(VirtualScrollView);
this.closeBtn = this.rewardHistoryList.getChildByName('closeHistory');
this.rewardHistoryList.active = false;
this.rewardHistoryLoadingNode.active = false;
this.closeBtn.on(Node.EventType.TOUCH_END, this.onClickCloseBtn, this);
}
// ==================== 对外接口 ====================
async show() {
this.rewardHistoryList.active = true;
await this.loadHistoryData();
}
hide() {
this.rewardHistoryList.active = false;
}
// ==================== 历史记录逻辑 ====================
async loadHistoryData() {
this.rewardHistoryListVScroll.setTotalCount(0);
Tween.stopAllByTarget(this.rewardHistoryLoadingNode);
this.rewardHistoryLoadingNode.active = true;
tween(this.rewardHistoryLoadingNode)
.by(0.3, { angle: 360 })
.repeatForever()
.start();
try {
let historyData = await callGameApiForRank('getRewardsHistory', {});
Tween.stopAllByTarget(this.rewardHistoryLoadingNode);
this.rewardHistoryLoadingNode.active = false;
this.openHistoryPopup(historyData);
} catch (error) {
console.error('获取奖励历史记录失败:', error);
Tween.stopAllByTarget(this.rewardHistoryLoadingNode);
this.rewardHistoryLoadingNode.active = false;
}
}
openHistoryPopup(historyData: any) {
if (!historyData || !historyData.List || historyData.List.length === 0) {
this.rewardHistoryListVScroll.setTotalCount(0);
return;
}
this.historyData = historyData.List;
this.rewardHistoryListVScroll.setTotalCount(this.historyData.length);
this.rewardHistoryListVScroll.renderItemFn = (node: Node, idx: number) => {
let itemData = this.historyData[idx];
if (!itemData) {
return;
}
let typeMap: { [key: string]: string } = {
'day': I18nManager.instance.t('Daily Ranking'),
'week': I18nManager.instance.t('Weekly Ranking'),
'month': I18nManager.instance.t('Monthly Ranking')
};
let typeLabel = typeMap[itemData.Type] || itemData.Type;
node.getChildByName('Activity').getComponent(Label).string = typeLabel;
node.getChildByName('ActivityTime').getComponent(Label).string = itemData.Date;
node.getChildByName('Rank').getChildByName('sp_1').active = itemData.Rank === 1;
node.getChildByName('Rank').getChildByName('sp_2').active = itemData.Rank === 2;
node.getChildByName('Rank').getChildByName('sp_3').active = itemData.Rank === 3;
node.getChildByName('Rank').getChildByName('rankLab').active = itemData.Rank >= 4;
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = itemData.Rank.toString();
node.getChildByName('Win').getComponent(Label).string = itemData.Rewards.toString();
let received = node.getChildByName('HasReceived').getChildByName('received');
let unReceived = node.getChildByName('HasReceived').getChildByName('unReceived');
received.active = true;
unReceived.active = false;
}
this.rewardHistoryListVScroll.refreshList(this.historyData);
}
// ==================== 按钮事件 ====================
onClickCloseBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.onBack?.call(null);
}
onDestroy() {
if (this.closeBtn) {
this.closeBtn.off(Node.EventType.TOUCH_END, this.onClickCloseBtn, this);
}
}
}

View File

@ -1,514 +0,0 @@
import { _decorator, Button, Color, Component, Label, Node, Sprite, Tween, tween } from 'cc';
import { VirtualScrollView } from './VScrollView';
import { Palette } from './Palette';
import { SlotRankingDataManager } from './SlotRankingDataManager';
import { callGameApiForRank } from 'db://assets/Loading/scripts/comm';
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
import { I18nManager } from 'db://assets/Loading/scripts/manager/I18nManager';
const { ccclass, property } = _decorator;
@ccclass('RewardList')
export class RewardList extends Component {
rewardList: Node = null; // 奖励列表节点
rewardLoadingNode: Node = null; // 奖励加载动画节点
// 奖励列表 - 虚拟列表
rewardListVScroll: VirtualScrollView = null; // 奖励列表虚拟列表
// 奖励列表 - 日周月切换
rewardRadioDWM: Node = null; // 奖励日周月单选按钮父节点
rewardRadioDayBtn: Node = null; // 奖励日榜单选按钮
rewardRadioWeekBtn: Node = null; // 奖励周榜单选按钮
rewardRadioMonthBtn: Node = null; // 奖励月榜单选按钮
rewardHistoryBtn: Node = null; // 历史记录按钮
rewardReceivedBtn: Node = null; // 一键领奖按钮
rewardBackBtn: Node = null; // 返回排行榜按钮
selfRewardListVScroll: VirtualScrollView = null; // 自己的奖励列表虚拟列表
// 活动未开启提示
activityNotOpenTip: Node = null; // 活动未开启提示 label
currentRewardType: string = '';
countdownTimer: any = null; // 存储定时器
availableTypes: Set<string> = new Set(); // 可用的类型
rewardsData: any = null; // 奖励数据
selfRewardsList: any[] = []; // 自己的奖励列表
isReceiving: boolean = false; // 是否正在领取中
slotScene: any = null; // SlotScene 引用
// 回调函数
onShowHistory: (type: string) => void = null; // 跳转到领奖记录
onShowRank: (type: string) => void = null; // 跳转回排行榜
onClose: () => void = null; // 关闭主弹窗
init(rewardListNode: Node) {
this.rewardList = rewardListNode;
this.rewardLoadingNode = this.rewardList.getChildByName('list').getChildByName('loading');
this.rewardListVScroll = this.rewardList.getChildByName('list').getChildByName('vScroll').getComponent(VirtualScrollView);
this.rewardRadioDWM = this.rewardList.getChildByName('rewardRadioDWM');
this.rewardRadioDayBtn = this.rewardRadioDWM.getChildByName('dayBtn');
this.rewardRadioWeekBtn = this.rewardRadioDWM.getChildByName('weekBtn');
this.rewardRadioMonthBtn = this.rewardRadioDWM.getChildByName('monthBtn');
this.rewardHistoryBtn = this.rewardList.getChildByName('history');
this.rewardReceivedBtn = this.rewardList.getChildByName('receiveBtn');
let radioTitle = this.rewardList.getChildByName('radioTitle');
this.rewardBackBtn = radioTitle.getChildByName('rankBtn');
this.selfRewardListVScroll = this.rewardList.getChildByName('selfRewardList').getChildByName('vScroll').getComponent(VirtualScrollView);
this.activityNotOpenTip = this.rewardList.getChildByName('list').getChildByName('activityNotOpenTip');
this.rewardList.active = false;
this.rewardLoadingNode.active = false;
this.activityNotOpenTip.active = false;
this.rewardHistoryBtn.on(Node.EventType.TOUCH_END, this.onClickHistoryBtn, this);
this.rewardReceivedBtn.on(Node.EventType.TOUCH_END, this.onClickReceiveBtn, this);
this.rewardBackBtn.on(Node.EventType.TOUCH_END, this.onClickBackBtn, this);
this.rewardRadioDayBtn.on(Node.EventType.TOUCH_END, this.onClickRewardRadioDayBtn, this);
this.rewardRadioWeekBtn.on(Node.EventType.TOUCH_END, this.onClickRewardRadioWeekBtn, this);
this.rewardRadioMonthBtn.on(Node.EventType.TOUCH_END, this.onClickRewardRadioMonthBtn, this);
}
// ==================== 对外接口 ====================
setSlotScene(slotScene: any) {
this.slotScene = slotScene;
}
async show(defaultType: string = 'day') {
this.rewardList.active = true;
this.currentRewardType = '';
this.updateRewardButtonsAvailability();
await this.switchRewardTab(defaultType);
}
hide() {
this.rewardList.active = false;
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
}
}
getCurrentType(): string {
return this.currentRewardType;
}
// ==================== 奖励列表逻辑 ====================
isTypeAvailable(type: string): boolean {
return this.availableTypes.has(type);
}
showActivityNotOpenTip() {
this.activityNotOpenTip.active = true;
this.rewardListVScroll.setTotalCount(0);
}
async switchRewardTab(type: string) {
if (this.currentRewardType === type) {
return;
}
this.currentRewardType = type;
this.setRewardRadioBtn(type);
if (!this.isTypeAvailable(type) || SlotRankingDataManager.instance.getRankListStatusByType(type) !== 0) {
console.log(`${type} 奖励榜单活动未开启`);
this.rewardLoadingNode.active = false;
this.showActivityNotOpenTip();
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
}
return;
}
this.activityNotOpenTip.active = false;
this.rewardListVScroll.setTotalCount(0);
this.selfRewardListVScroll.setTotalCount(0);
Tween.stopAllByTarget(this.rewardLoadingNode);
this.rewardLoadingNode.active = true;
tween(this.rewardLoadingNode)
.by(0.3, { angle: 360 })
.repeatForever()
.start();
this.setRewardEndTime(type);
try {
let rewardsData = await callGameApiForRank('rewardsList', {});
this.rewardsData = rewardsData;
Tween.stopAllByTarget(this.rewardLoadingNode);
this.rewardLoadingNode.active = false;
this.openRewardPopup();
this.openSelfRewardPopup();
} catch (error) {
console.error('获取奖励列表数据失败:', error);
this.showActivityNotOpenTip();
Tween.stopAllByTarget(this.rewardLoadingNode);
this.rewardLoadingNode.active = false;
}
}
openRewardPopup() {
let rankList = SlotRankingDataManager.instance.rankList;
if (!rankList || !rankList.List) {
this.rewardListVScroll.setTotalCount(0);
return;
}
let currentActivity = rankList.List.find((item: any) => item.Type === this.currentRewardType);
if (!currentActivity || !currentActivity.Rewards || currentActivity.Rewards.length === 0) {
this.rewardListVScroll.setTotalCount(0);
return;
}
let rewards = currentActivity.Rewards;
this.rewardListVScroll.setTotalCount(rewards.length);
this.rewardListVScroll.renderItemFn = (node: Node, idx: number) => {
let rewardAmount = rewards[idx];
if (rewardAmount === undefined) {
return;
}
let rank = idx + 1;
node.getChildByName('bg').active = idx % 2 === 0;
node.getChildByName('bg2').active = idx % 2 !== 0;
node.getChildByName('Rank').getChildByName('sp_1').active = rank === 1;
node.getChildByName('Rank').getChildByName('sp_2').active = rank === 2;
node.getChildByName('Rank').getChildByName('sp_3').active = rank === 3;
node.getChildByName('Rank').getChildByName('rankLab').active = rank >= 4;
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = rank.toString();
node.getChildByName('Win').getComponent(Label).string = rewardAmount.toString();
}
this.rewardListVScroll.refreshList(rewards);
}
openSelfRewardPopup() {
if (!this.rewardsData) {
this.selfRewardListVScroll.setTotalCount(0);
return;
}
this.selfRewardsList = [];
if (this.rewardsData.DayRanks && this.rewardsData.DayRanks.length > 0) {
for (let item of this.rewardsData.DayRanks) {
this.selfRewardsList.push({ ...item, TypeLabel: I18nManager.instance.t('Daily Ranking') });
}
}
if (this.rewardsData.WeekRanks && this.rewardsData.WeekRanks.length > 0) {
for (let item of this.rewardsData.WeekRanks) {
this.selfRewardsList.push({ ...item, TypeLabel: I18nManager.instance.t('Weekly Ranking') });
}
}
if (this.rewardsData.MonthRanks && this.rewardsData.MonthRanks.length > 0) {
for (let item of this.rewardsData.MonthRanks) {
this.selfRewardsList.push({ ...item, TypeLabel: I18nManager.instance.t('Monthly Ranking') });
}
}
if (this.selfRewardsList.length === 0) {
this.selfRewardListVScroll.setTotalCount(0);
return;
}
this.selfRewardListVScroll.setTotalCount(this.selfRewardsList.length);
this.selfRewardListVScroll.renderItemFn = (node: Node, idx: number) => {
let itemData = this.selfRewardsList[idx];
if (!itemData) {
return;
}
node.getChildByName('Activity').getComponent(Label).string = itemData.TypeLabel;
let activityTime = itemData.Id.split('_')[0];
node.getChildByName('ActivityTime').getComponent(Label).string = activityTime;
node.getChildByName('Rank').getChildByName('sp_1').active = itemData.Rank === 1;
node.getChildByName('Rank').getChildByName('sp_2').active = itemData.Rank === 2;
node.getChildByName('Rank').getChildByName('sp_3').active = itemData.Rank === 3;
node.getChildByName('Rank').getChildByName('rankLab').active = itemData.Rank >= 4;
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = itemData.Rank.toString();
node.getChildByName('Win').getComponent(Label).string = itemData.Rewards.toString();
let received = node.getChildByName('HasReceived').getChildByName('received');
let unReceived = node.getChildByName('HasReceived').getChildByName('unReceived');
received.active = itemData.IsPrize;
unReceived.active = !itemData.IsPrize;
}
this.selfRewardListVScroll.refreshList(this.selfRewardsList);
}
// ==================== 一键领奖 ====================
async receiveAllRewards() {
if (this.isReceiving) {
console.log('正在领取中,请稍候...');
return;
}
// 收集所有未领取的奖励ID
let pendingIds: string[] = [];
for (let item of this.selfRewardsList) {
if (!item.IsPrize) {
pendingIds.push(item.Id);
}
}
if (pendingIds.length === 0) {
console.log('没有可领取的奖励');
return;
}
this.isReceiving = true;
this.setButtonsInteractable(false);
try {
// 一次性发送所有ID
let result = await callGameApiForRank('getRewards', { Ids: pendingIds });
console.log('一键领奖成功', result);
// 处理返回的成功ID数组
if (result && result.Ids && Array.isArray(result.Ids)) {
// 更新成功领取的item状态
for (let successId of result.Ids) {
let item = this.selfRewardsList.find((item: any) => item.Id === successId);
if (item) {
item.IsPrize = true;
}
}
// 刷新列表显示
this.selfRewardListVScroll.refreshList(this.selfRewardsList);
// 更新 slotScene 的 balance
if (result.Balance !== undefined && this.slotScene && this.slotScene.slotBar) {
this.slotScene.slotBar.setBalance(result.Balance);
}
console.log(`成功领取 ${result.Ids.length} 个奖励,新余额: ${result.Balance}`);
} else {
console.warn('领奖返回数据格式异常', result);
}
} catch (error) {
console.error('一键领奖失败', error);
} finally {
this.isReceiving = false;
this.setButtonsInteractable(true);
}
}
setButtonsInteractable(interactable: boolean) {
let receiveBtn = this.rewardReceivedBtn.getComponent(Button);
if (receiveBtn) {
receiveBtn.interactable = interactable;
}
let backBtn = this.rewardBackBtn.getComponent(Button);
if (backBtn) {
backBtn.interactable = interactable;
}
let historyBtn = this.rewardHistoryBtn.getComponent(Button);
if (historyBtn) {
historyBtn.interactable = interactable;
}
let dayBtn = this.rewardRadioDayBtn.getComponent(Button);
if (dayBtn) {
dayBtn.interactable = interactable;
}
let weekBtn = this.rewardRadioWeekBtn.getComponent(Button);
if (weekBtn) {
weekBtn.interactable = interactable;
}
let monthBtn = this.rewardRadioMonthBtn.getComponent(Button);
if (monthBtn) {
monthBtn.interactable = interactable;
}
}
// ==================== 按钮状态管理 ====================
updateRewardButtonsAvailability() {
let rankList = SlotRankingDataManager.instance.rankList;
this.availableTypes.clear();
if (rankList && rankList.List) {
for (let item of rankList.List) {
this.availableTypes.add(item.Type);
}
}
this.updateButtonAvailability(this.rewardRadioDayBtn);
this.updateButtonAvailability(this.rewardRadioWeekBtn);
this.updateButtonAvailability(this.rewardRadioMonthBtn);
}
updateButtonAvailability(btn: Node) {
btn.active = true;
let button = btn.getComponent(Button);
if (button) {
button.interactable = true;
}
let check = btn.getChildByName('check');
let unCheck = btn.getChildByName('unCheck');
let whiteColor = Color.WHITE;
if (check) {
let checkSprite = check.getComponent(Sprite);
if (checkSprite) {
checkSprite.color = whiteColor;
}
}
if (unCheck) {
let unCheckSprite = unCheck.getComponent(Sprite);
if (unCheckSprite) {
unCheckSprite.color = whiteColor;
}
}
}
setRewardRadioBtn(type: string) {
let selectedColor = new Color(57, 1, 3, 255);
let unselectedColor = new Color(37, 78, 21, 255);
this.setRadioBtnState(this.rewardRadioDayBtn, type === 'day', selectedColor, unselectedColor);
this.setRadioBtnState(this.rewardRadioWeekBtn, type === 'week', selectedColor, unselectedColor);
this.setRadioBtnState(this.rewardRadioMonthBtn, type === 'month', selectedColor, unselectedColor);
}
setRadioBtnState(btn: Node, isSelected: boolean, selectedColor: Color, unselectedColor: Color) {
let check = btn.getChildByName('check');
let unCheck = btn.getChildByName('unCheck');
let label = btn.getChildByName('label');
let palette = label?.getComponent(Palette);
if (isSelected) {
check.active = true;
unCheck.active = false;
if (palette) {
palette.colorLB = selectedColor;
palette.colorRB = selectedColor;
}
} else {
check.active = false;
unCheck.active = true;
if (palette) {
palette.colorLB = unselectedColor;
palette.colorRB = unselectedColor;
}
}
}
// ==================== 倒计时功能 ====================
setRewardEndTime(type: string) {
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
}
let endTime = SlotRankingDataManager.instance.getRankEndTimeByType(type);
this.updateCountdown(endTime);
this.countdownTimer = setInterval(() => {
this.updateCountdown(endTime);
}, 1000);
}
updateCountdown(endTime: number) {
let now = Math.floor(Date.now() / 1000);
let remainingSeconds = endTime - now;
if (remainingSeconds <= 0) {
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
}
return;
}
let timeStr = this.formatCountdown(remainingSeconds);
}
formatCountdown(seconds: number): string {
let days = Math.floor(seconds / 86400);
let hours = Math.floor((seconds % 86400) / 3600);
let minutes = Math.floor((seconds % 3600) / 60);
let secs = seconds % 60;
if (days >= 1) {
return `${days}d ${hours}h ${minutes}min ${secs}s`;
} else {
return `${hours}h ${minutes}min ${secs}s`;
}
}
// ==================== 按钮事件 ====================
onClickRewardRadioDayBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.switchRewardTab('day');
}
onClickRewardRadioWeekBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.switchRewardTab('week');
}
onClickRewardRadioMonthBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.switchRewardTab('month');
}
onClickHistoryBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.onShowHistory?.call(null, this.currentRewardType || 'day');
}
onClickReceiveBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.receiveAllRewards();
}
onClickBackBtn() {
AudioManager.instance.playSFX("Common_Button_Click");
this.onShowRank?.call(null, this.currentRewardType || 'day');
}
onDestroy() {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
this.rewardHistoryBtn.off(Node.EventType.TOUCH_END, this.onClickHistoryBtn, this);
this.rewardReceivedBtn.off(Node.EventType.TOUCH_END, this.onClickReceiveBtn, this);
this.rewardBackBtn.off(Node.EventType.TOUCH_END, this.onClickBackBtn, this);
this.rewardRadioDayBtn.off(Node.EventType.TOUCH_END, this.onClickRewardRadioDayBtn, this);
this.rewardRadioWeekBtn.off(Node.EventType.TOUCH_END, this.onClickRewardRadioWeekBtn, this);
this.rewardRadioMonthBtn.off(Node.EventType.TOUCH_END, this.onClickRewardRadioMonthBtn, this);
}
}

View File

@ -1,9 +0,0 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "822e651d-8015-44fa-90d7-2cd5a93cb6af",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -1,363 +0,0 @@
import { _decorator, Button, Color, Component, EventTouch, Node, sp, Sprite, tween, UITransform, v3, Vec3 } from 'cc';
import { RankList } from './RankList';
import { RankHistoryList } from './RankHistoryList';
import { RewardList } from './RewardList';
import { RewardHistoryList } from './RewardHistoryList';
import { SlotRankingDataManager } from './SlotRankingDataManager';
import { callGameApiForRank, getGameId } from 'db://assets/Loading/scripts/comm';
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
import { SlotScene } from '../../scripts/SlotScene';
const { ccclass, property } = _decorator;
@ccclass('SlotRanking')
export class SlotRanking extends Component {
// ==================== 排行榜入口 ====================
rankingBtn: Node = null; // 排行榜入口按钮
// ==================== 主弹窗节点 ====================
rankingRewardNode: Node = null; // 排行榜弹窗主节点
@property(RankList)
rankList: RankList = null;
@property(RankHistoryList)
rankHistoryList: RankHistoryList = null;
@property(RewardList)
rewardList: RewardList = null;
@property(RewardHistoryList)
rewardHistoryList: RewardHistoryList = null;
// 设计分辨率
DESIGN_WIDTH: number = 1080;
DESIGN_HEIGHT: number = 1920;
slotScene: SlotScene = null; // SlotScene 引用
isMove: boolean = false; // 是否是拖动状态
isClick: boolean = false; // 是否是点击状态
startPos: Vec3 = v3(432, 650, 0);
touchStartPos: Vec3 = v3(0, 0, 0); // 触摸开始位置(世界坐标)
nodeStartPos: Vec3 = v3(0, 0, 0); // 节点开始位置
uiTransform: UITransform = null; // 节点UI变换组件
parentUITransform: UITransform = null; // 父节点UI变换组件
async onLoad() {
this.rankingBtn = this.node.getChildByName("rankingBtn");
this.rankingRewardNode = this.node.getChildByName("rankingRewardNode");
this.rankingBtn.active = false;
this.rankingRewardNode.active = false;
try {
let rankList = await callGameApiForRank("ranklist", { GameId: getGameId() });
if (!rankList || !rankList.List || rankList.List.length === 0) {
return;
}
SlotRankingDataManager.instance.rankList = rankList;
} catch (error) {
return;
}
this.rankingBtn = this.node.getChildByName("rankingBtn");
this.rankingRewardNode = this.node.getChildByName("rankingRewardNode");
this.uiTransform = this.rankingBtn.getComponent(UITransform);
this.parentUITransform = this.rankingBtn.parent.getComponent(UITransform);
this.initComponents();
this.rankingBtn.setPosition(this.startPos);
this.rankingBtn.active = SlotRankingDataManager.instance.getRankListStatus() === 0 || SlotRankingDataManager.instance.getRankListStatus() === 1 || SlotRankingDataManager.instance.getRankMaxCloseTimeIsBiggerThanCurTime();
this.rankingBtn.getComponent(Button).interactable = SlotRankingDataManager.instance.getRankListStatus() === 0;
this.rankingBtn.getChildByName('icon').getComponent(sp.Skeleton).color = SlotRankingDataManager.instance.getRankListStatus() === 0 ? Color.WHITE : Color.GRAY;
this.rankingBtn.on(Node.EventType.TOUCH_START, this.onTouchStart, this);
this.rankingBtn.on(Node.EventType.TOUCH_MOVE, this.onTouchMove, this);
this.rankingBtn.on(Node.EventType.TOUCH_CANCEL, this.onTouchCancel, this);
this.rankingBtn.on(Node.EventType.TOUCH_END, this.onTouchEnd, this);
this.rankingRewardNode.active = false;
}
initComponents() {
this.rankList.init(this.rankingRewardNode.getChildByName('rankList'));
this.rankList.onShowHistory = (type: string) => {
this.showRankHistoryList(type);
};
this.rankList.onShowReward = (type: string) => {
this.showRewardListFromRank(type);
};
this.rankList.onClose = () => {
this.closeRankingPopup();
};
this.rankHistoryList.init(this.rankingRewardNode.getChildByName('rankHistoryList'));
this.rankHistoryList.onBack = () => {
this.showRankList();
};
this.rewardList.init(this.rankingRewardNode.getChildByName('rewardList'));
this.rewardList.onShowRank = (type: string) => {
this.showRankListFromReward(type);
};
this.rewardList.onShowHistory = () => {
this.showRewardHistoryList();
};
this.rewardHistoryList.onBack = () => {
this.showRewardList();
};
this.rewardHistoryList.init(this.rankingRewardNode.getChildByName('rewardHistoryList'));
this.rewardList.onClose = () => {
this.closeRankingPopup();
};
}
setSlotScene(slotScene: SlotScene) {
this.slotScene = slotScene;
// 将 slotScene 引用传递给 RewardList
if (this.rewardList) {
this.rewardList.setSlotScene(slotScene);
}
}
// 检查是否可以点击排行榜按钮
canClickRankingBtn(): boolean {
console.log('slotScene', this.slotScene)
if (!this.slotScene) return true;
console.log('isAutoSpin', this.slotScene.gameState.isAutoSpin)
console.log('isInFreeSpin', this.slotScene.gameState.isInFreeSpin)
console.log('isFeatureBuySpin', this.slotScene.gameState.isFeatureBuySpin)
console.log('isEliminating', this.slotScene.gameState.isEliminating)
// 如果正在滚动,不可点击
if (this.slotScene.slotGame && this.slotScene.slotGame.isScroll()) {
return false;
}
// 如果正在自动旋转,不可点击
if (this.slotScene.gameState.isAutoSpin) {
return false;
}
if (this.slotScene.gameState.isInFreeSpin) {
return false;
}
if (this.slotScene.gameState.isFeatureBuySpin) {
return false;
}
if (this.slotScene.gameState.isEliminating) {
return false;
}
if (!this.rankingBtn.getComponent(Button).interactable) {
return false;
}
return true;
}
// ==================== 触摸事件处理 ====================
onTouchStart(event: EventTouch) {
this.isMove = false;
this.isClick = true;
let touchPos = event.getUILocation();
if (this.parentUITransform) {
let localPos = this.parentUITransform.convertToNodeSpaceAR(v3(touchPos.x, touchPos.y, 0));
this.touchStartPos.set(localPos);
} else {
this.touchStartPos.set(v3(touchPos.x, touchPos.y, 0));
}
this.nodeStartPos.set(this.rankingBtn.position);
}
onTouchMove(event: EventTouch) {
if (!this.isClick) return;
this.isMove = true;
let touchPos = event.getUILocation();
let currentTouchPos;
if (this.parentUITransform) {
currentTouchPos = this.parentUITransform.convertToNodeSpaceAR(v3(touchPos.x, touchPos.y, 0));
} else {
currentTouchPos = v3(touchPos.x, touchPos.y, 0);
}
let deltaX = currentTouchPos.x - this.touchStartPos.x;
let deltaY = currentTouchPos.y - this.touchStartPos.y;
let newX = this.nodeStartPos.x + deltaX;
let newY = this.nodeStartPos.y + deltaY;
let clampedPos = this.clampPosition(newX, newY);
this.rankingBtn.setPosition(v3(clampedPos.x, clampedPos.y, 0));
}
onTouchCancel(event: EventTouch) {
if (this.isClick && !this.isMove) return;
if (this.isMove) {
this.snapToEdge();
}
this.isMove = false;
this.isClick = false;
}
onTouchEnd(event: EventTouch) {
if (this.isMove) {
this.snapToEdge();
this.isMove = false;
this.isClick = false;
return;
}
console.log('isClick', this.isClick)
if (this.isClick) {
// 检查是否可以点击
if (!this.canClickRankingBtn()) {
this.isMove = false;
this.isClick = false;
return;
}
this.handleClickEvent();
}
this.isMove = false;
this.isClick = false;
}
clampPosition(newX: number, newY: number): { x: number, y: number } {
if (this.uiTransform) {
let nodeWidth = this.uiTransform.width;
let nodeHeight = this.uiTransform.height;
let anchorX = this.uiTransform.anchorX;
let anchorY = this.uiTransform.anchorY;
let leftBound = -this.DESIGN_WIDTH / 2 + nodeWidth * anchorX;
let rightBound = this.DESIGN_WIDTH / 2 - nodeWidth * (1 - anchorX);
let bottomBound = -this.DESIGN_HEIGHT / 2 + nodeHeight * anchorY;
let topBound = this.DESIGN_HEIGHT / 2 - nodeHeight * (1 - anchorY);
newX = Math.max(leftBound, Math.min(rightBound, newX));
newY = Math.max(bottomBound, Math.min(topBound, newY));
} else {
let halfWidth = this.DESIGN_WIDTH / 2;
let halfHeight = this.DESIGN_HEIGHT / 2;
newX = Math.max(-halfWidth, Math.min(halfWidth, newX));
newY = Math.max(-halfHeight, Math.min(halfHeight, newY));
}
return { x: newX, y: newY };
}
snapToEdge() {
let currentPos = this.rankingBtn.position;
let screenCenterX = 0;
let targetX: number;
if (this.uiTransform) {
let nodeWidth = this.uiTransform.width;
let anchorX = this.uiTransform.anchorX;
if (currentPos.x > screenCenterX) {
targetX = this.DESIGN_WIDTH / 2 - nodeWidth * (1 - anchorX);
} else {
targetX = -this.DESIGN_WIDTH / 2 + nodeWidth * anchorX;
}
} else {
let edgeMargin = 20;
if (currentPos.x > screenCenterX) {
targetX = this.DESIGN_WIDTH / 2 - edgeMargin;
} else {
targetX = -this.DESIGN_WIDTH / 2 + edgeMargin;
}
}
tween(this.rankingBtn)
.to(0.05, { position: v3(targetX, currentPos.y, 0) })
.start();
}
// ==================== 主弹窗控制 ====================
async handleClickEvent() {
AudioManager.instance.playSFX("Common_Button_Click");
this.rankingRewardNode.active = true;
await this.showRankList('day');
}
async showRankList(defaultType: string = 'day') {
this.rankHistoryList.hide();
this.rewardList.hide();
this.rewardHistoryList.hide();
await this.rankList.show(defaultType);
}
showRankHistoryList(type: string) {
this.rankList.hide();
this.rewardList.hide();
this.rewardHistoryList.hide();
this.rankHistoryList.show(type);
}
async showRankListFromReward(rewardType: string) {
this.rewardList.hide();
this.rankHistoryList.hide();
this.rewardHistoryList.hide();
await this.rankList.show(rewardType);
}
showRewardHistoryList() {
this.rankList.hide();
this.rankHistoryList.hide();
this.rewardList.hide();
this.rewardHistoryList.show();
}
async showRewardList(defaultType: string = 'day') {
this.rankList.hide();
this.rankHistoryList.hide();
this.rewardHistoryList.hide();
await this.rewardList.show(defaultType);
}
async showRewardListFromRank(rankType: string) {
this.rankList.hide();
this.rankHistoryList.hide();
this.rewardHistoryList.hide();
await this.rewardList.show(rankType);
}
closeRankingPopup() {
this.rankingRewardNode.active = false;
this.rankList.hide();
this.rankHistoryList.hide();
this.rewardList.hide();
this.rewardHistoryList.hide();
}
setStartPosition(pos: Vec3) {
this.startPos.set(pos);
this.rankingBtn.setPosition(pos);
}
onDestroy() {
this.rankingBtn.off(Node.EventType.TOUCH_START, this.onTouchStart, this);
this.rankingBtn.off(Node.EventType.TOUCH_MOVE, this.onTouchMove, this);
this.rankingBtn.off(Node.EventType.TOUCH_CANCEL, this.onTouchCancel, this);
this.rankingBtn.off(Node.EventType.TOUCH_END, this.onTouchEnd, this);
}
}

View File

@ -1,9 +0,0 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "e9415bc6-3200-4c15-a5d0-f4b2339c16ec",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -1,158 +0,0 @@
export class SlotRankingDataManager {
static _instance: SlotRankingDataManager = null;
static get instance(): SlotRankingDataManager {
if (!this._instance) {
this._instance = new SlotRankingDataManager();
}
return this._instance;
}
_rankList: any = null;
set rankList(list: any) { this._rankList = list; }
get rankList(): any { return this._rankList; }
/**
*
* {
"List": [
{
"Id": "20251225_day_faketrans-VND",
"Name": "",
"Type": "day",
"StartTime": 1766592000,
"EndTime": 1766689200,
"CloseTime": 1766775600,
"Status": 0,
"Rewards": [
10,
8,
5,
3,
3,
3,
3,
3,
3,
3
],
"SpinLimit": 10,
"BetLimit": 1000000
},
{
"Id": "20251222_week_faketrans-VND",
"Name": "",
"Type": "week",
"StartTime": 1766592000,
"EndTime": 1766678400,
"CloseTime": 1766764800,
"Status": 0,
"Rewards": [
10,
5,
5,
5,
5,
5,
5,
5,
5,
5
],
"SpinLimit": 10,
"BetLimit": 5000000
}
]
}
*/
getRankMaxCloseTimeIsBiggerThanCurTime(): boolean {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
// 代表当前没有活动开启,则说明关闭入口按钮
return false;
}
let maxCloseTime = 0;
for (let item of this._rankList.List) {
if (item.CloseTime > maxCloseTime) {
maxCloseTime = item.CloseTime;
}
}
return Date.now() <= (maxCloseTime * 1000);
}
getRankListStatusByType(type: string): number {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return 2;
}
let item = this._rankList.List.find((item: any) => item.Type === type);
return item ? item.Status : 2;
}
getRankListStatus(): number {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return 2;
}
let hasEnabled = false; // 是否有启用的
let hasMaintenance = false; // 是否有维护的
for (let item of this._rankList.List) {
if (item.Status === 0) {
hasEnabled = true;
break;
} else if (item.Status === 1) {
hasMaintenance = true;
}
}
if (hasEnabled) {
return 0;
}
if (hasMaintenance) {
return 1;
}
return 2;
}
getRankListServerId(): string | null {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return null;
}
let id = this._rankList.List[0].Id;
if (!id) {
return null;
}
let parts = id.split('_');
if (parts.length >= 3) {
return parts[2];
}
return null;
}
getRankEndTimeByType(type: string): number | null {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return null;
}
let item = this._rankList.List.find((item: any) => item.Type === type);
return item ? item.EndTime : null;
}
getRankInfoByType(type: string): any | null {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return null;
}
let item = this._rankList.List.find((item: any) => item.Type === type);
return item || null;
}
}

View File

@ -1,9 +0,0 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "54eb3ccb-500c-4075-b108-6b21d7cfe65e",
"files": [],
"subMetas": {},
"userData": {}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +0,0 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "f94d0735-0c94-4946-9d3f-545a3522f123",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -1,219 +0,0 @@
//@ts-ignore
import { _decorator, Component, Node, EventTouch, Vec2, Label, Tween, tween, Vec3, settings, Sorting2D, RichText, sys } from 'cc';
const { ccclass } = _decorator;
const hasSorting2d = Sorting2D !== undefined;
if (!hasSorting2d) {
// console.warn(`❌当前引擎版本不支持Sorting2D组件如果需要请切换到3.8.7及以上版本`);
}
/**
* UI节点的渲染排序层级
* @param sortingNode Node
* @param sortingLayer number
* @param sortingOrder number
*/
export function changeUISortingLayer(sortingNode: Node, sortingLayer: number, sortingOrder?: number) {
if (!hasSorting2d) {
return;
}
let sortingLayers = settings.querySettings('engine', 'sortingLayers') as any[];
//编辑器bug,默认有default,但是读取出来没有,需要自己配置一个后才会有默认数据.
if (!sortingLayers || sortingLayers.length === 0) {
sortingLayers = [{ id: 0, value: 0, name: 'default' }];
}
const result = sortingLayers.find(layer => layer.value === sortingLayer);
//如果没有找到对应的layer,则使用引擎内置默认层,并给出警告
if (!result) {
console.warn(`❌未找到对应的sortingLayer:${sortingLayer},请检查是否已在项目设置中配置该层级。将使用默认层级代替。`);
sortingLayer = sortingLayers[0].value;
}
const sort2d = sortingNode.getComponent(Sorting2D) || sortingNode.addComponent(Sorting2D);
if (sort2d) {
//@ts-ignore
sort2d.sortingLayer = sortingLayer;
if (sortingOrder !== undefined) {
//@ts-ignore
sort2d.sortingOrder = sortingOrder;
}
}
}
/**
* item
*
*/
@ccclass('VScrollViewItem')
export class VScrollViewItem extends Component {
/** 当前 item 对应的数据索引 */
public dataIndex: number = -1;
public useItemClickEffect: boolean = true;
/** 点击回调(由 VirtualScrollView 注入) */
public onClickCallback: ((index: number) => void) | null = null;
/** 长按回调(由 VirtualScrollView 注入) */
public onLongPressCallback: ((index: number) => void) | null = null;
/** 长按触发时长(秒) */
public longPressTime: number = 0.6;
private _touchStartNode: Node | null = null;
private _isCanceled: boolean = false;
private _startPos: Vec2 = new Vec2();
private _moveThreshold: number = 40; // 滑动阈值
private _clickThreshold: number = 10; // 点击阈值
private _longPressTimer: number = 0; // 长按计时器
private _isLongPressed: boolean = false; // 是否已触发长按
onLoad() {
// 一次性注册事件,生命周期内不变
this.node.on(Node.EventType.TOUCH_START, this._onTouchStart, this);
this.node.on(Node.EventType.TOUCH_MOVE, this._onTouchMove, this);
this.node.on(Node.EventType.TOUCH_END, this._onTouchEnd, this);
this.node.on(Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this);
}
protected start(): void {
// this.onSortLayer();
}
onDestroy() {
// 清理事件
this.node.off(Node.EventType.TOUCH_START, this._onTouchStart, this);
this.node.off(Node.EventType.TOUCH_MOVE, this._onTouchMove, this);
this.node.off(Node.EventType.TOUCH_END, this._onTouchEnd, this);
this.node.off(Node.EventType.TOUCH_CANCEL, this._onTouchCancel, this);
}
/**
* Label ,item的每个lable组件都独立一个orderNumber,
* @param node
*/
public onSortLayer() {
let orderNumber = 1;
const labels = this.node.getComponentsInChildren(Label);
for (let i = 0; i < labels.length; i++) {
changeUISortingLayer(labels[i].node, 0, orderNumber);
orderNumber++;
}
}
/** 关闭渲染分层 */
public offSortLayer() {
let orderNumber = 0;
const labels = this.node.getComponentsInChildren(Label);
for (let i = 0; i < labels.length; i++) {
changeUISortingLayer(labels[i].node, 0, orderNumber);
// const item = labels[i];
// const sort2d = item.node.getComponent(Sorting2D);
// sort2d && (sort2d.enabled = false);
// orderNumber++;
}
}
/** 外部调用:更新数据索引 */
public setDataIndex(index: number) {
this.dataIndex = index;
}
protected update(dt: number): void {
// 如果正在触摸且未取消,累加长按计时
if (this._touchStartNode && !this._isCanceled && !this._isLongPressed) {
this._longPressTimer += dt;
if (this._longPressTimer >= this.longPressTime) {
this._triggerLongPress();
}
}
}
private _triggerLongPress() {
this._isLongPressed = true;
if (this.onLongPressCallback) {
this.onLongPressCallback(this.dataIndex);
}
// 触发长按后恢复缩放
this._restoreScale();
}
private _onTouchStart(e: EventTouch) {
// console.log("_onTouchStart");
this._touchStartNode = this.node;
this._isCanceled = false;
this._isLongPressed = false;
this._longPressTimer = 0;
e.getLocation(this._startPos);
// 缩放反馈(假设第一个子节点是内容容器)
if (this.useItemClickEffect && this.node.children.length > 0) {
this.node.setScale(0.95, 0.95);
}
}
private _onTouchMove(e: EventTouch) {
if (this._isCanceled) return;
const movePos = e.getLocation();
const dx = movePos.x - this._startPos.x;
const dy = movePos.y - this._startPos.y;
const dist = Math.sqrt(dx * dx + dy * dy);
// 超过阈值认为是滑动,取消点击和长按
if (dist > this._moveThreshold) {
this._isCanceled = true;
this._restoreScale();
this._touchStartNode = null;
}
}
private _onTouchEnd(e: EventTouch) {
if (this._isCanceled) {
this._reset();
return;
}
// 如果已经触发了长按,不再触发点击
if (this._isLongPressed) {
this._reset();
return;
}
this._restoreScale();
const endPos = e.getLocation();
const dx = endPos.x - this._startPos.x;
const dy = endPos.y - this._startPos.y;
const dist = Math.sqrt(dx * dx + dy * dy);
// 移动距离小于阈值才算点击
if (dist < this._clickThreshold && this._touchStartNode === this.node) {
if (this.onClickCallback) {
this.onClickCallback(this.dataIndex);
}
}
this._reset();
}
private _onTouchCancel(e: EventTouch) {
this._restoreScale();
this._reset();
}
private _restoreScale() {
if (this.useItemClickEffect && this.node.children.length > 0) {
this.node.setScale(1.0, 1.0);
}
}
private _reset() {
this._touchStartNode = null;
this._isCanceled = false;
this._longPressTimer = 0;
this._isLongPressed = false;
}
}

View File

@ -1,9 +0,0 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "eb01f13e-2ad1-4d80-9974-008ca1553138",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -1,9 +0,0 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "4a074098-ef4f-4f6a-b8c9-1c75ffbe94ba",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -1,132 +0,0 @@
icon.png
size: 1127,322
format: RGBA8888
filter: Linear,Linear
repeat: none
42
rotate: true
xy: 952, 165
size: 155, 80
orig: 200, 112
offset: 26, 9
index: -1
a/看图王批量图片转换结果/-qkNJhy_0019_图层-30
rotate: true
xy: 857, 165
size: 155, 93
orig: 200, 112
offset: 22, 11
index: -1
a/看图王批量图片转换结果/-qkNJhy_0020_图层-28
rotate: true
xy: 843, 7
size: 155, 94
orig: 200, 112
offset: 22, 10
index: -1
a/看图王批量图片转换结果/-qkNJhy_0021_图层-26
rotate: false
xy: 162, 8
size: 157, 94
orig: 200, 112
offset: 21, 10
index: -1
a/看图王批量图片转换结果/-qkNJhy_0022_图层-24
rotate: true
xy: 1032, 12
size: 151, 92
orig: 200, 112
offset: 24, 12
index: -1
a/看图王批量图片转换结果/-qkNJhy_0023_图层-22
rotate: true
xy: 939, 8
size: 155, 91
orig: 200, 112
offset: 21, 12
index: -1
a/看图王批量图片转换结果/-qkNJhy_0024_图层-20
rotate: true
xy: 764, 164
size: 156, 91
orig: 200, 112
offset: 21, 12
index: -1
a/看图王批量图片转换结果/-qkNJhy_0025_图层-18
rotate: true
xy: 670, 164
size: 156, 92
orig: 200, 112
offset: 21, 11
index: -1
a/看图王批量图片转换结果/-qkNJhy_0027_图层-14
rotate: true
xy: 1034, 170
size: 150, 91
orig: 200, 112
offset: 26, 12
index: -1
a/看图王批量图片转换结果/-qkNJhy_0029_图层-10
rotate: false
xy: 2, 8
size: 158, 94
orig: 200, 112
offset: 20, 10
index: -1
a/看图王批量图片转换结果/-qkNJhy_0030_图层-8
rotate: false
xy: 495, 51
size: 157, 94
orig: 200, 112
offset: 21, 10
index: -1
a/看图王批量图片转换结果/-qkNJhy_0031_图层-6
rotate: true
xy: 574, 163
size: 157, 94
orig: 200, 112
offset: 21, 10
index: -1
a/看图王批量图片转换结果/-qkNJhy_0032_图层-4
rotate: true
xy: 749, 6
size: 156, 92
orig: 200, 112
offset: 20, 12
index: -1
a/看图王批量图片转换结果/-qkNJhy_0033_图层-2
rotate: true
xy: 654, 5
size: 156, 93
orig: 200, 112
offset: 21, 10
index: -1
hu
rotate: false
xy: 321, 2
size: 172, 128
orig: 180, 129
offset: 0, 0
index: -1
long
rotate: true
xy: 220, 132
size: 188, 178
orig: 191, 180
offset: 2, 1
index: -1
qiu
rotate: true
xy: 400, 147
size: 173, 172
orig: 175, 174
offset: 1, 1
index: -1
qiu2
rotate: false
xy: 2, 104
size: 216, 216
orig: 218, 218
offset: 1, 1
index: -1

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 KiB

View File

@ -1,9 +0,0 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "b171bd89-273f-45ba-bde4-249b6962f615",
"files": [],
"subMetas": {},
"userData": {}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 811 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 614 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "c8673caf-b43a-48e3-b1b9-1372123f59ca",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "c8673caf-b43a-48e3-b1b9-1372123f59ca@6c48a",
"displayName": "jz_04",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "c8673caf-b43a-48e3-b1b9-1372123f59ca",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "c8673caf-b43a-48e3-b1b9-1372123f59ca@f9941",
"displayName": "jz_04",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 945,
"height": 863,
"rawWidth": 945,
"rawHeight": 863,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-472.5,
-431.5,
0,
472.5,
-431.5,
0,
-472.5,
431.5,
0,
472.5,
431.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
863,
945,
863,
0,
0,
945,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-472.5,
-431.5,
0
],
"maxPos": [
472.5,
431.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "c8673caf-b43a-48e3-b1b9-1372123f59ca@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "c8673caf-b43a-48e3-b1b9-1372123f59ca@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d@6c48a",
"displayName": "jz_06",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d@f9941",
"displayName": "jz_06",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 53,
"height": 358,
"rawWidth": 53,
"rawHeight": 358,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-26.5,
-179,
0,
26.5,
-179,
0,
-26.5,
179,
0,
26.5,
179,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
358,
53,
358,
0,
0,
53,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-26.5,
-179,
0
],
"maxPos": [
26.5,
179,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "56f27dea-ea94-44b9-9e5f-95b7a2b92e1d@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "807e941e-42a9-450d-8568-2f37d63dfa56",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "807e941e-42a9-450d-8568-2f37d63dfa56@6c48a",
"displayName": "lhb_btn_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "807e941e-42a9-450d-8568-2f37d63dfa56",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "807e941e-42a9-450d-8568-2f37d63dfa56@f9941",
"displayName": "lhb_btn_01",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 285,
"height": 108,
"rawWidth": 285,
"rawHeight": 108,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-142.5,
-54,
0,
142.5,
-54,
0,
-142.5,
54,
0,
142.5,
54,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
108,
285,
108,
0,
0,
285,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-142.5,
-54,
0
],
"maxPos": [
142.5,
54,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "807e941e-42a9-450d-8568-2f37d63dfa56@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "807e941e-42a9-450d-8568-2f37d63dfa56@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "fc844223-cc11-416a-9019-be9ff4e74cc5",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "fc844223-cc11-416a-9019-be9ff4e74cc5@6c48a",
"displayName": "lhb_btn_02",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "fc844223-cc11-416a-9019-be9ff4e74cc5",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "fc844223-cc11-416a-9019-be9ff4e74cc5@f9941",
"displayName": "lhb_btn_02",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 285,
"height": 108,
"rawWidth": 285,
"rawHeight": 108,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-142.5,
-54,
0,
142.5,
-54,
0,
-142.5,
54,
0,
142.5,
54,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
108,
285,
108,
0,
0,
285,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-142.5,
-54,
0
],
"maxPos": [
142.5,
54,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "fc844223-cc11-416a-9019-be9ff4e74cc5@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "fc844223-cc11-416a-9019-be9ff4e74cc5@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "b77bd8f1-7c08-4f64-bc13-503cf458c08e",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "b77bd8f1-7c08-4f64-bc13-503cf458c08e@6c48a",
"displayName": "lhb_btn_close",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "b77bd8f1-7c08-4f64-bc13-503cf458c08e",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "b77bd8f1-7c08-4f64-bc13-503cf458c08e@f9941",
"displayName": "lhb_btn_close",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 109,
"height": 109,
"rawWidth": 109,
"rawHeight": 109,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-54.5,
-54.5,
0,
54.5,
-54.5,
0,
-54.5,
54.5,
0,
54.5,
54.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
109,
109,
109,
0,
0,
109,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-54.5,
-54.5,
0
],
"maxPos": [
54.5,
54.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "b77bd8f1-7c08-4f64-bc13-503cf458c08e@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "b77bd8f1-7c08-4f64-bc13-503cf458c08e@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "2ea20f98-c36e-4d61-98fb-6c80729d5766",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "2ea20f98-c36e-4d61-98fb-6c80729d5766@6c48a",
"displayName": "lhb_ic_lsjl",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "2ea20f98-c36e-4d61-98fb-6c80729d5766",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "2ea20f98-c36e-4d61-98fb-6c80729d5766@f9941",
"displayName": "lhb_ic_lsjl",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 97,
"height": 119,
"rawWidth": 97,
"rawHeight": 119,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-48.5,
-59.5,
0,
48.5,
-59.5,
0,
-48.5,
59.5,
0,
48.5,
59.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
119,
97,
119,
0,
0,
97,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-48.5,
-59.5,
0
],
"maxPos": [
48.5,
59.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "2ea20f98-c36e-4d61-98fb-6c80729d5766@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "2ea20f98-c36e-4d61-98fb-6c80729d5766@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1@6c48a",
"displayName": "lhb_jl_db_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1@f9941",
"displayName": "lhb_jl_db_01",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 983,
"height": 416,
"rawWidth": 983,
"rawHeight": 416,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-491.5,
-208,
0,
491.5,
-208,
0,
-491.5,
208,
0,
491.5,
208,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
416,
983,
416,
0,
0,
983,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-491.5,
-208,
0
],
"maxPos": [
491.5,
208,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "75cdbe69-b45e-43e0-b111-3e9cecf72ae1@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b@6c48a",
"displayName": "lhb_pm_02",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b@f9941",
"displayName": "lhb_pm_02",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 849,
"height": 72,
"rawWidth": 849,
"rawHeight": 72,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-424.5,
-36,
0,
424.5,
-36,
0,
-424.5,
36,
0,
424.5,
36,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
72,
849,
72,
0,
0,
849,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-424.5,
-36,
0
],
"maxPos": [
424.5,
36,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "36ff2bb5-4d19-4115-b05a-4a6f19190f3b@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "1d500614-1592-4df5-9336-2679e6235ca1",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "1d500614-1592-4df5-9336-2679e6235ca1@6c48a",
"displayName": "lhb_pm_03",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "1d500614-1592-4df5-9336-2679e6235ca1",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "1d500614-1592-4df5-9336-2679e6235ca1@f9941",
"displayName": "lhb_pm_03",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 847,
"height": 72,
"rawWidth": 847,
"rawHeight": 72,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-423.5,
-36,
0,
423.5,
-36,
0,
-423.5,
36,
0,
423.5,
36,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
72,
847,
72,
0,
0,
847,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-423.5,
-36,
0
],
"maxPos": [
423.5,
36,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "1d500614-1592-4df5-9336-2679e6235ca1@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "1d500614-1592-4df5-9336-2679e6235ca1@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,21 @@
info face="AutoBtnNum_01" size=72 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1
common lineHeight=72 base=56 scaleW=300 scaleH=343 pages=1 packed=0
page id=0 file="AutoBtnNum_01.png"
chars count=17
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=21 page=0 chnl=15
char id=43 x=0 y=272 width=69 height=71 xoffset=0 yoffset=6 xadvance=57 page=0 chnl=15
char id=44 x=70 y=272 width=51 height=57 xoffset=0 yoffset=46 xadvance=39 page=0 chnl=15
char id=45 x=171 y=272 width=61 height=46 xoffset=0 yoffset=17 xadvance=49 page=0 chnl=15
char id=46 x=122 y=272 width=48 height=49 xoffset=0 yoffset=42 xadvance=36 page=0 chnl=15
char id=48 x=160 y=0 width=85 height=87 xoffset=0 yoffset=0 xadvance=73 page=0 chnl=15
char id=49 x=246 y=0 width=52 height=87 xoffset=0 yoffset=0 xadvance=40 page=0 chnl=15
char id=50 x=0 y=96 width=75 height=87 xoffset=0 yoffset=0 xadvance=63 page=0 chnl=15
char id=51 x=76 y=96 width=71 height=87 xoffset=0 yoffset=0 xadvance=59 page=0 chnl=15
char id=52 x=82 y=0 width=77 height=88 xoffset=0 yoffset=-2 xadvance=65 page=0 chnl=15
char id=53 x=79 y=184 width=72 height=86 xoffset=0 yoffset=1 xadvance=60 page=0 chnl=15
char id=54 x=148 y=96 width=78 height=87 xoffset=0 yoffset=0 xadvance=66 page=0 chnl=15
char id=55 x=152 y=184 width=71 height=86 xoffset=0 yoffset=0 xadvance=59 page=0 chnl=15
char id=56 x=227 y=96 width=73 height=87 xoffset=0 yoffset=0 xadvance=61 page=0 chnl=15
char id=57 x=0 y=184 width=78 height=87 xoffset=0 yoffset=0 xadvance=66 page=0 chnl=15
char id=88 x=0 y=0 width=81 height=95 xoffset=0 yoffset=-8 xadvance=69 page=0 chnl=15
char id=120 x=224 y=184 width=71 height=73 xoffset=0 yoffset=13 xadvance=59 page=0 chnl=15

View File

@ -0,0 +1,209 @@
{
"ver": "1.0.6",
"importer": "bitmap-font",
"imported": true,
"uuid": "464764fb-6e8e-4eb5-b546-c589272fb9cd",
"files": [
".json"
],
"subMetas": {},
"userData": {
"_fntConfig": {
"commonHeight": 72,
"fontSize": 72,
"atlasName": "AutoBtnNum_01.png",
"fontDefDictionary": {
"32": {
"rect": {
"x": 0,
"y": 0,
"width": 0,
"height": 0
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 21
},
"43": {
"rect": {
"x": 0,
"y": 272,
"width": 69,
"height": 71
},
"xOffset": 0,
"yOffset": 6,
"xAdvance": 57
},
"44": {
"rect": {
"x": 70,
"y": 272,
"width": 51,
"height": 57
},
"xOffset": 0,
"yOffset": 46,
"xAdvance": 39
},
"45": {
"rect": {
"x": 171,
"y": 272,
"width": 61,
"height": 46
},
"xOffset": 0,
"yOffset": 17,
"xAdvance": 49
},
"46": {
"rect": {
"x": 122,
"y": 272,
"width": 48,
"height": 49
},
"xOffset": 0,
"yOffset": 42,
"xAdvance": 36
},
"48": {
"rect": {
"x": 160,
"y": 0,
"width": 85,
"height": 87
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 73
},
"49": {
"rect": {
"x": 246,
"y": 0,
"width": 52,
"height": 87
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 40
},
"50": {
"rect": {
"x": 0,
"y": 96,
"width": 75,
"height": 87
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 63
},
"51": {
"rect": {
"x": 76,
"y": 96,
"width": 71,
"height": 87
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 59
},
"52": {
"rect": {
"x": 82,
"y": 0,
"width": 77,
"height": 88
},
"xOffset": 0,
"yOffset": -2,
"xAdvance": 65
},
"53": {
"rect": {
"x": 79,
"y": 184,
"width": 72,
"height": 86
},
"xOffset": 0,
"yOffset": 1,
"xAdvance": 60
},
"54": {
"rect": {
"x": 148,
"y": 96,
"width": 78,
"height": 87
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 66
},
"55": {
"rect": {
"x": 152,
"y": 184,
"width": 71,
"height": 86
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 59
},
"56": {
"rect": {
"x": 227,
"y": 96,
"width": 73,
"height": 87
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 61
},
"57": {
"rect": {
"x": 0,
"y": 184,
"width": 78,
"height": 87
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 66
},
"88": {
"rect": {
"x": 0,
"y": 0,
"width": 81,
"height": 95
},
"xOffset": 0,
"yOffset": -8,
"xAdvance": 69
},
"120": {
"rect": {
"x": 224,
"y": 184,
"width": 71,
"height": 73
},
"xOffset": 0,
"yOffset": 13,
"xAdvance": 59
}
},
"kerningDict": {}
},
"fontSize": 72,
"textureUuid": "aed2cdf1-3fc7-4633-af10-67a95f5c05b0"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "aed2cdf1-3fc7-4633-af10-67a95f5c05b0",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "aed2cdf1-3fc7-4633-af10-67a95f5c05b0@6c48a",
"displayName": "AutoBtnNum_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "aed2cdf1-3fc7-4633-af10-67a95f5c05b0",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "aed2cdf1-3fc7-4633-af10-67a95f5c05b0@f9941",
"displayName": "AutoBtnNum_01",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 1,
"width": 298,
"height": 341,
"rawWidth": 300,
"rawHeight": 343,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-149,
-170.5,
0,
149,
-170.5,
0,
-149,
170.5,
0,
149,
170.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
1,
342,
299,
342,
1,
1,
299,
1
],
"nuv": [
0.0033333333333333335,
0.0029154518950437317,
0.9966666666666667,
0.0029154518950437317,
0.0033333333333333335,
0.9970845481049563,
0.9966666666666667,
0.9970845481049563
],
"minPos": [
-149,
-170.5,
0
],
"maxPos": [
149,
170.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "aed2cdf1-3fc7-4633-af10-67a95f5c05b0@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "aed2cdf1-3fc7-4633-af10-67a95f5c05b0@6c48a"
}
}

View File

@ -0,0 +1,21 @@
info face="BuyFeatureNum_01" size=80 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1
common lineHeight=80 base=62 scaleW=227 scaleH=217 pages=1 packed=0
page id=0 file="BuyFeatureNum_01.png"
chars count=17
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=23 page=0 chnl=15
char id=43 x=181 y=123 width=46 height=47 xoffset=0 yoffset=10 xadvance=38 page=0 chnl=15
char id=44 x=0 y=181 width=33 height=36 xoffset=0 yoffset=27 xadvance=25 page=0 chnl=15
char id=45 x=66 y=181 width=40 height=27 xoffset=0 yoffset=20 xadvance=32 page=0 chnl=15
char id=46 x=34 y=181 width=31 height=31 xoffset=0 yoffset=28 xadvance=23 page=0 chnl=15
char id=48 x=55 y=0 width=57 height=58 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15
char id=49 x=0 y=123 width=34 height=57 xoffset=0 yoffset=0 xadvance=26 page=0 chnl=15
char id=50 x=113 y=0 width=50 height=58 xoffset=0 yoffset=0 xadvance=42 page=0 chnl=15
char id=51 x=164 y=0 width=47 height=58 xoffset=0 yoffset=0 xadvance=39 page=0 chnl=15
char id=52 x=0 y=64 width=52 height=58 xoffset=0 yoffset=0 xadvance=44 page=0 chnl=15
char id=53 x=35 y=123 width=48 height=57 xoffset=0 yoffset=0 xadvance=40 page=0 chnl=15
char id=54 x=53 y=64 width=52 height=58 xoffset=0 yoffset=0 xadvance=44 page=0 chnl=15
char id=55 x=84 y=123 width=48 height=57 xoffset=0 yoffset=0 xadvance=40 page=0 chnl=15
char id=56 x=106 y=64 width=49 height=58 xoffset=0 yoffset=0 xadvance=41 page=0 chnl=15
char id=57 x=156 y=64 width=52 height=58 xoffset=0 yoffset=0 xadvance=44 page=0 chnl=15
char id=88 x=0 y=0 width=54 height=63 xoffset=0 yoffset=-4 xadvance=46 page=0 chnl=15
char id=120 x=133 y=123 width=47 height=49 xoffset=0 yoffset=11 xadvance=39 page=0 chnl=15

View File

@ -0,0 +1,209 @@
{
"ver": "1.0.6",
"importer": "bitmap-font",
"imported": true,
"uuid": "a8f5c3b8-0ed7-4612-a2ab-2467ce57e83a",
"files": [
".json"
],
"subMetas": {},
"userData": {
"_fntConfig": {
"commonHeight": 80,
"fontSize": 80,
"atlasName": "BuyFeatureNum_01.png",
"fontDefDictionary": {
"32": {
"rect": {
"x": 0,
"y": 0,
"width": 0,
"height": 0
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 23
},
"43": {
"rect": {
"x": 181,
"y": 123,
"width": 46,
"height": 47
},
"xOffset": 0,
"yOffset": 10,
"xAdvance": 38
},
"44": {
"rect": {
"x": 0,
"y": 181,
"width": 33,
"height": 36
},
"xOffset": 0,
"yOffset": 27,
"xAdvance": 25
},
"45": {
"rect": {
"x": 66,
"y": 181,
"width": 40,
"height": 27
},
"xOffset": 0,
"yOffset": 20,
"xAdvance": 32
},
"46": {
"rect": {
"x": 34,
"y": 181,
"width": 31,
"height": 31
},
"xOffset": 0,
"yOffset": 28,
"xAdvance": 23
},
"48": {
"rect": {
"x": 55,
"y": 0,
"width": 57,
"height": 58
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 49
},
"49": {
"rect": {
"x": 0,
"y": 123,
"width": 34,
"height": 57
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 26
},
"50": {
"rect": {
"x": 113,
"y": 0,
"width": 50,
"height": 58
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 42
},
"51": {
"rect": {
"x": 164,
"y": 0,
"width": 47,
"height": 58
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 39
},
"52": {
"rect": {
"x": 0,
"y": 64,
"width": 52,
"height": 58
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 44
},
"53": {
"rect": {
"x": 35,
"y": 123,
"width": 48,
"height": 57
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 40
},
"54": {
"rect": {
"x": 53,
"y": 64,
"width": 52,
"height": 58
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 44
},
"55": {
"rect": {
"x": 84,
"y": 123,
"width": 48,
"height": 57
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 40
},
"56": {
"rect": {
"x": 106,
"y": 64,
"width": 49,
"height": 58
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 41
},
"57": {
"rect": {
"x": 156,
"y": 64,
"width": 52,
"height": 58
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 44
},
"88": {
"rect": {
"x": 0,
"y": 0,
"width": 54,
"height": 63
},
"xOffset": 0,
"yOffset": -4,
"xAdvance": 46
},
"120": {
"rect": {
"x": 133,
"y": 123,
"width": 47,
"height": 49
},
"xOffset": 0,
"yOffset": 11,
"xAdvance": 39
}
},
"kerningDict": {}
},
"fontSize": 80,
"textureUuid": "f3bb7dfa-c563-4068-9c0a-6b59e0a55f60"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "f3bb7dfa-c563-4068-9c0a-6b59e0a55f60",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "f3bb7dfa-c563-4068-9c0a-6b59e0a55f60@6c48a",
"displayName": "BuyFeatureNum_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "f3bb7dfa-c563-4068-9c0a-6b59e0a55f60",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "f3bb7dfa-c563-4068-9c0a-6b59e0a55f60@f9941",
"displayName": "BuyFeatureNum_01",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 1,
"width": 225,
"height": 215,
"rawWidth": 227,
"rawHeight": 217,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-112.5,
-107.5,
0,
112.5,
-107.5,
0,
-112.5,
107.5,
0,
112.5,
107.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
1,
216,
226,
216,
1,
1,
226,
1
],
"nuv": [
0.004405286343612335,
0.004608294930875576,
0.9955947136563876,
0.004608294930875576,
0.004405286343612335,
0.9953917050691244,
0.9955947136563876,
0.9953917050691244
],
"minPos": [
-112.5,
-107.5,
0
],
"maxPos": [
112.5,
107.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "f3bb7dfa-c563-4068-9c0a-6b59e0a55f60@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "f3bb7dfa-c563-4068-9c0a-6b59e0a55f60@6c48a"
}
}

View File

@ -0,0 +1,21 @@
info face="EnterFreeModeNum_01" size=240 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1
common lineHeight=240 base=186 scaleW=884 scaleH=890 pages=1 packed=0
page id=0 file="EnterFreeModeNum_01.png"
chars count=17
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=67 page=0 chnl=15
char id=43 x=0 y=716 width=175 height=174 xoffset=0 yoffset=43 xadvance=175 page=0 chnl=15
char id=44 x=772 y=242 width=106 height=124 xoffset=0 yoffset=165 xadvance=106 page=0 chnl=15
char id=45 x=752 y=480 width=132 height=78 xoffset=0 yoffset=93 xadvance=132 page=0 chnl=15
char id=46 x=772 y=367 width=100 height=81 xoffset=0 yoffset=165 xadvance=100 page=0 chnl=15
char id=48 x=631 y=0 width=211 height=237 xoffset=0 yoffset=0 xadvance=211 page=0 chnl=15
char id=49 x=0 y=480 width=137 height=235 xoffset=0 yoffset=0 xadvance=137 page=0 chnl=15
char id=50 x=0 y=242 width=189 height=237 xoffset=0 yoffset=0 xadvance=189 page=0 chnl=15
char id=51 x=190 y=242 width=191 height=237 xoffset=0 yoffset=0 xadvance=191 page=0 chnl=15
char id=52 x=138 y=480 width=220 height=235 xoffset=0 yoffset=0 xadvance=220 page=0 chnl=15
char id=53 x=382 y=242 width=189 height=237 xoffset=0 yoffset=0 xadvance=189 page=0 chnl=15
char id=54 x=0 y=0 width=197 height=241 xoffset=0 yoffset=0 xadvance=197 page=0 chnl=15
char id=55 x=359 y=480 width=196 height=235 xoffset=0 yoffset=0 xadvance=196 page=0 chnl=15
char id=56 x=572 y=242 width=199 height=237 xoffset=0 yoffset=0 xadvance=199 page=0 chnl=15
char id=57 x=433 y=0 width=197 height=240 xoffset=0 yoffset=0 xadvance=197 page=0 chnl=15
char id=88 x=198 y=0 width=234 height=241 xoffset=0 yoffset=0 xadvance=234 page=0 chnl=15
char id=120 x=556 y=480 width=195 height=177 xoffset=0 yoffset=61 xadvance=195 page=0 chnl=15

View File

@ -0,0 +1,209 @@
{
"ver": "1.0.6",
"importer": "bitmap-font",
"imported": true,
"uuid": "4d9a2958-fba8-4af2-8a6c-537300ece858",
"files": [
".json"
],
"subMetas": {},
"userData": {
"_fntConfig": {
"commonHeight": 240,
"fontSize": 240,
"atlasName": "EnterFreeModeNum_01.png",
"fontDefDictionary": {
"32": {
"rect": {
"x": 0,
"y": 0,
"width": 0,
"height": 0
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 67
},
"43": {
"rect": {
"x": 0,
"y": 716,
"width": 175,
"height": 174
},
"xOffset": 0,
"yOffset": 43,
"xAdvance": 175
},
"44": {
"rect": {
"x": 772,
"y": 242,
"width": 106,
"height": 124
},
"xOffset": 0,
"yOffset": 165,
"xAdvance": 106
},
"45": {
"rect": {
"x": 752,
"y": 480,
"width": 132,
"height": 78
},
"xOffset": 0,
"yOffset": 93,
"xAdvance": 132
},
"46": {
"rect": {
"x": 772,
"y": 367,
"width": 100,
"height": 81
},
"xOffset": 0,
"yOffset": 165,
"xAdvance": 100
},
"48": {
"rect": {
"x": 631,
"y": 0,
"width": 211,
"height": 237
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 211
},
"49": {
"rect": {
"x": 0,
"y": 480,
"width": 137,
"height": 235
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 137
},
"50": {
"rect": {
"x": 0,
"y": 242,
"width": 189,
"height": 237
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 189
},
"51": {
"rect": {
"x": 190,
"y": 242,
"width": 191,
"height": 237
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 191
},
"52": {
"rect": {
"x": 138,
"y": 480,
"width": 220,
"height": 235
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 220
},
"53": {
"rect": {
"x": 382,
"y": 242,
"width": 189,
"height": 237
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 189
},
"54": {
"rect": {
"x": 0,
"y": 0,
"width": 197,
"height": 241
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 197
},
"55": {
"rect": {
"x": 359,
"y": 480,
"width": 196,
"height": 235
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 196
},
"56": {
"rect": {
"x": 572,
"y": 242,
"width": 199,
"height": 237
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 199
},
"57": {
"rect": {
"x": 433,
"y": 0,
"width": 197,
"height": 240
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 197
},
"88": {
"rect": {
"x": 198,
"y": 0,
"width": 234,
"height": 241
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 234
},
"120": {
"rect": {
"x": 556,
"y": 480,
"width": 195,
"height": 177
},
"xOffset": 0,
"yOffset": 61,
"xAdvance": 195
}
},
"kerningDict": {}
},
"fontSize": 240,
"textureUuid": "dc86ed49-e59b-4264-ba91-9711673f5dbf"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

View File

@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "dc86ed49-e59b-4264-ba91-9711673f5dbf",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "dc86ed49-e59b-4264-ba91-9711673f5dbf@6c48a",
"displayName": "EnterFreeModeNum_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0,
"isUuid": true,
"imageUuidOrDatabaseUri": "dc86ed49-e59b-4264-ba91-9711673f5dbf",
"visible": false
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "dc86ed49-e59b-4264-ba91-9711673f5dbf@f9941",
"displayName": "EnterFreeModeNum_01",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 1,
"width": 882,
"height": 888,
"rawWidth": 884,
"rawHeight": 890,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-441,
-444,
0,
441,
-444,
0,
-441,
444,
0,
441,
444,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
1,
889,
883,
889,
1,
1,
883,
1
],
"nuv": [
0.0011312217194570137,
0.0011235955056179776,
0.998868778280543,
0.0011235955056179776,
0.0011312217194570137,
0.998876404494382,
0.998868778280543,
0.998876404494382
],
"minPos": [
-441,
-444,
0
],
"maxPos": [
441,
444,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "dc86ed49-e59b-4264-ba91-9711673f5dbf@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"hasAlpha": true,
"type": "sprite-frame",
"fixAlphaTransparencyArtifacts": false,
"redirect": "dc86ed49-e59b-4264-ba91-9711673f5dbf@6c48a"
}
}

View File

@ -0,0 +1,21 @@
info face="MarqueeNum_01" size=72 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1
common lineHeight=72 base=56 scaleW=239 scaleH=226 pages=1 packed=0
page id=0 file="MarqueeNum_01.png"
chars count=17
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=21 page=0 chnl=15
char id=43 x=112 y=138 width=52 height=52 xoffset=0 yoffset=10 xadvance=52 page=0 chnl=15
char id=44 x=211 y=27 width=21 height=31 xoffset=0 yoffset=43 xadvance=21 page=0 chnl=15
char id=45 x=0 y=206 width=48 height=20 xoffset=0 yoffset=26 xadvance=48 page=0 chnl=15
char id=46 x=211 y=0 width=26 height=26 xoffset=0 yoffset=44 xadvance=26 page=0 chnl=15
char id=48 x=0 y=0 width=57 height=68 xoffset=0 yoffset=0 xadvance=57 page=0 chnl=15
char id=49 x=201 y=69 width=38 height=66 xoffset=0 yoffset=0 xadvance=38 page=0 chnl=15
char id=50 x=51 y=69 width=47 height=67 xoffset=0 yoffset=0 xadvance=47 page=0 chnl=15
char id=51 x=58 y=0 width=48 height=68 xoffset=0 yoffset=0 xadvance=48 page=0 chnl=15
char id=52 x=99 y=69 width=55 height=67 xoffset=0 yoffset=0 xadvance=55 page=0 chnl=15
char id=53 x=155 y=69 width=45 height=67 xoffset=0 yoffset=0 xadvance=45 page=0 chnl=15
char id=54 x=107 y=0 width=51 height=68 xoffset=0 yoffset=0 xadvance=51 page=0 chnl=15
char id=55 x=0 y=138 width=47 height=67 xoffset=0 yoffset=0 xadvance=47 page=0 chnl=15
char id=56 x=159 y=0 width=51 height=68 xoffset=0 yoffset=0 xadvance=51 page=0 chnl=15
char id=57 x=0 y=69 width=50 height=68 xoffset=0 yoffset=0 xadvance=50 page=0 chnl=15
char id=88 x=48 y=138 width=63 height=67 xoffset=0 yoffset=0 xadvance=63 page=0 chnl=15
char id=120 x=165 y=138 width=53 height=52 xoffset=0 yoffset=15 xadvance=53 page=0 chnl=15

View File

@ -0,0 +1,209 @@
{
"ver": "1.0.6",
"importer": "bitmap-font",
"imported": true,
"uuid": "39c2b67d-61f7-4a07-820d-9d03e1e576dd",
"files": [
".json"
],
"subMetas": {},
"userData": {
"_fntConfig": {
"commonHeight": 72,
"fontSize": 72,
"atlasName": "MarqueeNum_01.png",
"fontDefDictionary": {
"32": {
"rect": {
"x": 0,
"y": 0,
"width": 0,
"height": 0
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 21
},
"43": {
"rect": {
"x": 112,
"y": 138,
"width": 52,
"height": 52
},
"xOffset": 0,
"yOffset": 10,
"xAdvance": 52
},
"44": {
"rect": {
"x": 211,
"y": 27,
"width": 21,
"height": 31
},
"xOffset": 0,
"yOffset": 43,
"xAdvance": 21
},
"45": {
"rect": {
"x": 0,
"y": 206,
"width": 48,
"height": 20
},
"xOffset": 0,
"yOffset": 26,
"xAdvance": 48
},
"46": {
"rect": {
"x": 211,
"y": 0,
"width": 26,
"height": 26
},
"xOffset": 0,
"yOffset": 44,
"xAdvance": 26
},
"48": {
"rect": {
"x": 0,
"y": 0,
"width": 57,
"height": 68
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 57
},
"49": {
"rect": {
"x": 201,
"y": 69,
"width": 38,
"height": 66
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 38
},
"50": {
"rect": {
"x": 51,
"y": 69,
"width": 47,
"height": 67
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 47
},
"51": {
"rect": {
"x": 58,
"y": 0,
"width": 48,
"height": 68
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 48
},
"52": {
"rect": {
"x": 99,
"y": 69,
"width": 55,
"height": 67
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 55
},
"53": {
"rect": {
"x": 155,
"y": 69,
"width": 45,
"height": 67
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 45
},
"54": {
"rect": {
"x": 107,
"y": 0,
"width": 51,
"height": 68
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 51
},
"55": {
"rect": {
"x": 0,
"y": 138,
"width": 47,
"height": 67
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 47
},
"56": {
"rect": {
"x": 159,
"y": 0,
"width": 51,
"height": 68
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 51
},
"57": {
"rect": {
"x": 0,
"y": 69,
"width": 50,
"height": 68
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 50
},
"88": {
"rect": {
"x": 48,
"y": 138,
"width": 63,
"height": 67
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 63
},
"120": {
"rect": {
"x": 165,
"y": 138,
"width": 53,
"height": 52
},
"xOffset": 0,
"yOffset": 15,
"xAdvance": 53
}
},
"kerningDict": {}
},
"fontSize": 72,
"textureUuid": "a6e8118a-a541-4a16-9cd3-05ccf11b51c4"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -2,7 +2,7 @@
"ver": "1.0.27", "ver": "1.0.27",
"importer": "image", "importer": "image",
"imported": true, "imported": true,
"uuid": "b9e25a78-98c2-42a5-83bb-516d22a5604c", "uuid": "a6e8118a-a541-4a16-9cd3-05ccf11b51c4",
"files": [ "files": [
".json", ".json",
".png" ".png"
@ -10,14 +10,14 @@
"subMetas": { "subMetas": {
"6c48a": { "6c48a": {
"importer": "texture", "importer": "texture",
"uuid": "b9e25a78-98c2-42a5-83bb-516d22a5604c@6c48a", "uuid": "a6e8118a-a541-4a16-9cd3-05ccf11b51c4@6c48a",
"displayName": "btn_dt", "displayName": "MarqueeNum_01",
"id": "6c48a", "id": "6c48a",
"name": "texture", "name": "texture",
"userData": { "userData": {
"wrapModeS": "clamp-to-edge", "wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge", "wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "b9e25a78-98c2-42a5-83bb-516d22a5604c", "imageUuidOrDatabaseUri": "a6e8118a-a541-4a16-9cd3-05ccf11b51c4",
"isUuid": true, "isUuid": true,
"visible": false, "visible": false,
"minfilter": "linear", "minfilter": "linear",
@ -34,22 +34,22 @@
}, },
"f9941": { "f9941": {
"importer": "sprite-frame", "importer": "sprite-frame",
"uuid": "b9e25a78-98c2-42a5-83bb-516d22a5604c@f9941", "uuid": "a6e8118a-a541-4a16-9cd3-05ccf11b51c4@f9941",
"displayName": "btn_dt", "displayName": "MarqueeNum_01",
"id": "f9941", "id": "f9941",
"name": "spriteFrame", "name": "spriteFrame",
"userData": { "userData": {
"trimType": "auto", "trimType": "auto",
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": false,
"offsetX": 0.5, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 1, "trimX": 1,
"trimY": 0, "trimY": 1,
"width": 216, "width": 237,
"height": 237, "height": 224,
"rawWidth": 217, "rawWidth": 239,
"rawHeight": 237, "rawHeight": 226,
"borderTop": 0, "borderTop": 0,
"borderBottom": 0, "borderBottom": 0,
"borderLeft": 0, "borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0, "meshType": 0,
"vertices": { "vertices": {
"rawPosition": [ "rawPosition": [
-108,
-118.5, -118.5,
-112,
0,
118.5,
-112,
0, 0,
108,
-118.5, -118.5,
112,
0, 0,
-108,
118.5,
0,
108,
118.5, 118.5,
112,
0 0
], ],
"indexes": [ "indexes": [
@ -84,37 +84,37 @@
], ],
"uv": [ "uv": [
1, 1,
237, 225,
217, 238,
237, 225,
1,
0,
217,
0
],
"nuv": [
0.004608294930875576,
0,
1,
0,
0.004608294930875576,
1, 1,
1, 1,
238,
1 1
], ],
"nuv": [
0.0041841004184100415,
0.004424778761061947,
0.99581589958159,
0.004424778761061947,
0.0041841004184100415,
0.995575221238938,
0.99581589958159,
0.995575221238938
],
"minPos": [ "minPos": [
-108,
-118.5, -118.5,
-112,
0 0
], ],
"maxPos": [ "maxPos": [
108,
118.5, 118.5,
112,
0 0
] ]
}, },
"isUuid": true, "isUuid": true,
"imageUuidOrDatabaseUri": "b9e25a78-98c2-42a5-83bb-516d22a5604c@6c48a", "imageUuidOrDatabaseUri": "a6e8118a-a541-4a16-9cd3-05ccf11b51c4@6c48a",
"atlasUuid": "" "atlasUuid": ""
}, },
"ver": "1.0.12", "ver": "1.0.12",
@ -129,6 +129,6 @@
"type": "sprite-frame", "type": "sprite-frame",
"hasAlpha": true, "hasAlpha": true,
"fixAlphaTransparencyArtifacts": false, "fixAlphaTransparencyArtifacts": false,
"redirect": "b9e25a78-98c2-42a5-83bb-516d22a5604c@6c48a" "redirect": "a6e8118a-a541-4a16-9cd3-05ccf11b51c4@6c48a"
} }
} }

View File

@ -0,0 +1,21 @@
info face="MultiNum_01" size=120 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1
common lineHeight=120 base=93 scaleW=340 scaleH=346 pages=1 packed=0
page id=0 file="MultiNum_01.png"
chars count=17
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=34 page=0 chnl=15
char id=43 x=0 y=280 width=66 height=66 xoffset=0 yoffset=16 xadvance=66 page=0 chnl=15
char id=44 x=300 y=95 width=40 height=47 xoffset=0 yoffset=71 xadvance=40 page=0 chnl=15
char id=45 x=291 y=188 width=49 height=28 xoffset=0 yoffset=37 xadvance=49 page=0 chnl=15
char id=46 x=300 y=143 width=37 height=29 xoffset=0 yoffset=71 xadvance=37 page=0 chnl=15
char id=48 x=244 y=0 width=81 height=92 xoffset=0 yoffset=0 xadvance=81 page=0 chnl=15
char id=49 x=0 y=188 width=52 height=91 xoffset=0 yoffset=0 xadvance=52 page=0 chnl=15
char id=50 x=0 y=95 width=73 height=92 xoffset=0 yoffset=0 xadvance=73 page=0 chnl=15
char id=51 x=74 y=95 width=74 height=92 xoffset=0 yoffset=0 xadvance=74 page=0 chnl=15
char id=52 x=53 y=188 width=85 height=91 xoffset=0 yoffset=0 xadvance=85 page=0 chnl=15
char id=53 x=149 y=95 width=72 height=92 xoffset=0 yoffset=0 xadvance=72 page=0 chnl=15
char id=54 x=0 y=0 width=75 height=94 xoffset=0 yoffset=0 xadvance=75 page=0 chnl=15
char id=55 x=139 y=188 width=75 height=91 xoffset=0 yoffset=0 xadvance=75 page=0 chnl=15
char id=56 x=222 y=95 width=77 height=92 xoffset=0 yoffset=0 xadvance=77 page=0 chnl=15
char id=57 x=76 y=0 width=75 height=94 xoffset=0 yoffset=0 xadvance=75 page=0 chnl=15
char id=88 x=152 y=0 width=91 height=94 xoffset=0 yoffset=0 xadvance=91 page=0 chnl=15
char id=120 x=215 y=188 width=75 height=68 xoffset=0 yoffset=26 xadvance=75 page=0 chnl=15

View File

@ -0,0 +1,209 @@
{
"ver": "1.0.6",
"importer": "bitmap-font",
"imported": true,
"uuid": "b18ec254-9b64-4121-87bd-adee982ff3e6",
"files": [
".json"
],
"subMetas": {},
"userData": {
"_fntConfig": {
"commonHeight": 120,
"fontSize": 120,
"atlasName": "MultiNum_01.png",
"fontDefDictionary": {
"32": {
"rect": {
"x": 0,
"y": 0,
"width": 0,
"height": 0
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 34
},
"43": {
"rect": {
"x": 0,
"y": 280,
"width": 66,
"height": 66
},
"xOffset": 0,
"yOffset": 16,
"xAdvance": 66
},
"44": {
"rect": {
"x": 300,
"y": 95,
"width": 40,
"height": 47
},
"xOffset": 0,
"yOffset": 71,
"xAdvance": 40
},
"45": {
"rect": {
"x": 291,
"y": 188,
"width": 49,
"height": 28
},
"xOffset": 0,
"yOffset": 37,
"xAdvance": 49
},
"46": {
"rect": {
"x": 300,
"y": 143,
"width": 37,
"height": 29
},
"xOffset": 0,
"yOffset": 71,
"xAdvance": 37
},
"48": {
"rect": {
"x": 244,
"y": 0,
"width": 81,
"height": 92
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 81
},
"49": {
"rect": {
"x": 0,
"y": 188,
"width": 52,
"height": 91
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 52
},
"50": {
"rect": {
"x": 0,
"y": 95,
"width": 73,
"height": 92
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 73
},
"51": {
"rect": {
"x": 74,
"y": 95,
"width": 74,
"height": 92
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 74
},
"52": {
"rect": {
"x": 53,
"y": 188,
"width": 85,
"height": 91
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 85
},
"53": {
"rect": {
"x": 149,
"y": 95,
"width": 72,
"height": 92
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 72
},
"54": {
"rect": {
"x": 0,
"y": 0,
"width": 75,
"height": 94
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 75
},
"55": {
"rect": {
"x": 139,
"y": 188,
"width": 75,
"height": 91
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 75
},
"56": {
"rect": {
"x": 222,
"y": 95,
"width": 77,
"height": 92
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 77
},
"57": {
"rect": {
"x": 76,
"y": 0,
"width": 75,
"height": 94
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 75
},
"88": {
"rect": {
"x": 152,
"y": 0,
"width": 91,
"height": 94
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 91
},
"120": {
"rect": {
"x": 215,
"y": 188,
"width": 75,
"height": 68
},
"xOffset": 0,
"yOffset": 26,
"xAdvance": 75
}
},
"kerningDict": {}
},
"fontSize": 120,
"textureUuid": "9876cee9-7419-45a0-ad3d-2c5ca2a7c65d"
}
}

BIN
assets/Game/fonts/MultiNum_01.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

View File

@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "9876cee9-7419-45a0-ad3d-2c5ca2a7c65d",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "9876cee9-7419-45a0-ad3d-2c5ca2a7c65d@6c48a",
"displayName": "MultiNum_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "9876cee9-7419-45a0-ad3d-2c5ca2a7c65d",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "9876cee9-7419-45a0-ad3d-2c5ca2a7c65d@f9941",
"displayName": "MultiNum_01",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 1,
"width": 338,
"height": 344,
"rawWidth": 340,
"rawHeight": 346,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-169,
-172,
0,
169,
-172,
0,
-169,
172,
0,
169,
172,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
1,
345,
339,
345,
1,
1,
339,
1
],
"nuv": [
0.0029411764705882353,
0.002890173410404624,
0.9970588235294118,
0.002890173410404624,
0.0029411764705882353,
0.9971098265895953,
0.9970588235294118,
0.9971098265895953
],
"minPos": [
-169,
-172,
0
],
"maxPos": [
169,
172,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "9876cee9-7419-45a0-ad3d-2c5ca2a7c65d@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "9876cee9-7419-45a0-ad3d-2c5ca2a7c65d@6c48a"
}
}

View File

@ -0,0 +1,21 @@
info face="RemainingNum_01" size=180 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1
common lineHeight=180 base=140 scaleW=496 scaleH=496 pages=1 packed=0
page id=0 file="RemainingNum_01.png"
chars count=17
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=51 page=0 chnl=15
char id=43 x=0 y=402 width=95 height=94 xoffset=0 yoffset=24 xadvance=95 page=0 chnl=15
char id=44 x=427 y=174 width=54 height=65 xoffset=0 yoffset=102 xadvance=54 page=0 chnl=15
char id=45 x=427 y=136 width=69 height=37 xoffset=0 yoffset=52 xadvance=69 page=0 chnl=15
char id=46 x=412 y=270 width=50 height=39 xoffset=0 yoffset=100 xadvance=50 page=0 chnl=15
char id=48 x=350 y=0 width=116 height=133 xoffset=0 yoffset=0 xadvance=116 page=0 chnl=15
char id=49 x=0 y=270 width=72 height=131 xoffset=0 yoffset=0 xadvance=72 page=0 chnl=15
char id=50 x=0 y=136 width=104 height=133 xoffset=0 yoffset=0 xadvance=104 page=0 chnl=15
char id=51 x=105 y=136 width=105 height=133 xoffset=0 yoffset=0 xadvance=105 page=0 chnl=15
char id=52 x=73 y=270 width=122 height=131 xoffset=0 yoffset=0 xadvance=122 page=0 chnl=15
char id=53 x=211 y=136 width=104 height=133 xoffset=0 yoffset=0 xadvance=104 page=0 chnl=15
char id=54 x=132 y=0 width=108 height=134 xoffset=0 yoffset=0 xadvance=108 page=0 chnl=15
char id=55 x=196 y=270 width=107 height=131 xoffset=0 yoffset=0 xadvance=107 page=0 chnl=15
char id=56 x=316 y=136 width=110 height=133 xoffset=0 yoffset=0 xadvance=110 page=0 chnl=15
char id=57 x=241 y=0 width=108 height=134 xoffset=0 yoffset=0 xadvance=108 page=0 chnl=15
char id=88 x=0 y=0 width=131 height=135 xoffset=0 yoffset=0 xadvance=131 page=0 chnl=15
char id=120 x=304 y=270 width=107 height=96 xoffset=0 yoffset=38 xadvance=107 page=0 chnl=15

View File

@ -0,0 +1,209 @@
{
"ver": "1.0.6",
"importer": "bitmap-font",
"imported": true,
"uuid": "6651d66d-69d8-49cb-9ef9-7b644dfacbf4",
"files": [
".json"
],
"subMetas": {},
"userData": {
"_fntConfig": {
"commonHeight": 180,
"fontSize": 180,
"atlasName": "RemainingNum_01.png",
"fontDefDictionary": {
"32": {
"rect": {
"x": 0,
"y": 0,
"width": 0,
"height": 0
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 51
},
"43": {
"rect": {
"x": 0,
"y": 402,
"width": 95,
"height": 94
},
"xOffset": 0,
"yOffset": 24,
"xAdvance": 95
},
"44": {
"rect": {
"x": 427,
"y": 174,
"width": 54,
"height": 65
},
"xOffset": 0,
"yOffset": 102,
"xAdvance": 54
},
"45": {
"rect": {
"x": 427,
"y": 136,
"width": 69,
"height": 37
},
"xOffset": 0,
"yOffset": 52,
"xAdvance": 69
},
"46": {
"rect": {
"x": 412,
"y": 270,
"width": 50,
"height": 39
},
"xOffset": 0,
"yOffset": 100,
"xAdvance": 50
},
"48": {
"rect": {
"x": 350,
"y": 0,
"width": 116,
"height": 133
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 116
},
"49": {
"rect": {
"x": 0,
"y": 270,
"width": 72,
"height": 131
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 72
},
"50": {
"rect": {
"x": 0,
"y": 136,
"width": 104,
"height": 133
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 104
},
"51": {
"rect": {
"x": 105,
"y": 136,
"width": 105,
"height": 133
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 105
},
"52": {
"rect": {
"x": 73,
"y": 270,
"width": 122,
"height": 131
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 122
},
"53": {
"rect": {
"x": 211,
"y": 136,
"width": 104,
"height": 133
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 104
},
"54": {
"rect": {
"x": 132,
"y": 0,
"width": 108,
"height": 134
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 108
},
"55": {
"rect": {
"x": 196,
"y": 270,
"width": 107,
"height": 131
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 107
},
"56": {
"rect": {
"x": 316,
"y": 136,
"width": 110,
"height": 133
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 110
},
"57": {
"rect": {
"x": 241,
"y": 0,
"width": 108,
"height": 134
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 108
},
"88": {
"rect": {
"x": 0,
"y": 0,
"width": 131,
"height": 135
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 131
},
"120": {
"rect": {
"x": 304,
"y": 270,
"width": 107,
"height": 96
},
"xOffset": 0,
"yOffset": 38,
"xAdvance": 107
}
},
"kerningDict": {}
},
"fontSize": 180,
"textureUuid": "d72d5937-a495-4ccc-977e-c3a42831f23a"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

View File

@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "d72d5937-a495-4ccc-977e-c3a42831f23a",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "d72d5937-a495-4ccc-977e-c3a42831f23a@6c48a",
"displayName": "RemainingNum_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "d72d5937-a495-4ccc-977e-c3a42831f23a",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "d72d5937-a495-4ccc-977e-c3a42831f23a@f9941",
"displayName": "RemainingNum_01",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 1,
"width": 494,
"height": 494,
"rawWidth": 496,
"rawHeight": 496,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-247,
-247,
0,
247,
-247,
0,
-247,
247,
0,
247,
247,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
1,
495,
495,
495,
1,
1,
495,
1
],
"nuv": [
0.0020161290322580645,
0.0020161290322580645,
0.9979838709677419,
0.0020161290322580645,
0.0020161290322580645,
0.9979838709677419,
0.9979838709677419,
0.9979838709677419
],
"minPos": [
-247,
-247,
0
],
"maxPos": [
247,
247,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "d72d5937-a495-4ccc-977e-c3a42831f23a@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "d72d5937-a495-4ccc-977e-c3a42831f23a@6c48a"
}
}

View File

@ -0,0 +1,19 @@
info face="TopWaysNum_01" size=60 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1
common lineHeight=60 base=47 scaleW=228 scaleH=231 pages=1 packed=0
page id=0 file="TopWaysNum_01.png"
chars count=15
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=23 page=0 chnl=15
char id=43 x=109 y=128 width=52 height=54 xoffset=-1 yoffset=4 xadvance=34 page=0 chnl=15
char id=44 x=162 y=128 width=41 height=44 xoffset=-1 yoffset=23 xadvance=23 page=0 chnl=15
char id=45 x=40 y=191 width=47 height=37 xoffset=-1 yoffset=11 xadvance=29 page=0 chnl=15
char id=46 x=0 y=191 width=39 height=40 xoffset=8 yoffset=12 xadvance=43 page=0 chnl=15
char id=48 x=0 y=0 width=61 height=63 xoffset=-1 yoffset=-1 xadvance=43 page=0 chnl=15
char id=49 x=57 y=64 width=42 height=62 xoffset=-1 yoffset=-1 xadvance=24 page=0 chnl=15
char id=50 x=100 y=64 width=55 height=62 xoffset=-1 yoffset=-1 xadvance=37 page=0 chnl=15
char id=51 x=62 y=0 width=53 height=63 xoffset=-1 yoffset=-1 xadvance=35 page=0 chnl=15
char id=52 x=156 y=64 width=57 height=62 xoffset=-1 yoffset=-1 xadvance=39 page=0 chnl=15
char id=53 x=0 y=128 width=54 height=62 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=15
char id=54 x=116 y=0 width=57 height=63 xoffset=-1 yoffset=-1 xadvance=39 page=0 chnl=15
char id=55 x=55 y=128 width=53 height=61 xoffset=-1 yoffset=-1 xadvance=35 page=0 chnl=15
char id=56 x=174 y=0 width=54 height=63 xoffset=-1 yoffset=-1 xadvance=36 page=0 chnl=15
char id=57 x=0 y=64 width=56 height=63 xoffset=-1 yoffset=-1 xadvance=38 page=0 chnl=15

View File

@ -0,0 +1,187 @@
{
"ver": "1.0.6",
"importer": "bitmap-font",
"imported": true,
"uuid": "af1c32ef-143c-47b0-b6c7-da855426d88d",
"files": [
".json"
],
"subMetas": {},
"userData": {
"_fntConfig": {
"commonHeight": 60,
"fontSize": 60,
"atlasName": "TopWaysNum_01.png",
"fontDefDictionary": {
"32": {
"rect": {
"x": 0,
"y": 0,
"width": 0,
"height": 0
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 23
},
"43": {
"rect": {
"x": 109,
"y": 128,
"width": 52,
"height": 54
},
"xOffset": -1,
"yOffset": 4,
"xAdvance": 34
},
"44": {
"rect": {
"x": 162,
"y": 128,
"width": 41,
"height": 44
},
"xOffset": -1,
"yOffset": 23,
"xAdvance": 23
},
"45": {
"rect": {
"x": 40,
"y": 191,
"width": 47,
"height": 37
},
"xOffset": -1,
"yOffset": 11,
"xAdvance": 29
},
"46": {
"rect": {
"x": 0,
"y": 191,
"width": 39,
"height": 40
},
"xOffset": 8,
"yOffset": 12,
"xAdvance": 43
},
"48": {
"rect": {
"x": 0,
"y": 0,
"width": 61,
"height": 63
},
"xOffset": -1,
"yOffset": -1,
"xAdvance": 43
},
"49": {
"rect": {
"x": 57,
"y": 64,
"width": 42,
"height": 62
},
"xOffset": -1,
"yOffset": -1,
"xAdvance": 24
},
"50": {
"rect": {
"x": 100,
"y": 64,
"width": 55,
"height": 62
},
"xOffset": -1,
"yOffset": -1,
"xAdvance": 37
},
"51": {
"rect": {
"x": 62,
"y": 0,
"width": 53,
"height": 63
},
"xOffset": -1,
"yOffset": -1,
"xAdvance": 35
},
"52": {
"rect": {
"x": 156,
"y": 64,
"width": 57,
"height": 62
},
"xOffset": -1,
"yOffset": -1,
"xAdvance": 39
},
"53": {
"rect": {
"x": 0,
"y": 128,
"width": 54,
"height": 62
},
"xOffset": -1,
"yOffset": -1,
"xAdvance": 36
},
"54": {
"rect": {
"x": 116,
"y": 0,
"width": 57,
"height": 63
},
"xOffset": -1,
"yOffset": -1,
"xAdvance": 39
},
"55": {
"rect": {
"x": 55,
"y": 128,
"width": 53,
"height": 61
},
"xOffset": -1,
"yOffset": -1,
"xAdvance": 35
},
"56": {
"rect": {
"x": 174,
"y": 0,
"width": 54,
"height": 63
},
"xOffset": -1,
"yOffset": -1,
"xAdvance": 36
},
"57": {
"rect": {
"x": 0,
"y": 64,
"width": 56,
"height": 63
},
"xOffset": -1,
"yOffset": -1,
"xAdvance": 38
}
},
"kerningDict": {}
},
"fontSize": 60,
"textureUuid": "7211b7d7-7955-4b65-ab3a-4c14d32d1058"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -2,7 +2,7 @@
"ver": "1.0.27", "ver": "1.0.27",
"importer": "image", "importer": "image",
"imported": true, "imported": true,
"uuid": "68529c1f-1153-406d-8811-bc29bbd5582b", "uuid": "7211b7d7-7955-4b65-ab3a-4c14d32d1058",
"files": [ "files": [
".json", ".json",
".png" ".png"
@ -10,14 +10,14 @@
"subMetas": { "subMetas": {
"6c48a": { "6c48a": {
"importer": "texture", "importer": "texture",
"uuid": "68529c1f-1153-406d-8811-bc29bbd5582b@6c48a", "uuid": "7211b7d7-7955-4b65-ab3a-4c14d32d1058@6c48a",
"displayName": "98", "displayName": "TopWaysNum_01",
"id": "6c48a", "id": "6c48a",
"name": "texture", "name": "texture",
"userData": { "userData": {
"wrapModeS": "clamp-to-edge", "wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge", "wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "68529c1f-1153-406d-8811-bc29bbd5582b", "imageUuidOrDatabaseUri": "7211b7d7-7955-4b65-ab3a-4c14d32d1058",
"isUuid": true, "isUuid": true,
"visible": false, "visible": false,
"minfilter": "linear", "minfilter": "linear",
@ -34,8 +34,8 @@
}, },
"f9941": { "f9941": {
"importer": "sprite-frame", "importer": "sprite-frame",
"uuid": "68529c1f-1153-406d-8811-bc29bbd5582b@f9941", "uuid": "7211b7d7-7955-4b65-ab3a-4c14d32d1058@f9941",
"displayName": "98", "displayName": "TopWaysNum_01",
"id": "f9941", "id": "f9941",
"name": "spriteFrame", "name": "spriteFrame",
"userData": { "userData": {
@ -44,12 +44,12 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 0, "trimX": 1,
"trimY": 0, "trimY": 1,
"width": 798, "width": 226,
"height": 113, "height": 229,
"rawWidth": 798, "rawWidth": 228,
"rawHeight": 113, "rawHeight": 231,
"borderTop": 0, "borderTop": 0,
"borderBottom": 0, "borderBottom": 0,
"borderLeft": 0, "borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0, "meshType": 0,
"vertices": { "vertices": {
"rawPosition": [ "rawPosition": [
-399, -113,
-56.5, -114.5,
0, 0,
399, 113,
-56.5, -114.5,
0, 0,
-399, -113,
56.5, 114.5,
0, 0,
399, 113,
56.5, 114.5,
0 0
], ],
"indexes": [ "indexes": [
@ -83,38 +83,38 @@
3 3
], ],
"uv": [ "uv": [
0,
113,
798,
113,
0,
0,
798,
0
],
"nuv": [
0,
0,
1, 1,
0, 230,
0, 227,
230,
1, 1,
1, 1,
227,
1 1
], ],
"nuv": [
0.0043859649122807015,
0.004329004329004329,
0.9956140350877193,
0.004329004329004329,
0.0043859649122807015,
0.9956709956709957,
0.9956140350877193,
0.9956709956709957
],
"minPos": [ "minPos": [
-399, -113,
-56.5, -114.5,
0 0
], ],
"maxPos": [ "maxPos": [
399, 113,
56.5, 114.5,
0 0
] ]
}, },
"isUuid": true, "isUuid": true,
"imageUuidOrDatabaseUri": "68529c1f-1153-406d-8811-bc29bbd5582b@6c48a", "imageUuidOrDatabaseUri": "7211b7d7-7955-4b65-ab3a-4c14d32d1058@6c48a",
"atlasUuid": "" "atlasUuid": ""
}, },
"ver": "1.0.12", "ver": "1.0.12",
@ -129,6 +129,6 @@
"type": "sprite-frame", "type": "sprite-frame",
"hasAlpha": true, "hasAlpha": true,
"fixAlphaTransparencyArtifacts": false, "fixAlphaTransparencyArtifacts": false,
"redirect": "68529c1f-1153-406d-8811-bc29bbd5582b@6c48a" "redirect": "7211b7d7-7955-4b65-ab3a-4c14d32d1058@6c48a"
} }
} }

View File

@ -0,0 +1,19 @@
info face="TopWaysNum_02" size=60 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1
common lineHeight=60 base=47 scaleW=228 scaleH=231 pages=1 packed=0
page id=0 file="TopWaysNum_02.png"
chars count=15
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=17 page=0 chnl=15
char id=43 x=109 y=128 width=52 height=54 xoffset=0 yoffset=5 xadvance=34 page=0 chnl=15
char id=44 x=162 y=128 width=41 height=44 xoffset=0 yoffset=24 xadvance=23 page=0 chnl=15
char id=45 x=40 y=191 width=47 height=37 xoffset=0 yoffset=12 xadvance=29 page=0 chnl=15
char id=46 x=0 y=191 width=39 height=40 xoffset=9 yoffset=13 xadvance=45 page=0 chnl=15
char id=48 x=0 y=0 width=61 height=63 xoffset=0 yoffset=0 xadvance=43 page=0 chnl=15
char id=49 x=57 y=64 width=42 height=62 xoffset=0 yoffset=0 xadvance=24 page=0 chnl=15
char id=50 x=100 y=64 width=55 height=62 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15
char id=51 x=62 y=0 width=53 height=63 xoffset=0 yoffset=0 xadvance=35 page=0 chnl=15
char id=52 x=156 y=64 width=57 height=62 xoffset=0 yoffset=0 xadvance=39 page=0 chnl=15
char id=53 x=0 y=128 width=54 height=62 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=15
char id=54 x=116 y=0 width=57 height=63 xoffset=0 yoffset=0 xadvance=39 page=0 chnl=15
char id=55 x=55 y=128 width=53 height=61 xoffset=0 yoffset=0 xadvance=35 page=0 chnl=15
char id=56 x=174 y=0 width=54 height=63 xoffset=0 yoffset=0 xadvance=36 page=0 chnl=15
char id=57 x=0 y=64 width=56 height=63 xoffset=0 yoffset=0 xadvance=38 page=0 chnl=15

View File

@ -0,0 +1,187 @@
{
"ver": "1.0.6",
"importer": "bitmap-font",
"imported": true,
"uuid": "b30cf9f0-97dd-47d0-8238-8c1f1ce1404f",
"files": [
".json"
],
"subMetas": {},
"userData": {
"_fntConfig": {
"commonHeight": 60,
"fontSize": 60,
"atlasName": "TopWaysNum_02.png",
"fontDefDictionary": {
"32": {
"rect": {
"x": 0,
"y": 0,
"width": 0,
"height": 0
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 17
},
"43": {
"rect": {
"x": 109,
"y": 128,
"width": 52,
"height": 54
},
"xOffset": 0,
"yOffset": 5,
"xAdvance": 34
},
"44": {
"rect": {
"x": 162,
"y": 128,
"width": 41,
"height": 44
},
"xOffset": 0,
"yOffset": 24,
"xAdvance": 23
},
"45": {
"rect": {
"x": 40,
"y": 191,
"width": 47,
"height": 37
},
"xOffset": 0,
"yOffset": 12,
"xAdvance": 29
},
"46": {
"rect": {
"x": 0,
"y": 191,
"width": 39,
"height": 40
},
"xOffset": 9,
"yOffset": 13,
"xAdvance": 45
},
"48": {
"rect": {
"x": 0,
"y": 0,
"width": 61,
"height": 63
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 43
},
"49": {
"rect": {
"x": 57,
"y": 64,
"width": 42,
"height": 62
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 24
},
"50": {
"rect": {
"x": 100,
"y": 64,
"width": 55,
"height": 62
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 37
},
"51": {
"rect": {
"x": 62,
"y": 0,
"width": 53,
"height": 63
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 35
},
"52": {
"rect": {
"x": 156,
"y": 64,
"width": 57,
"height": 62
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 39
},
"53": {
"rect": {
"x": 0,
"y": 128,
"width": 54,
"height": 62
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 36
},
"54": {
"rect": {
"x": 116,
"y": 0,
"width": 57,
"height": 63
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 39
},
"55": {
"rect": {
"x": 55,
"y": 128,
"width": 53,
"height": 61
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 35
},
"56": {
"rect": {
"x": 174,
"y": 0,
"width": 54,
"height": 63
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 36
},
"57": {
"rect": {
"x": 0,
"y": 64,
"width": 56,
"height": 63
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 38
}
},
"kerningDict": {}
},
"fontSize": 60,
"textureUuid": "a7567e2a-870f-47a0-9a8c-0d25bfaecff4"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -2,7 +2,7 @@
"ver": "1.0.27", "ver": "1.0.27",
"importer": "image", "importer": "image",
"imported": true, "imported": true,
"uuid": "c0b198e4-07bf-40e8-8fc1-f120cac10927", "uuid": "a7567e2a-870f-47a0-9a8c-0d25bfaecff4",
"files": [ "files": [
".json", ".json",
".png" ".png"
@ -10,14 +10,14 @@
"subMetas": { "subMetas": {
"6c48a": { "6c48a": {
"importer": "texture", "importer": "texture",
"uuid": "c0b198e4-07bf-40e8-8fc1-f120cac10927@6c48a", "uuid": "a7567e2a-870f-47a0-9a8c-0d25bfaecff4@6c48a",
"displayName": "99", "displayName": "TopWaysNum_02",
"id": "6c48a", "id": "6c48a",
"name": "texture", "name": "texture",
"userData": { "userData": {
"wrapModeS": "clamp-to-edge", "wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge", "wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "c0b198e4-07bf-40e8-8fc1-f120cac10927", "imageUuidOrDatabaseUri": "a7567e2a-870f-47a0-9a8c-0d25bfaecff4",
"isUuid": true, "isUuid": true,
"visible": false, "visible": false,
"minfilter": "linear", "minfilter": "linear",
@ -34,8 +34,8 @@
}, },
"f9941": { "f9941": {
"importer": "sprite-frame", "importer": "sprite-frame",
"uuid": "c0b198e4-07bf-40e8-8fc1-f120cac10927@f9941", "uuid": "a7567e2a-870f-47a0-9a8c-0d25bfaecff4@f9941",
"displayName": "99", "displayName": "TopWaysNum_02",
"id": "f9941", "id": "f9941",
"name": "spriteFrame", "name": "spriteFrame",
"userData": { "userData": {
@ -44,12 +44,12 @@
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": 0,
"offsetY": 0, "offsetY": 0,
"trimX": 0, "trimX": 1,
"trimY": 0, "trimY": 1,
"width": 778, "width": 226,
"height": 113, "height": 229,
"rawWidth": 778, "rawWidth": 228,
"rawHeight": 113, "rawHeight": 231,
"borderTop": 0, "borderTop": 0,
"borderBottom": 0, "borderBottom": 0,
"borderLeft": 0, "borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0, "meshType": 0,
"vertices": { "vertices": {
"rawPosition": [ "rawPosition": [
-389, -113,
-56.5, -114.5,
0, 0,
389, 113,
-56.5, -114.5,
0, 0,
-389, -113,
56.5, 114.5,
0, 0,
389, 113,
56.5, 114.5,
0 0
], ],
"indexes": [ "indexes": [
@ -83,38 +83,38 @@
3 3
], ],
"uv": [ "uv": [
0,
113,
778,
113,
0,
0,
778,
0
],
"nuv": [
0,
0,
1, 1,
0, 230,
0, 227,
230,
1, 1,
1, 1,
227,
1 1
], ],
"nuv": [
0.0043859649122807015,
0.004329004329004329,
0.9956140350877193,
0.004329004329004329,
0.0043859649122807015,
0.9956709956709957,
0.9956140350877193,
0.9956709956709957
],
"minPos": [ "minPos": [
-389, -113,
-56.5, -114.5,
0 0
], ],
"maxPos": [ "maxPos": [
389, 113,
56.5, 114.5,
0 0
] ]
}, },
"isUuid": true, "isUuid": true,
"imageUuidOrDatabaseUri": "c0b198e4-07bf-40e8-8fc1-f120cac10927@6c48a", "imageUuidOrDatabaseUri": "a7567e2a-870f-47a0-9a8c-0d25bfaecff4@6c48a",
"atlasUuid": "" "atlasUuid": ""
}, },
"ver": "1.0.12", "ver": "1.0.12",
@ -129,6 +129,6 @@
"type": "sprite-frame", "type": "sprite-frame",
"hasAlpha": true, "hasAlpha": true,
"fixAlphaTransparencyArtifacts": false, "fixAlphaTransparencyArtifacts": false,
"redirect": "c0b198e4-07bf-40e8-8fc1-f120cac10927@6c48a" "redirect": "a7567e2a-870f-47a0-9a8c-0d25bfaecff4@6c48a"
} }
} }

View File

@ -0,0 +1,21 @@
info face="WinWinWinNum_01" size=145 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1
common lineHeight=145 base=112 scaleW=593 scaleH=579 pages=1 packed=0
page id=0 file="WinWinWinNum_01.png"
chars count=17
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=41 page=0 chnl=15
char id=43 x=475 y=168 width=118 height=123 xoffset=0 yoffset=19 xadvance=98 page=0 chnl=15
char id=44 x=0 y=489 width=79 height=90 xoffset=-14 yoffset=101 xadvance=54 page=0 chnl=15
char id=45 x=80 y=489 width=78 height=61 xoffset=0 yoffset=50 xadvance=58 page=0 chnl=15
char id=46 x=518 y=0 width=70 height=74 xoffset=0 yoffset=100 xadvance=50 page=0 chnl=15
char id=48 x=0 y=0 width=134 height=167 xoffset=0 yoffset=0 xadvance=114 page=0 chnl=15
char id=49 x=393 y=168 width=81 height=157 xoffset=0 yoffset=0 xadvance=61 page=0 chnl=15
char id=50 x=389 y=0 width=128 height=162 xoffset=0 yoffset=0 xadvance=108 page=0 chnl=15
char id=51 x=135 y=0 width=128 height=167 xoffset=0 yoffset=0 xadvance=108 page=0 chnl=15
char id=52 x=0 y=331 width=134 height=157 xoffset=0 yoffset=0 xadvance=114 page=0 chnl=15
char id=53 x=270 y=168 width=122 height=161 xoffset=0 yoffset=0 xadvance=102 page=0 chnl=15
char id=54 x=0 y=168 width=134 height=162 xoffset=0 yoffset=0 xadvance=114 page=0 chnl=15
char id=55 x=135 y=331 width=135 height=157 xoffset=0 yoffset=0 xadvance=115 page=0 chnl=15
char id=56 x=264 y=0 width=124 height=163 xoffset=0 yoffset=0 xadvance=104 page=0 chnl=15
char id=57 x=135 y=168 width=134 height=162 xoffset=0 yoffset=0 xadvance=114 page=0 chnl=15
char id=88 x=271 y=331 width=160 height=157 xoffset=0 yoffset=0 xadvance=140 page=0 chnl=15
char id=120 x=432 y=331 width=150 height=119 xoffset=0 yoffset=38 xadvance=130 page=0 chnl=15

View File

@ -0,0 +1,209 @@
{
"ver": "1.0.6",
"importer": "bitmap-font",
"imported": true,
"uuid": "42af2cb2-a2c9-4bcc-a5bb-925456bbbec2",
"files": [
".json"
],
"subMetas": {},
"userData": {
"_fntConfig": {
"commonHeight": 145,
"fontSize": 145,
"atlasName": "WinWinWinNum_01.png",
"fontDefDictionary": {
"32": {
"rect": {
"x": 0,
"y": 0,
"width": 0,
"height": 0
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 41
},
"43": {
"rect": {
"x": 475,
"y": 168,
"width": 118,
"height": 123
},
"xOffset": 0,
"yOffset": 19,
"xAdvance": 98
},
"44": {
"rect": {
"x": 0,
"y": 489,
"width": 79,
"height": 90
},
"xOffset": -14,
"yOffset": 101,
"xAdvance": 54
},
"45": {
"rect": {
"x": 80,
"y": 489,
"width": 78,
"height": 61
},
"xOffset": 0,
"yOffset": 50,
"xAdvance": 58
},
"46": {
"rect": {
"x": 518,
"y": 0,
"width": 70,
"height": 74
},
"xOffset": 0,
"yOffset": 100,
"xAdvance": 50
},
"48": {
"rect": {
"x": 0,
"y": 0,
"width": 134,
"height": 167
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 114
},
"49": {
"rect": {
"x": 393,
"y": 168,
"width": 81,
"height": 157
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 61
},
"50": {
"rect": {
"x": 389,
"y": 0,
"width": 128,
"height": 162
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 108
},
"51": {
"rect": {
"x": 135,
"y": 0,
"width": 128,
"height": 167
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 108
},
"52": {
"rect": {
"x": 0,
"y": 331,
"width": 134,
"height": 157
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 114
},
"53": {
"rect": {
"x": 270,
"y": 168,
"width": 122,
"height": 161
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 102
},
"54": {
"rect": {
"x": 0,
"y": 168,
"width": 134,
"height": 162
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 114
},
"55": {
"rect": {
"x": 135,
"y": 331,
"width": 135,
"height": 157
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 115
},
"56": {
"rect": {
"x": 264,
"y": 0,
"width": 124,
"height": 163
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 104
},
"57": {
"rect": {
"x": 135,
"y": 168,
"width": 134,
"height": 162
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 114
},
"88": {
"rect": {
"x": 271,
"y": 331,
"width": 160,
"height": 157
},
"xOffset": 0,
"yOffset": 0,
"xAdvance": 140
},
"120": {
"rect": {
"x": 432,
"y": 331,
"width": 150,
"height": 119
},
"xOffset": 0,
"yOffset": 38,
"xAdvance": 130
}
},
"kerningDict": {}
},
"fontSize": 145,
"textureUuid": "f202a351-1636-4029-a79f-8ad409b519d8"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

View File

@ -0,0 +1,134 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "f202a351-1636-4029-a79f-8ad409b519d8",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "f202a351-1636-4029-a79f-8ad409b519d8@6c48a",
"displayName": "WinWinWinNum_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "f202a351-1636-4029-a79f-8ad409b519d8",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "f202a351-1636-4029-a79f-8ad409b519d8@f9941",
"displayName": "WinWinWinNum_01",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 1,
"trimY": 1,
"width": 591,
"height": 577,
"rawWidth": 593,
"rawHeight": 579,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-295.5,
-288.5,
0,
295.5,
-288.5,
0,
-295.5,
288.5,
0,
295.5,
288.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
1,
578,
592,
578,
1,
1,
592,
1
],
"nuv": [
0.0016863406408094434,
0.0017271157167530224,
0.9983136593591906,
0.0017271157167530224,
0.0016863406408094434,
0.998272884283247,
0.9983136593591906,
0.998272884283247
],
"minPos": [
-295.5,
-288.5,
0
],
"maxPos": [
295.5,
288.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "f202a351-1636-4029-a79f-8ad409b519d8@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "f202a351-1636-4029-a79f-8ad409b519d8@6c48a"
}
}

Some files were not shown because too many files have changed in this diff Show More