Compare commits

...

36 Commits

Author SHA1 Message Date
TJH
f113618abe 帮助赔率界面使用节点池,减少消耗
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-07-06 17:14:18 +08:00
TJH
a3872e1a18 退出游戏后打开from代表的网页
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m2s
2026-07-06 14:50:18 +08:00
TJH
d2d2540de0 UI修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-07-01 15:32:40 +08:00
TJH
97b836b9df bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-06-29 17:16:49 +08:00
TJH
1f7dfcfffa 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m12s
2026-06-29 15:09:46 +08:00
TJH
d099caf374 缅甸泰语在某些系统下错位问题的修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m2s
2026-06-29 15:08:53 +08:00
TJH
deaaf21e3c 开始滚动前获取余额时,如果网络错误,添加错误后的处理
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m3s
2026-06-25 16:40:41 +08:00
TJH
10562f980c 购买按钮隐藏的逻辑修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-06-11 11:15:35 +08:00
TJH
ef4560fe8c 余额不足提示逻辑调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-06-11 10:18:49 +08:00
TJH
c62d2a1522 点击余额不足提示确认按钮时刷新玩家余额的显示
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-06-10 14:40:27 +08:00
TJH
09f7990e6d 余额刷新添加点击限制
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-06-10 09:55:32 +08:00
TJH
897f305ae3 余额不足时在客户端拦截,不经过spin接口
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m4s
2026-06-08 15:23:28 +08:00
TJH
d6d9db5f65 历史记录详情调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-05-28 15:17:38 +08:00
TJH
51d05d5209 帮助赔率历史记录的屏幕适配
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m3s
2026-05-28 15:08:14 +08:00
TJH
d5719f29f5 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m11s
2026-05-12 10:13:59 +08:00
TJH
05c98897e8 bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m4s
2026-05-12 10:09:47 +08:00
TJH
548307cc79 进度条初始显示为0%
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-02-26 10:17:36 +08:00
TJH
58dc911529 bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2026-02-25 16:03:15 +08:00
TJH
d9d6a9bbe4 点击停止逻辑
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m23s
2026-02-25 15:48:52 +08:00
TJH
90d873c4cd test
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m25s
2026-02-25 14:13:09 +08:00
TJH
c035ac8c54 点击停止逻辑修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m27s
2026-02-25 13:32:32 +08:00
TJH
08bcd8faf1 点击停止的节奏修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-02-24 17:40:55 +08:00
TJH
7915edd14c Type为1的背景框没有正确显示的bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m23s
2026-02-24 16:15:40 +08:00
TJH
2a3afc71a4 ui
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m23s
2026-02-24 14:45:02 +08:00
TJH
e963a68bb2 ui调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m9s
2026-02-24 10:49:49 +08:00
TJH
d25e165b55 1 2026-02-08 09:47:51 +08:00
TJH
d7d34fba67 历史记录bug修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2026-02-03 16:42:32 +08:00
TJH
bdc590f3a3 龙虎榜UI修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m4s
2026-01-31 15:37:51 +08:00
TJH
c3ee424988 1 2026-01-22 16:07:11 +08:00
TJH
82dbef86ef 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-01-22 16:04:47 +08:00
TJH
089e040af3 ui
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2026-01-22 16:03:01 +08:00
TJH
8935ded46a ui调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m9s
2026-01-22 11:06:19 +08:00
TJH
f0b70996a5 ui调整 2026-01-21 17:49:47 +08:00
TJH
f3539d2e65 loading界面修改 2026-01-20 11:27:35 +08:00
TJH
a96ea74205 bigwin点击停止时没播放结算音效的bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m5s
2026-01-08 10:18:09 +08:00
TJH
f46b37ec39 消除时掉线可以重试或退出
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-01-07 17:10:18 +08:00
97 changed files with 14475 additions and 12231 deletions

View File

@ -19,7 +19,9 @@ jobs:
echo "💡 The ${{ github.repository }} repository has been cloned to the runner." echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- name: npm i - name: npm i
run: | run: |
echo 'npm i'
npm i npm i
echo "✅ npm i done"
- name: build - name: build
run: | run: |
echo 'build' echo 'build'

View File

@ -1037,7 +1037,7 @@
"__id__": 378 "__id__": 378
} }
], ],
"_active": true, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 387 "__id__": 387
@ -15686,7 +15686,7 @@
"__id__": 940 "__id__": 940
} }
], ],
"_active": false, "_active": true,
"_components": [ "_components": [
{ {
"__id__": 1004 "__id__": 1004
@ -26074,7 +26074,7 @@
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 1080, "width": 1080,
"height": 1920 "height": 1920.0000000000002
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
@ -26151,7 +26151,7 @@
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 1080, "width": 1080,
"height": 1920 "height": 1920.0000000000002
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",

View File

@ -373,7 +373,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": -369, "x": -320,
"y": 3, "y": 3,
"z": 0 "z": 0
}, },
@ -532,7 +532,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": -190, "x": -140,
"y": 3, "y": 3,
"z": 0 "z": 0
}, },
@ -701,7 +701,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 15, "x": 50,
"y": 3, "y": 3,
"z": 0 "z": 0
}, },
@ -1359,7 +1359,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 205, "x": 220,
"y": 3, "y": 3,
"z": 0 "z": 0
}, },
@ -1522,7 +1522,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 366, "x": 378,
"y": 0, "y": 0,
"z": 0 "z": 0
}, },

View File

@ -234,7 +234,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": -369, "x": -320,
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
@ -393,7 +393,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": -190, "x": -140,
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
@ -562,7 +562,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 15, "x": 50,
"y": 0, "y": 0,
"z": 0 "z": 0
}, },
@ -1220,7 +1220,7 @@
}, },
"_lpos": { "_lpos": {
"__type__": "cc.Vec3", "__type__": "cc.Vec3",
"x": 205, "x": 220,
"y": 0, "y": 0,
"z": 0 "z": 0
}, },

View File

@ -129,13 +129,8 @@ export class SlotRanking extends Component {
// 检查是否可以点击排行榜按钮 // 检查是否可以点击排行榜按钮
canClickRankingBtn(): boolean { canClickRankingBtn(): boolean {
console.log('slotScene', this.slotScene)
if (!this.slotScene) return true; 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()) { if (this.slotScene.slotGame && this.slotScene.slotGame.isScroll()) {
return false; return false;
@ -225,7 +220,6 @@ export class SlotRanking extends Component {
this.isClick = false; this.isClick = false;
return; return;
} }
console.log('isClick', this.isClick)
if (this.isClick) { if (this.isClick) {
// 检查是否可以点击 // 检查是否可以点击
if (!this.canClickRankingBtn()) { if (!this.canClickRankingBtn()) {

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -2,10 +2,10 @@
"ver": "1.0.1", "ver": "1.0.1",
"importer": "ttf-font", "importer": "ttf-font",
"imported": true, "imported": true,
"uuid": "69fbd01d-29d4-4356-b163-4a703a7d45e4", "uuid": "922161d3-e56f-47de-b9ee-b1ffdb27939b",
"files": [ "files": [
".json", ".json",
"FranklinGothicDemiCond.ttf" "Avenir Next World Demi.ttf"
], ],
"subMetas": {}, "subMetas": {},
"userData": {} "userData": {}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "53564fbb-0c8f-48f6-9f1a-a9bdc54fd297",
"files": [
".json",
"Avenir Next World Medium.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "734202fa-7b80-48b5-9ed4-07c715826c06",
"files": [],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -2,10 +2,10 @@
"ver": "1.0.1", "ver": "1.0.1",
"importer": "ttf-font", "importer": "ttf-font",
"imported": true, "imported": true,
"uuid": "2e641180-f09b-4b02-b393-585d06441b69", "uuid": "d9c1c5ff-ffc2-4cd4-a343-39bd8388746d",
"files": [ "files": [
".json", ".json",
"FranklinGothicMedium.ttf" "AvenirNextWorldDemi.ttf"
], ],
"subMetas": {}, "subMetas": {},
"userData": {} "userData": {}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "5e31c32e-aa54-4a32-b793-32a4dc06a811",
"files": [
".json",
"AvenirNextWorldMedium.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "704ad71c-5bed-458d-b306-9fc5328576b1",
"files": [
".json",
"Pyidaungsu_Bold.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "dfdc09d9-7107-4534-905c-904db5297c61",
"files": [
".json",
"Pyidaungsu_Regular.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -2,10 +2,10 @@
"ver": "1.0.1", "ver": "1.0.1",
"importer": "ttf-font", "importer": "ttf-font",
"imported": true, "imported": true,
"uuid": "dc119423-a444-4856-a346-92cc7e6d420a", "uuid": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
"files": [ "files": [
".json", ".json",
"Pyidaungsu.ttf" "Roboto_Bold.ttf"
], ],
"subMetas": {}, "subMetas": {},
"userData": {} "userData": {}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "4b259f80-bc47-4cdc-a6d9-c69a67186770",
"files": [
".json",
"Roboto_Regular.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@ -2,22 +2,22 @@
"ver": "1.0.27", "ver": "1.0.27",
"importer": "image", "importer": "image",
"imported": true, "imported": true,
"uuid": "e5cebe29-f875-42da-9411-55fab49de5f9", "uuid": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1",
"files": [ "files": [
".json", ".jpg",
".png" ".json"
], ],
"subMetas": { "subMetas": {
"6c48a": { "6c48a": {
"importer": "texture", "importer": "texture",
"uuid": "e5cebe29-f875-42da-9411-55fab49de5f9@6c48a", "uuid": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@6c48a",
"displayName": "Icon_Assets", "displayName": "en_menu",
"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": "e5cebe29-f875-42da-9411-55fab49de5f9", "imageUuidOrDatabaseUri": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1",
"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": "e5cebe29-f875-42da-9411-55fab49de5f9@f9941", "uuid": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@f9941",
"displayName": "Icon_Assets", "displayName": "en_menu",
"id": "f9941", "id": "f9941",
"name": "spriteFrame", "name": "spriteFrame",
"userData": { "userData": {
@ -46,10 +46,10 @@
"offsetY": 0, "offsetY": 0,
"trimX": 0, "trimX": 0,
"trimY": 0, "trimY": 0,
"width": 24, "width": 1080,
"height": 29, "height": 1920,
"rawWidth": 24, "rawWidth": 1080,
"rawHeight": 29, "rawHeight": 1920,
"borderTop": 0, "borderTop": 0,
"borderBottom": 0, "borderBottom": 0,
"borderLeft": 0, "borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0, "meshType": 0,
"vertices": { "vertices": {
"rawPosition": [ "rawPosition": [
-12, -540,
-14.5, -960,
0, 0,
12, 540,
-14.5, -960,
0, 0,
-12, -540,
14.5, 960,
0, 0,
12, 540,
14.5, 960,
0 0
], ],
"indexes": [ "indexes": [
@ -84,12 +84,12 @@
], ],
"uv": [ "uv": [
0, 0,
29, 1920,
24, 1080,
29, 1920,
0, 0,
0, 0,
24, 1080,
0 0
], ],
"nuv": [ "nuv": [
@ -103,18 +103,18 @@
1 1
], ],
"minPos": [ "minPos": [
-12, -540,
-14.5, -960,
0 0
], ],
"maxPos": [ "maxPos": [
12, 540,
14.5, 960,
0 0
] ]
}, },
"isUuid": true, "isUuid": true,
"imageUuidOrDatabaseUri": "e5cebe29-f875-42da-9411-55fab49de5f9@6c48a", "imageUuidOrDatabaseUri": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@6c48a",
"atlasUuid": "" "atlasUuid": ""
}, },
"ver": "1.0.12", "ver": "1.0.12",
@ -127,8 +127,8 @@
}, },
"userData": { "userData": {
"type": "sprite-frame", "type": "sprite-frame",
"hasAlpha": true, "hasAlpha": false,
"fixAlphaTransparencyArtifacts": false, "fixAlphaTransparencyArtifacts": false,
"redirect": "e5cebe29-f875-42da-9411-55fab49de5f9@6c48a" "redirect": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@6c48a"
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@ -2,22 +2,22 @@
"ver": "1.0.27", "ver": "1.0.27",
"importer": "image", "importer": "image",
"imported": true, "imported": true,
"uuid": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207", "uuid": "2144f07c-fd81-4212-8637-b66803fb325a",
"files": [ "files": [
".json", ".jpg",
".png" ".json"
], ],
"subMetas": { "subMetas": {
"6c48a": { "6c48a": {
"importer": "texture", "importer": "texture",
"uuid": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207@6c48a", "uuid": "2144f07c-fd81-4212-8637-b66803fb325a@6c48a",
"displayName": "Icon_Close_B", "displayName": "menu_th",
"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": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207", "imageUuidOrDatabaseUri": "2144f07c-fd81-4212-8637-b66803fb325a",
"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": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207@f9941", "uuid": "2144f07c-fd81-4212-8637-b66803fb325a@f9941",
"displayName": "Icon_Close_B", "displayName": "menu_th",
"id": "f9941", "id": "f9941",
"name": "spriteFrame", "name": "spriteFrame",
"userData": { "userData": {
@ -46,10 +46,10 @@
"offsetY": 0, "offsetY": 0,
"trimX": 0, "trimX": 0,
"trimY": 0, "trimY": 0,
"width": 78, "width": 1080,
"height": 78, "height": 1920,
"rawWidth": 78, "rawWidth": 1080,
"rawHeight": 78, "rawHeight": 1920,
"borderTop": 0, "borderTop": 0,
"borderBottom": 0, "borderBottom": 0,
"borderLeft": 0, "borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0, "meshType": 0,
"vertices": { "vertices": {
"rawPosition": [ "rawPosition": [
-39, -540,
-39, -960,
0, 0,
39, 540,
-39, -960,
0, 0,
-39, -540,
39, 960,
0, 0,
39, 540,
39, 960,
0 0
], ],
"indexes": [ "indexes": [
@ -84,12 +84,12 @@
], ],
"uv": [ "uv": [
0, 0,
78, 1920,
78, 1080,
78, 1920,
0, 0,
0, 0,
78, 1080,
0 0
], ],
"nuv": [ "nuv": [
@ -103,18 +103,18 @@
1 1
], ],
"minPos": [ "minPos": [
-39, -540,
-39, -960,
0 0
], ],
"maxPos": [ "maxPos": [
39, 540,
39, 960,
0 0
] ]
}, },
"isUuid": true, "isUuid": true,
"imageUuidOrDatabaseUri": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207@6c48a", "imageUuidOrDatabaseUri": "2144f07c-fd81-4212-8637-b66803fb325a@6c48a",
"atlasUuid": "" "atlasUuid": ""
}, },
"ver": "1.0.12", "ver": "1.0.12",
@ -127,8 +127,8 @@
}, },
"userData": { "userData": {
"type": "sprite-frame", "type": "sprite-frame",
"hasAlpha": true, "hasAlpha": false,
"fixAlphaTransparencyArtifacts": false, "fixAlphaTransparencyArtifacts": false,
"redirect": "ed1140c0-f2bf-4d11-a53e-9b29e86ad207@6c48a" "redirect": "2144f07c-fd81-4212-8637-b66803fb325a@6c48a"
} }
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

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": "6affb4b8-f7ac-4e05-bf75-735027b2eb98",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@6c48a",
"displayName": "Icon_GameRule",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "6affb4b8-f7ac-4e05-bf75-735027b2eb98",
"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": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@f9941",
"displayName": "Icon_GameRule",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 87,
"height": 70,
"rawWidth": 87,
"rawHeight": 70,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-43.5,
-35,
0,
43.5,
-35,
0,
-43.5,
35,
0,
43.5,
35,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
70,
87,
70,
0,
0,
87,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-43.5,
-35,
0
],
"maxPos": [
43.5,
35,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "8aaeafda-3c56-4c17-99af-f2373749c581",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "8aaeafda-3c56-4c17-99af-f2373749c581@6c48a",
"displayName": "Icon_History",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "8aaeafda-3c56-4c17-99af-f2373749c581",
"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": "8aaeafda-3c56-4c17-99af-f2373749c581@f9941",
"displayName": "Icon_History",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 88,
"height": 88,
"rawWidth": 88,
"rawHeight": 88,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-44,
-44,
0,
44,
-44,
0,
-44,
44,
0,
44,
44,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
88,
88,
88,
0,
0,
88,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-44,
-44,
0
],
"maxPos": [
44,
44,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "8aaeafda-3c56-4c17-99af-f2373749c581@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "8aaeafda-3c56-4c17-99af-f2373749c581@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@6c48a",
"displayName": "Icon_Paytable",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1",
"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": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@f9941",
"displayName": "Icon_Paytable",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 85,
"height": 85,
"rawWidth": 85,
"rawHeight": 85,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-42.5,
-42.5,
0,
42.5,
-42.5,
0,
-42.5,
42.5,
0,
42.5,
42.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
85,
85,
85,
0,
0,
85,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-42.5,
-42.5,
0
],
"maxPos": [
42.5,
42.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@6c48a",
"displayName": "Icon_Sound",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa",
"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": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@f9941",
"displayName": "Icon_Sound",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 84,
"height": 80,
"rawWidth": 84,
"rawHeight": 80,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-42,
-40,
0,
42,
-40,
0,
-42,
40,
0,
42,
40,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
80,
84,
80,
0,
0,
84,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-42,
-40,
0
],
"maxPos": [
42,
40,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "d2d634ff-7c81-4fce-a797-1a6f3961463e",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "d2d634ff-7c81-4fce-a797-1a6f3961463e@6c48a",
"displayName": "Icon_SoundOFF",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "d2d634ff-7c81-4fce-a797-1a6f3961463e",
"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": "d2d634ff-7c81-4fce-a797-1a6f3961463e@f9941",
"displayName": "Icon_SoundOFF",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 84,
"height": 80,
"rawWidth": 84,
"rawHeight": 80,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-42,
-40,
0,
42,
-40,
0,
-42,
40,
0,
42,
40,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
80,
84,
80,
0,
0,
84,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-42,
-40,
0
],
"maxPos": [
42,
40,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "d2d634ff-7c81-4fce-a797-1a6f3961463e@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "d2d634ff-7c81-4fce-a797-1a6f3961463e@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "de9577d4-f908-485a-b81d-c9d87d447d40",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "de9577d4-f908-485a-b81d-c9d87d447d40@6c48a",
"displayName": "Icon_Wallet",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "de9577d4-f908-485a-b81d-c9d87d447d40",
"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": "de9577d4-f908-485a-b81d-c9d87d447d40@f9941",
"displayName": "Icon_Wallet",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 27,
"height": 27,
"rawWidth": 27,
"rawHeight": 27,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-13.5,
-13.5,
0,
13.5,
-13.5,
0,
-13.5,
13.5,
0,
13.5,
13.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
27,
27,
27,
0,
0,
27,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-13.5,
-13.5,
0
],
"maxPos": [
13.5,
13.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "de9577d4-f908-485a-b81d-c9d87d447d40@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "de9577d4-f908-485a-b81d-c9d87d447d40@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "2e5fb33e-e3d1-4853-8ab7-448e0170717c",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@6c48a",
"displayName": "Icon_Win",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "2e5fb33e-e3d1-4853-8ab7-448e0170717c",
"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": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@f9941",
"displayName": "Icon_Win",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 30,
"height": 30,
"rawWidth": 30,
"rawHeight": 30,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-15,
-15,
0,
15,
-15,
0,
-15,
15,
0,
15,
15,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
30,
30,
30,
0,
0,
30,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-15,
-15,
0
],
"maxPos": [
15,
15,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "a2a2f74e-ef42-435c-90fe-aaf69a54c137",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@6c48a",
"displayName": "button_AutoSpin_Circle",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "a2a2f74e-ef42-435c-90fe-aaf69a54c137",
"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": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@f9941",
"displayName": "button_AutoSpin_Circle",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 117,
"height": 117,
"rawWidth": 117,
"rawHeight": 117,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-58.5,
-58.5,
0,
58.5,
-58.5,
0,
-58.5,
58.5,
0,
58.5,
58.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
117,
117,
117,
0,
0,
117,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-58.5,
-58.5,
0
],
"maxPos": [
58.5,
58.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@6c48a",
"displayName": "button_AutoSpin_Gear",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb",
"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": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@f9941",
"displayName": "button_AutoSpin_Gear",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 98,
"height": 98,
"rawWidth": 98,
"rawHeight": 98,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-49,
-49,
0,
49,
-49,
0,
-49,
49,
0,
49,
49,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
98,
98,
98,
0,
0,
98,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-49,
-49,
0
],
"maxPos": [
49,
49,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 B

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@6c48a",
"displayName": "button_AutoSpin_Play",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8",
"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": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@f9941",
"displayName": "button_AutoSpin_Play",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 33,
"height": 37,
"rawWidth": 33,
"rawHeight": 37,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-16.5,
-18.5,
0,
16.5,
-18.5,
0,
-16.5,
18.5,
0,
16.5,
18.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
37,
33,
37,
0,
0,
33,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-16.5,
-18.5,
0
],
"maxPos": [
16.5,
18.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "4129de75-e083-4516-a931-a88a64cdd5ab",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "4129de75-e083-4516-a931-a88a64cdd5ab@6c48a",
"displayName": "button_IconMenu",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "4129de75-e083-4516-a931-a88a64cdd5ab",
"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": "4129de75-e083-4516-a931-a88a64cdd5ab@f9941",
"displayName": "button_IconMenu",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 56,
"height": 49,
"rawWidth": 56,
"rawHeight": 49,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-28,
-24.5,
0,
28,
-24.5,
0,
-28,
24.5,
0,
28,
24.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
49,
56,
49,
0,
0,
56,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-28,
-24.5,
0
],
"maxPos": [
28,
24.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "4129de75-e083-4516-a931-a88a64cdd5ab@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "4129de75-e083-4516-a931-a88a64cdd5ab@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "923a32e3-39cd-41f0-b43e-b1ad4186a187",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "923a32e3-39cd-41f0-b43e-b1ad4186a187@6c48a",
"displayName": "button_fast",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "923a32e3-39cd-41f0-b43e-b1ad4186a187",
"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": "923a32e3-39cd-41f0-b43e-b1ad4186a187@f9941",
"displayName": "button_fast",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 98,
"height": 100,
"rawWidth": 98,
"rawHeight": 100,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-49,
-50,
0,
49,
-50,
0,
-49,
50,
0,
49,
50,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
100,
98,
100,
0,
0,
98,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-49,
-50,
0
],
"maxPos": [
49,
50,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "923a32e3-39cd-41f0-b43e-b1ad4186a187@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "923a32e3-39cd-41f0-b43e-b1ad4186a187@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "6b078b73-c3e7-47e7-b56d-c71410c46f79",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "6b078b73-c3e7-47e7-b56d-c71410c46f79@6c48a",
"displayName": "button_jia",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "6b078b73-c3e7-47e7-b56d-c71410c46f79",
"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": "6b078b73-c3e7-47e7-b56d-c71410c46f79@f9941",
"displayName": "button_jia",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 92,
"height": 92,
"rawWidth": 92,
"rawHeight": 92,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-46,
-46,
0,
46,
-46,
0,
-46,
46,
0,
46,
46,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
92,
92,
92,
0,
0,
92,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-46,
-46,
0
],
"maxPos": [
46,
46,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "6b078b73-c3e7-47e7-b56d-c71410c46f79@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "6b078b73-c3e7-47e7-b56d-c71410c46f79@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "d190ca25-ff49-43b3-bf2c-67dfacec94c2",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@6c48a",
"displayName": "button_jian",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "d190ca25-ff49-43b3-bf2c-67dfacec94c2",
"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": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@f9941",
"displayName": "button_jian",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 92,
"height": 92,
"rawWidth": 92,
"rawHeight": 92,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-46,
-46,
0,
46,
-46,
0,
-46,
46,
0,
46,
46,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
92,
92,
92,
0,
0,
92,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-46,
-46,
0
],
"maxPos": [
46,
46,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@6c48a"
}
}

View File

@ -0,0 +1,63 @@
import { _decorator, Component, Node } from 'cc';
import NoSleep from 'nosleep.js';
const { ccclass,property } = _decorator;
@ccclass('AntiSleepManager')
export class AntiSleepManager extends Component {
private noSleep: NoSleep | null = null;
private wakeLock: any = null;
_enabled: boolean = false;
onLoad() {
this.noSleep = new NoSleep();
}
clickStart(){
if(this._enabled) return
this.enableWakeLock();
}
async enableWakeLock() {
this._enabled = true
try {
if ('wakeLock' in navigator) {
this.wakeLock = await (navigator as any).wakeLock.request('screen');
// console.log('✅ 屏幕常亮已启用 (Wake Lock API)');
// 处理页面切换时丢失锁
document.addEventListener('visibilitychange', async () => {
if (document.visibilityState === 'visible') {
this.wakeLock = await (navigator as any).wakeLock.request('screen');
}
});
} else {
this.noSleep?.enable();
// console.log('✅ 屏幕常亮已启用 (NoSleep.js)');
}
} catch (err) {
this._enabled = false
// console.error('❌ 启用屏幕常亮失败:', err);
}
}
disableWakeLock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = null;
// console.log('🔒 Wake Lock 已关闭');
}
if (this.noSleep) {
this.noSleep.disable();
// console.log('🔒 NoSleep 已关闭');
}
}
onDestroy() {
// this.disableWakeLock();
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "c3c4a468-972c-4ee3-8841-9b917cf5c8b1",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -22,13 +22,16 @@ import {
sp, sp,
AsyncDelegate, AsyncDelegate,
instantiate, instantiate,
SpriteFrame,
} from "cc"; } from "cc";
import { SLOT_BAR_EVENT } from "./game/Define"; import { SLOT_BAR_EVENT } from "./game/Define";
import { AutoSpinPanel } from "./game/AutoSpinPanel"; import { AutoSpinPanel } from "./game/AutoSpinPanel";
import { NodePoolManager } from "../../Loading/scripts/manager/NodePoolManager"; import { NodePoolManager } from "../../Loading/scripts/manager/NodePoolManager";
import { webView } from "./game/WebView"; import { webView } from "./game/WebView";
import { import {
callGameBalanceApi,
cash2gold, cash2gold,
getGameId,
getHistoryUrl, getHistoryUrl,
getOddsUrl, getOddsUrl,
getSupportUrl, getSupportUrl,
@ -51,8 +54,6 @@ export class SlotBar extends Component {
@property({ type: Prefab }) @property({ type: Prefab })
private autoSpinPanel: Prefab = null; private autoSpinPanel: Prefab = null;
@property(Node)
private tipSmall: Node = null;
@property(SlotGame) @property(SlotGame)
private slotGame: SlotGame = null; private slotGame: SlotGame = null;
@ -65,9 +66,17 @@ export class SlotBar extends Component {
@property(Prefab) @property(Prefab)
pfb_rules: Prefab = null; pfb_rules: Prefab = null;
@property(Node)
private tipSmall_turbo: Node = null;
@property(Node)
private tipSmall_bet: Node = null;
@property(Node) @property(Node)
private manualStopNode: Node = null; private manualStopNode: Node = null;
@property([SpriteFrame])
turboFrames: SpriteFrame[] = [];
private MaskNode: Node = null; private MaskNode: Node = null;
private balanceLabel: Label = null; private balanceLabel: Label = null;
private betLabel: Label = null; private betLabel: Label = null;
@ -111,7 +120,7 @@ export class SlotBar extends Component {
private btnPositions: Map<string, Vec3> = new Map(); private btnPositions: Map<string, Vec3> = new Map();
private isAnimating: boolean = false; private isAnimating: boolean = false;
private readonly DURATION = 0.1; private readonly DURATION = 0.1;
private readonly OFFSET_Y = -200; private readonly OFFSET_Y = -300;
private hasClickSpin: boolean = false; private hasClickSpin: boolean = false;
private hasClickManualStop: boolean = false; private hasClickManualStop: boolean = false;
@ -164,10 +173,6 @@ export class SlotBar extends Component {
}); });
} }
protected onDestroy(): void {
this.node.targetOff(this);
}
// spinBtn有两个动画idle状态循环旋转一圈spin状态速度加快 // spinBtn有两个动画idle状态循环旋转一圈spin状态速度加快
setGameInfo(gameInfo: any) { setGameInfo(gameInfo: any) {
@ -266,19 +271,14 @@ export class SlotBar extends Component {
}); });
} }
allowClickManualStop(bl: boolean) {
this.hasClickSpin = bl;
this.manualStopNode.active = bl
}
notAllowClickManualStop(bl: boolean) {
this.hasClickManualStop = bl;
}
onBtnSpin() { onBtnSpin() {
// 第一次点击 旋转 // 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) { if (!this.hasClickSpin && !this.hasClickManualStop) {
AudioManager.instance.playSFX("Spin_Button_Click"); AudioManager.instance.playSFX("Spin_Button_Click");
this.hasClickSpin = true;
this.manualStopNode.active = true
this.node.emit(SLOT_BAR_EVENT.ON_SPIN_CLICK); this.node.emit(SLOT_BAR_EVENT.ON_SPIN_CLICK);
this.spinAni.startSpin(); this.spinAni.startSpin();
@ -297,8 +297,8 @@ export class SlotBar extends Component {
// 第一次点击 旋转 // 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) { if (!this.hasClickSpin && !this.hasClickManualStop) {
// AudioManager.instance.playSFX('Spin_Button_Click'); // AudioManager.instance.playSFX('Spin_Button_Click');
this.hasClickSpin = true;
this.manualStopNode.active = true
this.setBtnEnable(this.subBtn, false); this.setBtnEnable(this.subBtn, false);
this.setBtnEnable(this.addBtn, false); this.setBtnEnable(this.addBtn, false);
@ -315,7 +315,8 @@ export class SlotBar extends Component {
onBtnTestSpin(event, args) { onBtnTestSpin(event, args) {
// 第一次点击 旋转 // 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) { if (!this.hasClickSpin && !this.hasClickManualStop) {
// this.hasClickSpin = true; this.hasClickSpin = true;
this.manualStopNode.active = true
this.node.emit(SLOT_BAR_EVENT.ON_TEST_SPIN_CLICK, args); this.node.emit(SLOT_BAR_EVENT.ON_TEST_SPIN_CLICK, args);
this.setBtnEnable(this.subBtn, false); this.setBtnEnable(this.subBtn, false);
@ -336,50 +337,51 @@ export class SlotBar extends Component {
} }
manualStop() { manualStop() {
this.notAllowClickManualStop(true) this.hasClickManualStop = true;
this.spinAni.stopSpin(); this.spinAni.stopSpin();
this.setBtnEnable(this.spinBtn, false); this.setBtnEnable(this.spinBtn, false);
} }
async showPopup(
name: string,
pre: Prefab,
callBack: (prefab: Node) => void
) {
let prefab = await NodePoolManager.instance.getNodeFromPoolStatic(name, pre);
if (!prefab) {
console.error(`UIManager 加载${name} prefab失败: ${path}`);
return;
}
this.MaskNode.addChild(prefab);
showFromBottom(prefab)
let main = prefab.getChildByName('main');
if (!main) {
// console.error(`UIManager ${name}prefab 没有main节点命名不规范: ${path}`);
return;
}
if (callBack) callBack(prefab);
}
// 打开规则界面 // 打开规则界面
openRules() { openRules() {
if (!this.tweenIsEnd) return; if (!this.tweenIsEnd) return;
// AudioManager.instance.playSFX('Common_Button_Click'); this.showPopup('rules', this.pfb_rules)
// let param = "rule";
// let view = NodePoolManager.instance.getNodeFromPoolStatic(param, this.webViewPre);
// this.MaskNode.addChild(view);
// view.getComponent(webView).open(param, this.curBet);
let rules = instantiate(this.pfb_rules);
this.MaskNode.addChild(rules);
showFromBottom(rules);
} }
// 打开赔率界面 // 打开赔率界面
openPaytable() { openPaytable() {
if (!this.tweenIsEnd) return; if (!this.tweenIsEnd) return;
// let url = getOddsUrl();
// window.open(url, '_blank');
// return;
// AudioManager.instance.playSFX('Common_Button_Click'); this.showPopup('paytable', this.pfb_paytable)
// let param = "paytable";
// let view = NodePoolManager.instance.getNodeFromPoolStatic(param, this.webViewPre);
// this.MaskNode.addChild(view);
// view.getComponent(webView).open(param, this.curBet);
let paytable = instantiate(this.pfb_paytable);
this.MaskNode.addChild(paytable);
showFromBottom(paytable);
} }
openHistory() { openHistory() {
if (!this.tweenIsEnd) return; if (!this.tweenIsEnd) return;
this.showPopup('history', this.pfb_history)
let history = instantiate(this.pfb_history);
this.MaskNode.addChild(history);
showFromBottom(history);
} }
isON = true; isON = true;
@ -398,13 +400,12 @@ export class SlotBar extends Component {
onBtnAddChips() { onBtnAddChips() {
AudioManager.instance.playSFX("Common_Button_Click"); AudioManager.instance.playSFX("Common_Button_Click");
this.betIndex += 1; this.betIndex += 1;
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length); this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length - 1);
this.setBtnEnable(this.subBtn, this.betIndex > 0); this.setBtnEnable(this.subBtn, this.betIndex > 0);
if (this.betIndex == this.betGrade.length) { if (this.betIndex == this.betGrade.length - 1) {
let tip = I18nManager.instance.t("AID_TIP_MAX_BET"); let tip = I18nManager.instance.t("AID_TIP_MAX_BET");
this.showTipSmall(tip); // 显示提示 this.showTipSmall(tip); // 显示提示
this.betIndex = this.betGrade.length - 1; // 确保 betIndex 不超出范围 this.betIndex = this.betGrade.length - 1; // 确保 betIndex 不超出范围
return;
} }
this.setBet(this.betGrade[this.betIndex]); this.setBet(this.betGrade[this.betIndex]);
} }
@ -413,58 +414,111 @@ export class SlotBar extends Component {
AudioManager.instance.playSFX("Common_Button_Click"); AudioManager.instance.playSFX("Common_Button_Click");
this.betIndex -= 1; this.betIndex -= 1;
this.setBtnEnable(this.subBtn, this.betIndex > 0); this.setBtnEnable(this.subBtn, this.betIndex > 0);
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length); this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length - 1);
if (this.betIndex < 0) { if (this.betIndex == 0) {
let tip = I18nManager.instance.t("AID_TIP_MIN_BET"); let tip = I18nManager.instance.t("AID_TIP_MIN_BET");
this.showTipSmall(tip); // 显示提示 this.showTipSmall(tip); // 显示提示
this.betIndex = 0; // 确保 betIndex 不低于0 this.betIndex = 0; // 确保 betIndex 不低于0
return;
} }
this.setBet(this.betGrade[this.betIndex]); this.setBet(this.betGrade[this.betIndex]);
} }
private isGetBalance: boolean = false;
async onClickBalance(): Promise<number | null> {
if (this.isGetBalance) return
this.isGetBalance = true;
try {
let balacneData = await this.refreshBalanceFromServer();
this.setBalance(balacneData)
return balacneData;
} catch (err) {
console.log('获取余额失败')
return null;
} finally {
this.scheduleOnce(() => {
this.isGetBalance = false;
}, 0.5)
}
}
async onConfirmErr2(): Promise<number | null> {
try {
let balacneData = await this.refreshBalanceFromServer();
this.setBalance(balacneData)
return balacneData;
} catch (err) {
console.log('获取余额失败')
return null;
} finally {
this.isGetBalance = false;
}
}
private currentTipTween: Tween<Node> = null; private currentTipTween: Tween<Node> = null;
private hideTimer: number = null; private hideTimer: number = null;
showTipSmall(str: string) { showTipSmall(str: string, openTurbo?: boolean) {
// 清理之前的计时器和动画 // 清理之前的计时器和动画
this.clearTipTimers(); this.clearTipTimers();
// 设置提示内容 let tipNode = null
if (openTurbo != null) {
tipNode = this.tipSmall_turbo
this.tipSmall_bet.active = false
this.tipSmall.getChildByName("Label").getComponent(Label).string = str; tipNode.getChildByPath("layout/Turboon").active = openTurbo
let label = this.tipSmall.getChildByName("Label").getComponent(Label); tipNode.getChildByPath("layout/Turbooff").active = !openTurbo
label.updateRenderData(true);
let tipWidth = this.tipSmall // 设置提示内容
.getChildByName("Label") tipNode.active = true;
.getComponent(UITransform).width; tipNode.getChildByPath("layout/Label").getComponent(Label).string = str;
let frame = this.tipSmall.getChildByName("Frame_Assets"); let label = tipNode.getChildByPath("layout/Label").getComponent(Label);
frame.getComponent(UITransform).setContentSize(tipWidth + 100, 105); label.updateRenderData(true);
// 调整框架大小 tipNode.getChildByPath("layout").getComponent(Layout).updateLayout(true)
let tipWidth = tipNode.getChildByPath("layout").getComponent(UITransform).width;
let frame = tipNode.getChildByName('Frame_Assets');
// 调整框架大小
frame.getComponent(UITransform).setContentSize(tipWidth + 140, 125);
} else {
tipNode = this.tipSmall_bet
this.tipSmall_turbo.active = false
// 设置提示内容
tipNode.active = true;
tipNode.getChildByPath("Label").getComponent(Label).string = str;
let label = tipNode.getChildByPath("Label").getComponent(Label);
label.updateRenderData(true);
let tipWidth = tipNode.getChildByPath("Label").getComponent(UITransform).width;
let frame = tipNode.getChildByName('Frame_Assets');
// 调整框架大小
frame.getComponent(UITransform).setContentSize(tipWidth + 140, 105);
}
tipNode.scale = new Vec3(0, 0, 0);
setTimeout(() => { setTimeout(() => {
this.tipSmall.active = true;
// 显示动画 // 显示动画
this.tipSmall.scale = new Vec3(0, 0, 0); this.currentTipTween = tween(tipNode)
this.currentTipTween = tween(this.tipSmall)
.to(0.1, { scale: new Vec3(1, 1, 1) }) .to(0.1, { scale: new Vec3(1, 1, 1) })
.call(() => { .call(() => {
// 5. 设置隐藏计时器 // 5. 设置隐藏计时器
this.hideTimer = setTimeout(() => { this.hideTimer = setTimeout(() => {
this.hideTipSmall(); this.hideTipSmall(tipNode);
}, 1000); // 1秒后隐藏 }, 1000); // 1秒后隐藏
}) })
.start(); .start();
}, 0.1); }, 0.1);
} }
private hideTipSmall() { private hideTipSmall(tipNode) {
if (!this.tipSmall.active) return; if (!tipNode.active) return;
this.clearTipTimers(); // 清理可能存在的计时器 this.clearTipTimers(); // 清理可能存在的计时器
this.currentTipTween = tween(this.tipSmall) this.currentTipTween = tween(tipNode)
.to(0.1, { scale: new Vec3(0, 0, 0) }) .to(0.1, { scale: new Vec3(0, 0, 0) })
.call(() => { .call(() => {
this.tipSmall.active = false; tipNode.active = false;
this.currentTipTween = null; this.currentTipTween = null;
}) })
.start(); .start();
@ -605,7 +659,7 @@ export class SlotBar extends Component {
this.setBtnVisible(this.spinBtn, true); this.setBtnVisible(this.spinBtn, true);
this.setBtnVisible(this.stopAutoBtn, false); this.setBtnVisible(this.stopAutoBtn, false);
this.setBtnEnable(this.spinBtn, false); this.setBtnEnable(this.spinBtn, false);
this.slotGame.showFeatureBuy(false) this.slotGame.showFeatureBuy(this.getBet() * this.gameInfo.BuyMul > this.gameInfo.MaxBuyBet)
} }
@ -620,9 +674,9 @@ export class SlotBar extends Component {
} }
resetAllState() { resetAllState() {
this.allowClickManualStop(false) this.hasClickSpin = false;
this.notAllowClickManualStop(false) this.manualStopNode.active = false
this.hasClickManualStop = false;
this.isAuto = false; this.isAuto = false;
this.setBtnVisible(this.spinBtn, true); this.setBtnVisible(this.spinBtn, true);
@ -752,6 +806,7 @@ export class SlotBar extends Component {
protected onDestroy(): void { protected onDestroy(): void {
this.autoBtn.off(Node.EventType.TOUCH_START, this.autoAin, this); this.autoBtn.off(Node.EventType.TOUCH_START, this.autoAin, this);
this.autoBtn.off(Node.EventType.MOUSE_ENTER, this.autoAin, this); this.autoBtn.off(Node.EventType.MOUSE_ENTER, this.autoAin, this);
this.node.targetOff(this);
this.turboBtn.off(Node.EventType.TOUCH_START, this.fastAni, this); this.turboBtn.off(Node.EventType.TOUCH_START, this.fastAni, this);
this.turboBtn.off(Node.EventType.MOUSE_ENTER, this.fastAni, this); this.turboBtn.off(Node.EventType.MOUSE_ENTER, this.fastAni, this);
@ -780,4 +835,28 @@ export class SlotBar extends Component {
this.setBet(this.betGrade[this.betIndex], true); this.setBet(this.betGrade[this.betIndex], true);
} }
} }
// private _refreshingBalance: boolean = false;
async refreshBalanceFromServer(): Promise<number | null> {
// if (this._refreshingBalance) return this.getBalance();
// this._refreshingBalance = true;
try {
const res = await callGameBalanceApi({});
const balance = Number(res.Balance);
if (!Number.isFinite(balance)) {
console.warn("[SlotBar] invalid balance response:", res);
return this.getBalance();
}
this.setBalance(balance);
return balance;
} catch (err) {
console.error("[SlotBar] refresh balance failed:", err);
return this.getBalance();
} finally {
// this.scheduleOnce(() => {
// this._refreshingBalance = false;
// }, 1)
}
}
} }

View File

@ -205,7 +205,7 @@ export class SlotGame extends Component {
this.rollerManager.node.off(ROLLER_COMBINE_EVENT.ALL_ROLLER_ICONS_CREATED, this.onAllRollerIconsCreated, this); this.rollerManager.node.off(ROLLER_COMBINE_EVENT.ALL_ROLLER_ICONS_CREATED, this.onAllRollerIconsCreated, this);
this.rollerManager.node.off(ROLLER_COMBINE_EVENT.ALL_ROLLER_ICONS_FALLEN, this.onAllRollerIconsFallen, this); this.rollerManager.node.off(ROLLER_COMBINE_EVENT.ALL_ROLLER_ICONS_FALLEN, this.onAllRollerIconsFallen, this);
IconEventBus.on('ICON_CLICKED', this.onIconClicked, this); IconEventBus.off('ICON_CLICKED', this.onIconClicked, this);
} }
private currentBgState: boolean = true; // 记录当前背景状态,默认为普通模式(false) private currentBgState: boolean = true; // 记录当前背景状态,默认为普通模式(false)
@ -875,8 +875,8 @@ export class SlotGame extends Component {
} }
showFeatureBuy(isShow: boolean) { showFeatureBuy(isHide: boolean) {
this.featureBuyNode.active = !isShow; this.featureBuyNode.active = !isHide;
} }
setFeatureBuyInteractable(isInteractable: boolean) { setFeatureBuyInteractable(isInteractable: boolean) {

View File

@ -1,4 +1,4 @@
import { _decorator, Component, Prefab } from "cc"; import { _decorator, Component, Node, Prefab } from "cc";
import { import {
FREE_SPIN_ROLLER_RULE, FREE_SPIN_ROLLER_RULE,
GameInfo, GameInfo,
@ -12,7 +12,7 @@ import { SlotBar } from "./SlotBar";
import { SlotGame } from "./SlotGame"; import { SlotGame } from "./SlotGame";
import { BigWinUI } from "./game/BigWinUI"; import { BigWinUI } from "./game/BigWinUI";
import { GameDataManager } from "../../Loading/scripts/manager/GameDataManager"; import { GameDataManager } from "../../Loading/scripts/manager/GameDataManager";
import { callGameApi, getFromUrl } from "../../Loading/scripts/comm"; import { callGameApi, callGameBalanceApi, getFromUrl, getGameId } from "../../Loading/scripts/comm";
import { TipPanel } from "./game/TipPanel"; import { TipPanel } from "./game/TipPanel";
import { I18nManager } from "../../Loading/scripts/manager/I18nManager"; import { I18nManager } from "../../Loading/scripts/manager/I18nManager";
import { TotalWin } from "./game/TotalWin"; import { TotalWin } from "./game/TotalWin";
@ -82,12 +82,17 @@ export class SlotScene extends Component {
@property(SlotRanking) @property(SlotRanking)
slotRanking: SlotRanking = null; slotRanking: SlotRanking = null;
@property(Node)
gray: Node = null
// 游戏数据 // 游戏数据
private gameInfo: GameInfo = null; private gameInfo: GameInfo = null;
private spinInfo: any = null; private spinInfo: any = null;
private lastSpinInfo: any = null; private lastSpinInfo: any = null;
private spinData: any = null; private spinData: any = null;
private isReceiveMsg: boolean = false; private isReceiveMsg: boolean = false;
private isErr2: boolean = false;
private objectId: string[] = []; private objectId: string[] = [];
@ -125,6 +130,7 @@ export class SlotScene extends Component {
// this.FreeSpinEnter.show(8) // this.FreeSpinEnter.show(8)
// this.FreeSpinAdd.show(5) // this.FreeSpinAdd.show(5)
// this.BigWinUI.show(800000, WIN_TYPE.SUPER_MEGA_WIN, 10000) // this.BigWinUI.show(800000, WIN_TYPE.SUPER_MEGA_WIN, 10000)
} }
private async init() { private async init() {
@ -283,19 +289,30 @@ export class SlotScene extends Component {
isFreeSpin: boolean = false, isFreeSpin: boolean = false,
isFeatureBuy: boolean = false isFeatureBuy: boolean = false
) { ) {
this.gameState.isOnReconnect = false;
this.isReceiveMsg = false;
this.isErr = false;
this.slotGame.spin(this.gameState.isInFreeSpin);
this.gameState.isOneRoundEnd = false;
this.slotGame.changeBg(this.gameState.isInFreeSpin);
this.slotGame.hideIconMsg();
if (!isFreeSpin) {
this.slotBar.setWin(0);
}
let curBalanceData = await this.slotBar.refreshBalanceFromServer()
if (!curBalanceData) {
curBalanceData = this.slotBar.getBalance()
}
if (curBalanceData < (isFeatureBuy ? this.slotBar.getBet() * this.gameInfo.BuyMul : this.slotBar.getBet()) && !isFreeSpin && !GameDataManager.instance.frb.Ongoing) {
//余额不足不经过服务器,在客户端拦截
this.showErrorTip(2, () => { this.slotBar.onConfirmErr2() });
this.handleErrSpin(true);
this.isErr2 = true;
return
}
try { try {
this.gameState.isOnReconnect = false;
this.isReceiveMsg = false;
this.isErr = false
this.slotGame.spin(this.gameState.isInFreeSpin);
this.gameState.isOneRoundEnd = false;
this.slotGame.changeBg(this.gameState.isInFreeSpin);
this.slotGame.hideIconMsg();
if (!isFreeSpin) {
this.slotBar.setWin(0);
}
// 如果有frb就不会扣除金额 // 如果有frb就不会扣除金额
let frb = GameDataManager.instance.frb; let frb = GameDataManager.instance.frb;
if (frb && frb.Ongoing != null) { if (frb && frb.Ongoing != null) {
@ -303,9 +320,14 @@ export class SlotScene extends Component {
} else { } else {
if (!isFreeSpin) { if (!isFreeSpin) {
if (!isFeatureBuy) { if (!isFeatureBuy) {
this.slotBar.setBalance(this.slotBar.getBalance() - this.slotBar.getBet()); this.slotBar.setBalance(
this.slotBar.getBalance() - this.slotBar.getBet()
);
} else { } else {
this.slotBar.setBalance(this.slotBar.getBalance() - (this.slotBar.getBet() * this.gameInfo.BuyMul)); this.slotBar.setBalance(
this.slotBar.getBalance() -
this.slotBar.getBet() * this.gameInfo.BuyMul
);
} }
} }
} }
@ -323,8 +345,7 @@ export class SlotScene extends Component {
} }
if (!this.gameState.isDebug) { if (!this.gameState.isDebug) {
this.spinInfo = await callGameApi("spin", msg); this.spinInfo = await callGameApi("spin", msg);
this.slotBar.allowClickManualStop(true)
this.slotBar.notAllowClickManualStop(false)
if (this.spinInfo.Frb.Ongoing) { if (this.spinInfo.Frb.Ongoing) {
if (!isFreeSpin) { if (!isFreeSpin) {
let count = this.spinInfo.Frb.Ongoing.Frn; let count = this.spinInfo.Frb.Ongoing.Frn;
@ -360,7 +381,7 @@ export class SlotScene extends Component {
this.isReceiveMsg = true; this.isReceiveMsg = true;
await this.handleSpinResult(); await this.handleSpinResult();
} catch (error) { } catch (error) {
this.isErr = true this.isErr = true;
let errCode = parseInt(error.message.split("#")[0]); let errCode = parseInt(error.message.split("#")[0]);
if (isNaN(errCode)) { if (isNaN(errCode)) {
this.showErrorTip(4); this.showErrorTip(4);
@ -386,18 +407,19 @@ export class SlotScene extends Component {
if (!this.isReceiveMsg) return; if (!this.isReceiveMsg) return;
// 免费游戏不能手动停止 // 免费游戏不能手动停止
// if (this.gameState.isInFreeSpin) { if (this.gameState.isInFreeSpin) {
// return; return;
// } }
// 滚轮没有开始旋转的时候不能停止 // 滚轮没有开始旋转的时候不能停止
if (!this.slotGame.isScroll()) return; if (!this.slotGame.isScroll()) return;
this.slotBar.manualStop(); this.slotBar.manualStop();
this.slotGame.manualStop(); this.slotGame.manualStop();
} }
private handleErrSpin() { private handleErrSpin(isErr2 = false) {
this.spinInfo = this.lastSpinInfo; this.spinInfo = this.lastSpinInfo;
this.spinData = this.spinInfo.Data; this.spinData = this.spinInfo.Data;
this.slotGame.setRollerIconRule( this.slotGame.setRollerIconRule(
@ -406,8 +428,9 @@ export class SlotScene extends Component {
this.gameState.isAutoSpin = false; this.gameState.isAutoSpin = false;
this.spinData.AllScore = 0; this.spinData.AllScore = 0;
this.slotGame.stopScroll(this.spinData, false, null); this.slotGame.stopScroll(this.spinData, false, null);
this.slotGame.manualStop(); // this.slotGame.manualStop();
this.slotBar.setBalance(this.spinInfo.Balance); this.slotBar.setBalance(isErr2 ? this.slotBar.getBalance() : this.spinInfo.Balance);
this.slotBar.closeAutoSpin();
} }
private async handleSpinResult() { private async handleSpinResult() {
@ -421,7 +444,7 @@ export class SlotScene extends Component {
? I18nManager.instance.t("AID_TIP_TURBO_ENABLED") ? I18nManager.instance.t("AID_TIP_TURBO_ENABLED")
: I18nManager.instance.t("AID_TIP_TURBO_DISABLED"); : I18nManager.instance.t("AID_TIP_TURBO_DISABLED");
this.slotBar.showTipSmall(tip); this.slotBar.showTipSmall(tip, this.gameState.isFastSpin);
if (!this.slotGame.isScroll()) { if (!this.slotGame.isScroll()) {
this.slotGame.setFastSpin(isFastSpin); this.slotGame.setFastSpin(isFastSpin);
} }
@ -724,7 +747,14 @@ export class SlotScene extends Component {
} }
private async normalStop(isReconnect: boolean = false) { private async normalStop(isReconnect: boolean = false) {
this.slotBar.setBalance(this.spinData.Balance);
if (this.isErr2) {
this.isErr2 = false;
this.slotBar.setBalance(this.slotBar.getBalance());
} else {
this.slotBar.setBalance(this.spinData.Balance);
}
let winType = this.slotGame.checkWinType(this.spinData.AllScore); let winType = this.slotGame.checkWinType(this.spinData.AllScore);
await this.handleWinResult(winType, isReconnect, false, () => { await this.handleWinResult(winType, isReconnect, false, () => {
@ -942,7 +972,7 @@ export class SlotScene extends Component {
this.TipPanel.showTip( this.TipPanel.showTip(
title, title,
tip, tip,
null, callback,
null, null,
I18nManager.instance.t("AID_ERROR_OK_BUTTON"), I18nManager.instance.t("AID_ERROR_OK_BUTTON"),
null, null,
@ -984,6 +1014,14 @@ export class SlotScene extends Component {
); );
} }
break; break;
case 5:
msg1 = I18nManager.instance.t('AID_ERROR_CONTENT_4');
msg2 = I18nManager.instance.t('AID_ERROR_CODE_4');
tip = `${msg1}\n${msg2}`;
if (!this.TipPanel.getHasTip()) {
this.TipPanel.showTip(title, tip, () => { window.close() }, () => { callback?.(); }, I18nManager.instance.t('AID_ERROR_QUIT_BUTTON'), I18nManager.instance.t('AID_ERROR_RETRY_BUTTON'), true);
}
break;
} }
} }
@ -994,9 +1032,10 @@ export class SlotScene extends Component {
null, null,
() => { () => {
let fromUrl = getFromUrl(); let fromUrl = getFromUrl();
if (fromUrl.length == 0) { if (!fromUrl || fromUrl == "") {
window.close(); window.close();
} else { } else {
this.gray.active = true
window.location.replace(fromUrl); window.location.replace(fromUrl);
} }
}, },

View File

@ -389,6 +389,11 @@ export class BigWinUI extends Component {
this.unscheduleAllCallbacks(); this.unscheduleAllCallbacks();
this.currentScore = this.winScore; this.currentScore = this.winScore;
this.updateScoreLabel(); this.updateScoreLabel();
this.bigWinAudio.stop();
this.bigWinAudio.clip = this.bigWinAudioClips[3];
if (!AudioManager.instance.getMuted()) {
this.bigWinAudio.play();
}
this.endAni(); this.endAni();
return; return;
} }

View File

@ -1,4 +1,4 @@
import { _decorator, Button, Color, Component, EventHandler, EventMouse, instantiate, isValid, JsonAsset, Label, math, Node, Prefab, ScrollView, sp, tween, UITransform, Vec3 } from 'cc'; import { _decorator, Button, Color, Component, EventHandler, EventMouse, instantiate, isValid, JsonAsset, Label, math, Node, Prefab, ScrollView, sp, tween, UIOpacity, UITransform, Vec3 } from 'cc';
import { getCsymbol, getHistory, getHistoryDetails, getLanguage } from '../../../Loading/scripts/comm'; import { getCsymbol, getHistory, getHistoryDetails, getLanguage } from '../../../Loading/scripts/comm';
import { fixNum, getTimezoneOffsetString, getTranslate, hideAllChildren, hideToBottom, isBrahmic, showAllChildren, updateLang } from './Tools'; import { fixNum, getTimezoneOffsetString, getTranslate, hideAllChildren, hideToBottom, isBrahmic, showAllChildren, updateLang } from './Tools';
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
@ -44,6 +44,7 @@ export class History extends Component {
holdOn = false holdOn = false
finish = false finish = false
clickLock = false
sel_idx: HISTORY_TYPE = HISTORY_TYPE.TODAY sel_idx: HISTORY_TYPE = HISTORY_TYPE.TODAY
@ -397,10 +398,14 @@ export class History extends Component {
async clickItem(event: Event, roundId: string) { async clickItem(event: Event, roundId: string) {
if (this.clickLock) {
return
}
this.clickLock = true
// console.log("clickItem, roundId = ", roundId) // console.log("clickItem, roundId = ", roundId)
const history_detail = instantiate(this.history_detail) const history_detail = instantiate(this.history_detail)
history_detail.getComponent(UIOpacity).opacity = 0
this.node_detail.addChild(history_detail) this.node_detail.addChild(history_detail)
let data = await getHistoryDetails({ let data = await getHistoryDetails({
GameId: "rp_11001", GameId: "rp_11001",
@ -411,12 +416,16 @@ export class History extends Component {
const self = this const self = this
history_detail.position = new Vec3(1080, 0) history_detail.position = new Vec3(1080, 0)
history_detail.getComponent(UIOpacity).opacity = 255
tween(history_detail).to(0.2, { position: new Vec3(0, 0) }) tween(history_detail).to(0.2, { position: new Vec3(0, 0) })
.call(() => { .call(() => {
self.scheduleOnce(() => { comp.entryFinish() }) self.scheduleOnce(() => { comp.entryFinish() })
}) })
.start() .start()
this.scheduleOnce(() => {
this.clickLock = false
}, 1)
} }

View File

@ -197,7 +197,7 @@ export class HistoryDetail extends Component {
node.active = true node.active = true
let startVec = new Vec3(0, 3000) let startVec = new Vec3(0, 3000)
let endVec = new Vec3(0, 800) let endVec = new Vec3(0, this.list_detail.node.getPosition().y)
node.position = startVec node.position = startVec
tween(node).to(0.2, { position: endVec }).call(() => { tween(node).to(0.2, { position: endVec }).call(() => {
@ -559,6 +559,7 @@ export class HistoryDetail extends Component {
if (idx == this.data.panDetails.length - 1) { if (idx == this.data.panDetails.length - 1) {
// console.log("已全部生成完") // console.log("已全部生成完")
this.hideLoading() this.hideLoading()
this.item_detail.removeFromParent()
this.scrollControl.jumpToPage(0) this.scrollControl.jumpToPage(0)
} }
@ -591,6 +592,7 @@ export class HistoryDetail extends Component {
this.showLoading() this.showLoading()
await this.loadDetailList() await this.loadDetailList()
this.scrollControl.setTouchEnable(true)
} }
removeReturnBtn() { removeReturnBtn() {
@ -646,15 +648,16 @@ export class HistoryDetail extends Component {
showLoading() { showLoading() {
this.loading.active = true this.loading.active = true
let sk = this.loading.getComponent(sp.Skeleton) let sk = this.loading.getComponent(sp.Skeleton)
sk.paused = false // sk.paused = false
sk.loop = true // sk.loop = true
sk.setAnimation(0, 'loadingLoop')
} }
hideLoading() { hideLoading() {
let sk = this.loading.getComponent(sp.Skeleton) let sk = this.loading.getComponent(sp.Skeleton)
sk.paused = true // sk.paused = true
sk.loop = false // sk.loop = false
sk.clearAnimations()
this.loading.active = false this.loading.active = false
} }

View File

@ -1,6 +1,7 @@
import { _decorator, Component, EventMouse, JsonAsset, Layout, math, Node, ScrollView, UITransform } from 'cc'; import { _decorator, Component, EventMouse, JsonAsset, Layout, math, Node, ScrollView, UITransform, Widget } from 'cc';
import { hideToBottom, isBrahmic, updateLang, wrapTextBySpace } from './Tools'; import { hideToBottom, isBrahmic, updateLang, wrapTextBySpace } from './Tools';
import { getLanguage } from 'db://assets/Loading/scripts/comm'; import { getLanguage } from 'db://assets/Loading/scripts/comm';
import { NodePoolManager } from 'db://assets/Loading/scripts/manager/NodePoolManager';
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
@ccclass('Paytable') @ccclass('Paytable')
@ -18,6 +19,7 @@ export class Paytable extends Component {
this.dict = this.langJson.json[getLanguage()] ?? this.langJson.json["en"]; this.dict = this.langJson.json[getLanguage()] ?? this.langJson.json["en"];
this.scrollView = this.node.getChildByName("ScrollView").getComponent(ScrollView) this.scrollView = this.node.getChildByName("ScrollView").getComponent(ScrollView)
this.scrollView.node.getChildByName('view').getComponent(Widget).updateAlignment()
this.scrollView.node.on('scrolling', this.onScrolling, this); this.scrollView.node.on('scrolling', this.onScrolling, this);
this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this); this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
@ -43,7 +45,7 @@ export class Paytable extends Component {
} }
clickClosePaytable() { clickClosePaytable() {
const destroyFunc = () => { this.node.destroy() } const destroyFunc = () => { NodePoolManager.instance.putNodeToPool('paytable', this.node) }
hideToBottom(this.node, destroyFunc) hideToBottom(this.node, destroyFunc)
} }

View File

@ -267,12 +267,18 @@ export class Roller extends BaseRoller {
* @param data * @param data
*/ */
async manualStopScroll(data: number[]) { async manualStopScroll(data: number[]) {
this.resetInfo(); if (this._info.isManualStop ||
this._info.state === ROLLER_STATE.STOP) {
return;
}
this._info.resetLxInfo();
this._stopData = data; this._stopData = data;
this._info.isManualStop = true; this._info.isManualStop = true;
Tween.stopAllByTarget(this._info.speedNode); Tween.stopAllByTarget(this._info.speedNode);
// 回收所有动态图标 // 直接回收所有动态图标
while (this._info.icons.length > 0) { while (this._info.icons.length > 0) {
let icon = this._info.icons.pop(); let icon = this._info.icons.pop();
this.iconFactory.recycleIcon(icon); this.iconFactory.recycleIcon(icon);
@ -287,8 +293,14 @@ export class Roller extends BaseRoller {
this.iconFactory.recycleIcon(icon); this.iconFactory.recycleIcon(icon);
} }
} }
this._allIcons.clear();
this._posToIconKey.clear();
this.createInitIcons(data); this.createInitIcons(data);
// 为所有创建的图标播放动画
for (let icon of this._allIcons.values()) {
icon.getComponent(Icon).playSpawnAni();
}
this.changeState(ROLLER_STATE.STOP); this.changeState(ROLLER_STATE.STOP);
} }

View File

@ -1,6 +1,7 @@
import { _decorator, Component, EventMouse, JsonAsset, Label, Layout, math, Node, ScrollView, UITransform } from 'cc'; import { _decorator, Component, EventMouse, JsonAsset, Label, Layout, math, Node, ScrollView, UITransform, Widget } from 'cc';
import { getAllRichTexts, hideToBottom, isBrahmic, updateLang, wrapTextBySpace } from './Tools'; import { getAllRichTexts, hideToBottom, isBrahmic, updateLang, wrapTextBySpace } from './Tools';
import { getCsymbol, getLanguage } from 'db://assets/Loading/scripts/comm'; import { getCsymbol, getLanguage } from 'db://assets/Loading/scripts/comm';
import { NodePoolManager } from 'db://assets/Loading/scripts/manager/NodePoolManager';
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
@ccclass('Rules') @ccclass('Rules')
@ -16,7 +17,7 @@ export class Rules extends Component {
protected onLoad(): void { protected onLoad(): void {
this.dict = this.langJson.json[getLanguage()] ?? this.langJson.json["en"]; this.dict = this.langJson.json[getLanguage()] ?? this.langJson.json["en"];
this.scrollView = this.node.getChildByName("ScrollView").getComponent(ScrollView) this.scrollView = this.node.getChildByName("ScrollView").getComponent(ScrollView)
this.scrollView.node.getChildByName('view').getComponent(Widget).updateAlignment()
this.scrollView.node.on('scrolling', this.onScrolling, this); this.scrollView.node.on('scrolling', this.onScrolling, this);
this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this); this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
} }
@ -49,9 +50,9 @@ export class Rules extends Component {
Label_1_3.string = str Label_1_3.string = str
} }
clickCloseRules() { clickCloseRules() {
const destroyFunc = () => { this.node.destroy() } const destroyFunc = () => { NodePoolManager.instance.putNodeToPool('rules', this.node) }
hideToBottom(this.node, destroyFunc) hideToBottom(this.node, destroyFunc)
} }

View File

@ -46,12 +46,12 @@ export class ScrollControl extends Component {
onLoad() { onLoad() {
this.node_history_detail = this.node.parent this.node_history_detail = this.node.parent
this.node.on(Node.EventType.TOUCH_START, this._onTouchStart, this); // 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_MOVE, this._onTouchMove, this);
this.node.on(Node.EventType.TOUCH_END, this._onTouchEnd, this); // this.node.on(Node.EventType.TOUCH_END, this._onTouchEnd, this);
this.node.on(Node.EventType.TOUCH_CANCEL, this._onTouchEnd, this); // this.node.on(Node.EventType.TOUCH_CANCEL, this._onTouchEnd, this);
this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this); // this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
} }
onDisable() { onDisable() {
@ -322,6 +322,22 @@ export class ScrollControl extends Component {
this.vert_scrollView.scrollToOffset(vec2, 0.1, true); this.vert_scrollView.scrollToOffset(vec2, 0.1, true);
} }
setTouchEnable(enbaled) {
if (enbaled) {
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._onTouchEnd, this);
this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
} else {
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._onTouchEnd, this);
this.node.off(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
}
}
// 判断触摸点是否在节点矩形内 // 判断触摸点是否在节点矩形内
isTouchOnNode(node: Node, touchPos: Readonly<Vec2>): boolean { isTouchOnNode(node: Node, touchPos: Readonly<Vec2>): boolean {
const uiTransform = node.getComponent(UITransform); const uiTransform = node.getComponent(UITransform);

View File

@ -379,7 +379,7 @@ export function showFromBottom(node: Node) {
height = 1920; height = 1920;
} }
node.position = new Vec3(0, -height / 2) node.position = new Vec3(0, -height)
tween(node).to(0.15, { position: new Vec3() }).start() tween(node).to(0.15, { position: new Vec3() }).start()
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,9 @@
import { _decorator, Node, Component, screen, view, ResolutionPolicy, Sprite, sys, UITransform, Label, find } from 'cc'; import { _decorator, Node, Component, screen, view, ResolutionPolicy, Sprite, sys, UITransform, Label, find } from 'cc';
import { LocalizedLabel } from './i18n/LocalizedLabel'; import { LocalizedLabel } from './i18n/LocalizedLabel';
import { getLanguage } from './comm'; import { getLanguage } from './comm';
import { installLabelAlignmentCenterFix } from 'common_tools';
installLabelAlignmentCenterFix();
const { ccclass, property } = _decorator; const { ccclass, property } = _decorator;
export let SWITCH_PROTRAIT_MODE = { export let SWITCH_PROTRAIT_MODE = {
@ -76,7 +78,9 @@ export class LayoutAdapter extends Component {
const texH = this.sprite.spriteFrame.height; const texH = this.sprite.spriteFrame.height;
const scale = Math.max(size.width / texW, size.height / texH); const scale = Math.max(size.width / texW, size.height / texH);
this.BG_01.setScale(scale, scale); // 铺满并保持比例 this.BG_01.setScale(scale, scale); // 铺满并保持比例
this.changeLoge(size.height) if (this.Logo.isValid) {
this.changeLoge(size.height)
}
if (this.isMobile()) { if (this.isMobile()) {

View File

@ -7,8 +7,7 @@ import { PREVIEW } from "cc/env"
const gameId = "rp_11001"; const gameId = "rp_11001";
// let apiaddr = "https://rpgames-api.rpfafafahkdev.com"; // let apiaddr = "https://rpgames-api.rpfafafahkdev.com";
let apiaddr = ""; let apiaddr = "";
let token = "eyJQIjoxMDA5NDksIkUiOjE3Njc3MTM4NTcsIlMiOjk5OCwiRCI6InJwXzExMDAxIn0.NgM_swidNSUlWC58DKHBzYNn4RWEjtQWDTgli0qEyl8"; let token = "eyJQIjoxMDA5NDksIkUiOjE3ODMzNzIyNzQsIlMiOjEwMDMsIkQiOiJycF8xMTAwMSJ9.HRjXjxkWf6cNrzx-oWsubYxygyF0EofkiLBsUTz9vgk";
let language = "en" let language = "en"
let currency = "THB" let currency = "THB"
@ -32,7 +31,7 @@ export function getHistoryUrl() {
} }
export function getLanguage() { export function getLanguage() {
// return 'zh'; // return 'th';
return language; return language;
} }
@ -54,7 +53,7 @@ export function getGameId() {
} }
export function initReqAddr() { export function initReqAddr() {
let partHost = ".rpfafafahkdev.com"; let partHost = ".rpenenenhkdev.com";
if (!PREVIEW) { if (!PREVIEW) {
const qs = new URLSearchParams(location.search) const qs = new URLSearchParams(location.search)
@ -101,6 +100,29 @@ AbortSignal.timeout ??= function timeout(ms) {
return ctrl.signal return ctrl.signal
} }
export async function callGameBalanceApi(argsObj: any) {
const url = apiaddr + path.join("/gameapi/getPlayerBalance")
const payload = JSON.stringify(argsObj)
const res = await fetch(url, {
signal: AbortSignal.timeout(10000),
headers: {
"Content-Type": "application/json",
"X-Rp-Token": token,
},
method: "POST",
body: payload,
mode: 'cors',
})
if (res.status != 200) {
const errstr = await res.text()
throw new Error(errstr || res.statusText)
}
const obj = await res.json()
return obj
}
export async function callGameApi(action: string, argsObj: any) { export async function callGameApi(action: string, argsObj: any) {
const url = apiaddr + path.join("/gameapi/", gameId, action) const url = apiaddr + path.join("/gameapi/", gameId, action)
const payload = JSON.stringify(argsObj) const payload = JSON.stringify(argsObj)

View File

@ -0,0 +1,98 @@
import { _decorator, CCBoolean, Component, Label, TTFFont } from 'cc';
import { getLanguage } from '../comm';
const { ccclass, property } = _decorator;
@ccclass('LocalizedLabel2')
export class LocalizedLabel2 extends Component {
private label: Label | null = null;
// 加入是否是加粗的属性
@property({
type: CCBoolean,
tooltip: '是否是加粗的'
})
public isBold: boolean = false;
// ========== 除了中日韩其他所有语言字体 ==========
@property({
type: TTFFont,
tooltip: '其他语言字体'
})
public fontOther: TTFFont | null = null;
@property({
type: TTFFont,
tooltip: '加粗字体'
})
public fontOtherBold: TTFFont | null = null;
// ========== 泰语字体 (th),越南语字体 (vi) ==========
@property({
type: TTFFont,
tooltip: '泰语越南字体'
})
public fontThVi: TTFFont | null = null;
@property({
type: TTFFont,
tooltip: '泰语越南加粗字体'
})
public fontThViBold: TTFFont | null = null;
// ========== 缅甸语字体 (my) ==========
@property({
type: TTFFont,
tooltip: '缅甸语字体'
})
public fontMy: TTFFont | null = null;
@property({
type: TTFFont,
tooltip: '缅甸语加粗字体'
})
public fontMyBold: TTFFont | null = null;
start() {
this.label = this.getComponent(Label);
this.updateLabel();
}
public updateLabel() {
if (!this.label) return;
this.applyFont();
}
private applyFont() {
const currentLang = getLanguage();
let targetFont: TTFFont | null = null;
switch (currentLang) {
case 'zh':
case 'ja':
case 'ko':
targetFont = null;
break;
case 'th':
targetFont = this.isBold ? this.fontThViBold : this.fontThVi;
break;
case 'vi':
targetFont = this.isBold ? this.fontThViBold : this.fontThVi;
break;
case 'my':
targetFont = this.isBold ? this.fontMyBold : this.fontMy;
break;
default:
targetFont = this.isBold ? this.fontOtherBold : this.fontOther;
break;
}
if (targetFont) {
this.label.useSystemFont = false;
this.label.font = targetFont;
} else {
this.label.useSystemFont = true;
}
this.label.isBold = this.isBold;
this.label.updateRenderData();
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "32bcc178-5730-42de-b46b-c4923eeccafa",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -77,7 +77,7 @@ export class Loading extends Component {
this.node.getChildByPath("Mask/LoadingUINode/logo_en").active = true; this.node.getChildByPath("Mask/LoadingUINode/logo_en").active = true;
} }
initErrorManager(); // initErrorManager();
await I18nManager.instance.ensureI18nSprite(language, "2"); await I18nManager.instance.ensureI18nSprite(language, "2");
this.node this.node
.getChildByPath('Mask/LoadingUINode/msg') .getChildByPath('Mask/LoadingUINode/msg')
@ -177,6 +177,7 @@ export class Loading extends Component {
} else { } else {
// 显示重试按钮 // 显示重试按钮
this.tipLabel.string = I18nManager.instance.t("AID_LOADING"); this.tipLabel.string = I18nManager.instance.t("AID_LOADING");
this.tipLabel.node.active = false;
this.startBtn.node.active = true; this.startBtn.node.active = true;
this.progressBar.node.active = false; this.progressBar.node.active = false;
this.progressLabel.node.active = false; this.progressLabel.node.active = false;
@ -206,7 +207,8 @@ export class Loading extends Component {
} }
} }
); );
await GameDataManager.instance.preloadFrameTypeCache();
await GameDataManager.instance.preloadSymbolCache();
// 资源加载完成进度条到90% // 资源加载完成进度条到90%
this.updateProgress(this.PROGRESS_RESOURCE); this.updateProgress(this.PROGRESS_RESOURCE);
@ -244,8 +246,8 @@ export class Loading extends Component {
.getComponent(UITransform) .getComponent(UITransform)
.setContentSize(currentProgress * 509, 100); .setContentSize(currentProgress * 509, 100);
this.lightSpineNode.setPosition( this.lightSpineNode.setPosition(
currentProgress * 509 - 278, currentProgress * 509 - 268,
-612, -523,
0 0
); );
}, },

View File

@ -0,0 +1,449 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>BarB_Fill_01.png</key>
<dict>
<key>frame</key>
<string>{{580,326},{601,21}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{601,21}}</string>
<key>sourceSize</key>
<string>{601,21}</string>
</dict>
<key>BarB_Frame_01.png</key>
<dict>
<key>frame</key>
<string>{{1262,215},{616,36}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{616,36}}</string>
<key>sourceSize</key>
<string>{616,36}</string>
</dict>
<key>BarB_Handle_01.png</key>
<dict>
<key>frame</key>
<string>{{841,548},{85,85}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{85,85}}</string>
<key>sourceSize</key>
<string>{85,85}</string>
</dict>
<key>Btn_Cancel_01.png</key>
<dict>
<key>frame</key>
<string>{{0,548},{287,87}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{287,87}}</string>
<key>sourceSize</key>
<string>{287,87}</string>
</dict>
<key>Btn_Close_01.png</key>
<dict>
<key>frame</key>
<string>{{1279,326},{52,52}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{52,52}}</string>
<key>sourceSize</key>
<string>{52,52}</string>
</dict>
<key>Btn_Close_02.png</key>
<dict>
<key>frame</key>
<string>{{1183,326},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Confirm_01.png</key>
<dict>
<key>frame</key>
<string>{{575,0},{287,87}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{287,87}}</string>
<key>sourceSize</key>
<string>{287,87}</string>
</dict>
<key>Btn_History_01.png</key>
<dict>
<key>frame</key>
<string>{{289,548},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Large_01.png</key>
<dict>
<key>frame</key>
<string>{{0,215},{715,101}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{715,101}}</string>
<key>sourceSize</key>
<string>{715,101}</string>
</dict>
<key>Btn_Paytable_01.png</key>
<dict>
<key>frame</key>
<string>{{362,326},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Quit_01.png</key>
<dict>
<key>frame</key>
<string>{{717,215},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Rule_01.png</key>
<dict>
<key>frame</key>
<string>{{266,326},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_SoundOFF_01.png</key>
<dict>
<key>frame</key>
<string>{{1333,326},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_SoundON_01.png</key>
<dict>
<key>frame</key>
<string>{{484,326},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Spin_01.png</key>
<dict>
<key>frame</key>
<string>{{908,0},{214,213}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{214,213}}</string>
<key>sourceSize</key>
<string>{214,213}</string>
</dict>
<key>Divider_01.png</key>
<dict>
<key>frame</key>
<string>{{1129,548},{281,4}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{281,4}}</string>
<key>sourceSize</key>
<string>{281,4}</string>
</dict>
<key>Divider_02.png</key>
<dict>
<key>frame</key>
<string>{{0,661},{717,5}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{717,5}}</string>
<key>sourceSize</key>
<string>{717,5}</string>
</dict>
<key>Frame_Assets_01.png</key>
<dict>
<key>frame</key>
<string>{{871,215},{356,109}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{356,109}}</string>
<key>sourceSize</key>
<string>{356,109}</string>
</dict>
<key>Frame_Auto_01.png</key>
<dict>
<key>frame</key>
<string>{{1218,0},{180,181}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{180,181}}</string>
<key>sourceSize</key>
<string>{180,181}</string>
</dict>
<key>Frame_Number_01.png</key>
<dict>
<key>frame</key>
<string>{{928,548},{199,111}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{199,111}}</string>
<key>sourceSize</key>
<string>{199,111}</string>
</dict>
<key>Frame_Tip_01.png</key>
<dict>
<key>frame</key>
<string>{{0,326},{220,220}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{220,220}}</string>
<key>sourceSize</key>
<string>{220,220}</string>
</dict>
<key>Frame_Title_01.png</key>
<dict>
<key>frame</key>
<string>{{1429,326},{360,108}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{360,108}}</string>
<key>sourceSize</key>
<string>{360,108}</string>
</dict>
<key>Frame_Title_02.png</key>
<dict>
<key>frame</key>
<string>{{479,548},{360,108}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{360,108}}</string>
<key>sourceSize</key>
<string>{360,108}</string>
</dict>
<key>Icon_Balance_01.png</key>
<dict>
<key>frame</key>
<string>{{0,0},{27,27}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{27,27}}</string>
<key>sourceSize</key>
<string>{27,27}</string>
</dict>
<key>Icon_Bet_01.png</key>
<dict>
<key>frame</key>
<string>{{458,326},{24,28}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{24,28}}</string>
<key>sourceSize</key>
<string>{24,28}</string>
</dict>
<key>Icon_Menu_01.png</key>
<dict>
<key>frame</key>
<string>{{813,215},{56,49}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{56,49}}</string>
<key>sourceSize</key>
<string>{56,49}</string>
</dict>
<key>Icon_Minus_01.png</key>
<dict>
<key>frame</key>
<string>{{1124,0},{92,92}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{92,92}}</string>
<key>sourceSize</key>
<string>{92,92}</string>
</dict>
<key>Icon_Plus_01.png</key>
<dict>
<key>frame</key>
<string>{{385,548},{92,92}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{92,92}}</string>
<key>sourceSize</key>
<string>{92,92}</string>
</dict>
<key>Icon_Win_01.png</key>
<dict>
<key>frame</key>
<string>{{1229,215},{31,31}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{31,31}}</string>
<key>sourceSize</key>
<string>{31,31}</string>
</dict>
<key>Square_01.png</key>
<dict>
<key>frame</key>
<string>{{563,0},{10,10}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{10,10}}</string>
<key>sourceSize</key>
<string>{10,10}</string>
</dict>
<key>toast .png</key>
<dict>
<key>frame</key>
<string>{{29,0},{532,132}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{532,132}}</string>
<key>sourceSize</key>
<string>{532,132}</string>
</dict>
<key>toast _Turbooff.png</key>
<dict>
<key>frame</key>
<string>{{222,326},{42,42}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{42,42}}</string>
<key>sourceSize</key>
<string>{42,42}</string>
</dict>
<key>toast _Turboon.png</key>
<dict>
<key>frame</key>
<string>{{864,0},{42,42}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{42,42}}</string>
<key>sourceSize</key>
<string>{42,42}</string>
</dict>
</dict>
<key>metadata</key>
<dict>
<key>format</key>
<integer>2</integer>
<key>realTextureFileName</key>
<string>CommonUI_02.png</string>
<key>size</key>
<string>{1880,666}</string>
<key>textureFileName</key>
<string>CommonUI_02.png</string>
</dict>
</dict>
</plist>

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

View File

@ -2,7 +2,7 @@
"ver": "1.0.27", "ver": "1.0.27",
"importer": "image", "importer": "image",
"imported": true, "imported": true,
"uuid": "f168b707-d32b-4a65-9f4f-038a0cf70f22", "uuid": "5693bcd9-d959-49f3-883b-7b7870e5f6d4",
"files": [ "files": [
".json", ".json",
".png" ".png"
@ -10,14 +10,14 @@
"subMetas": { "subMetas": {
"6c48a": { "6c48a": {
"importer": "texture", "importer": "texture",
"uuid": "f168b707-d32b-4a65-9f4f-038a0cf70f22@6c48a", "uuid": "5693bcd9-d959-49f3-883b-7b7870e5f6d4@6c48a",
"displayName": "Icon_Exit", "displayName": "CommonUI_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": "f168b707-d32b-4a65-9f4f-038a0cf70f22", "imageUuidOrDatabaseUri": "5693bcd9-d959-49f3-883b-7b7870e5f6d4",
"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": "f168b707-d32b-4a65-9f4f-038a0cf70f22@f9941", "uuid": "5693bcd9-d959-49f3-883b-7b7870e5f6d4@f9941",
"displayName": "Icon_Exit", "displayName": "CommonUI_02",
"id": "f9941", "id": "f9941",
"name": "spriteFrame", "name": "spriteFrame",
"userData": { "userData": {
"trimType": "auto", "trimType": "auto",
"trimThreshold": 1, "trimThreshold": 1,
"rotated": false, "rotated": false,
"offsetX": 0, "offsetX": -1,
"offsetY": 0, "offsetY": 0,
"trimX": 0, "trimX": 0,
"trimY": 0, "trimY": 0,
"width": 79, "width": 1878,
"height": 79, "height": 666,
"rawWidth": 79, "rawWidth": 1880,
"rawHeight": 79, "rawHeight": 666,
"borderTop": 0, "borderTop": 0,
"borderBottom": 0, "borderBottom": 0,
"borderLeft": 0, "borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0, "meshType": 0,
"vertices": { "vertices": {
"rawPosition": [ "rawPosition": [
-39.5, -939,
-39.5, -333,
0, 0,
39.5, 939,
-39.5, -333,
0, 0,
-39.5, -939,
39.5, 333,
0, 0,
39.5, 939,
39.5, 333,
0 0
], ],
"indexes": [ "indexes": [
@ -84,37 +84,37 @@
], ],
"uv": [ "uv": [
0, 0,
79, 666,
79, 1878,
79, 666,
0, 0,
0, 0,
79, 1878,
0 0
], ],
"nuv": [ "nuv": [
0, 0,
0, 0,
1, 0.9989361702127659,
0, 0,
0, 0,
1, 1,
1, 0.9989361702127659,
1 1
], ],
"minPos": [ "minPos": [
-39.5, -939,
-39.5, -333,
0 0
], ],
"maxPos": [ "maxPos": [
39.5, 939,
39.5, 333,
0 0
] ]
}, },
"isUuid": true, "isUuid": true,
"imageUuidOrDatabaseUri": "f168b707-d32b-4a65-9f4f-038a0cf70f22@6c48a", "imageUuidOrDatabaseUri": "5693bcd9-d959-49f3-883b-7b7870e5f6d4@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": "f168b707-d32b-4a65-9f4f-038a0cf70f22@6c48a" "redirect": "5693bcd9-d959-49f3-883b-7b7870e5f6d4@6c48a"
} }
} }

View File

@ -1,436 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>frames</key>
<dict>
<key>Divider_02.png</key>
<dict>
<key>frame</key>
<string>{{1,1},{717,5}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{717,5}}</string>
<key>sourceSize</key>
<string>{717,5}</string>
</dict>
<key>Btn_Large_01.png</key>
<dict>
<key>frame</key>
<string>{{1,8},{715,101}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{715,101}}</string>
<key>sourceSize</key>
<string>{715,101}</string>
</dict>
<key>BarB_Frame_01.png</key>
<dict>
<key>frame</key>
<string>{{1,111},{616,36}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{616,36}}</string>
<key>sourceSize</key>
<string>{616,36}</string>
</dict>
<key>BarB_Fill_01.png</key>
<dict>
<key>frame</key>
<string>{{1,149},{601,21}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{601,21}}</string>
<key>sourceSize</key>
<string>{601,21}</string>
</dict>
<key>Frame_Title_01.png</key>
<dict>
<key>frame</key>
<string>{{1,172},{360,108}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{360,108}}</string>
<key>sourceSize</key>
<string>{360,108}</string>
</dict>
<key>Frame_Title_02.png</key>
<dict>
<key>frame</key>
<string>{{1,282},{360,108}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{360,108}}</string>
<key>sourceSize</key>
<string>{360,108}</string>
</dict>
<key>Frame_Assets_01.png</key>
<dict>
<key>frame</key>
<string>{{1,392},{356,109}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{356,109}}</string>
<key>sourceSize</key>
<string>{356,109}</string>
</dict>
<key>Btn_Cancel_01.png</key>
<dict>
<key>frame</key>
<string>{{359,392},{287,87}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{287,87}}</string>
<key>sourceSize</key>
<string>{287,87}</string>
</dict>
<key>Btn_Confirm_01.png</key>
<dict>
<key>frame</key>
<string>{{363,172},{287,87}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{287,87}}</string>
<key>sourceSize</key>
<string>{287,87}</string>
</dict>
<key>Divider_01.png</key>
<dict>
<key>frame</key>
<string>{{359,481},{281,4}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{281,4}}</string>
<key>sourceSize</key>
<string>{281,4}</string>
</dict>
<key>Frame_Tip_01.png</key>
<dict>
<key>frame</key>
<string>{{1,503},{220,220}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{220,220}}</string>
<key>sourceSize</key>
<string>{220,220}</string>
</dict>
<key>Btn_Spin_01.png</key>
<dict>
<key>frame</key>
<string>{{223,503},{214,213}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{214,213}}</string>
<key>sourceSize</key>
<string>{214,213}</string>
</dict>
<key>Frame_Number_01.png</key>
<dict>
<key>frame</key>
<string>{{363,261},{199,111}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{199,111}}</string>
<key>sourceSize</key>
<string>{199,111}</string>
</dict>
<key>Frame_Auto_01.png</key>
<dict>
<key>frame</key>
<string>{{439,487},{180,181}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{180,181}}</string>
<key>sourceSize</key>
<string>{180,181}</string>
</dict>
<key>Btn_Close_02.png</key>
<dict>
<key>frame</key>
<string>{{621,487},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_History_01.png</key>
<dict>
<key>frame</key>
<string>{{621,583},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Paytable_01.png</key>
<dict>
<key>frame</key>
<string>{{564,261},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Quit_01.png</key>
<dict>
<key>frame</key>
<string>{{720,1},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_Rule_01.png</key>
<dict>
<key>frame</key>
<string>{{718,97},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_SoundOFF_01.png</key>
<dict>
<key>frame</key>
<string>{{717,193},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Btn_SoundON_01.png</key>
<dict>
<key>frame</key>
<string>{{717,289},{94,94}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{94,94}}</string>
<key>sourceSize</key>
<string>{94,94}</string>
</dict>
<key>Icon_Minus_01.png</key>
<dict>
<key>frame</key>
<string>{{717,385},{92,92}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{92,92}}</string>
<key>sourceSize</key>
<string>{92,92}</string>
</dict>
<key>Icon_Plus_01.png</key>
<dict>
<key>frame</key>
<string>{{717,479},{92,92}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{92,92}}</string>
<key>sourceSize</key>
<string>{92,92}</string>
</dict>
<key>BarB_Handle_01.png</key>
<dict>
<key>frame</key>
<string>{{717,573},{85,85}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{85,85}}</string>
<key>sourceSize</key>
<string>{85,85}</string>
</dict>
<key>Icon_Menu_01.png</key>
<dict>
<key>frame</key>
<string>{{439,670},{56,49}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{56,49}}</string>
<key>sourceSize</key>
<string>{56,49}</string>
</dict>
<key>Btn_Close_01.png</key>
<dict>
<key>frame</key>
<string>{{497,670},{52,52}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{52,52}}</string>
<key>sourceSize</key>
<string>{52,52}</string>
</dict>
<key>Icon_Win_01.png</key>
<dict>
<key>frame</key>
<string>{{564,357},{31,31}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{31,31}}</string>
<key>sourceSize</key>
<string>{31,31}</string>
</dict>
<key>Icon_Bet_01.png</key>
<dict>
<key>frame</key>
<string>{{597,357},{24,28}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{24,28}}</string>
<key>sourceSize</key>
<string>{24,28}</string>
</dict>
<key>Icon_Balance_01.png</key>
<dict>
<key>frame</key>
<string>{{623,357},{27,27}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{27,27}}</string>
<key>sourceSize</key>
<string>{27,27}</string>
</dict>
<key>Square_01.png</key>
<dict>
<key>frame</key>
<string>{{804,573},{10,10}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceColorRect</key>
<string>{{0,0},{10,10}}</string>
<key>sourceSize</key>
<string>{10,10}</string>
</dict>
<key>turbo_on.png</key>
<dict>
<key>frame</key>
<string>{{667,116},{34,44}}</string>
<key>offset</key>
<string>{0,0}</string>
<key>rotated</key>
<false/>
<key>sourceSize</key>
<string>{90,90}</string>
</dict>
<key>turbo_off.png</key>
<dict>
<key>frame</key>
<string>{{664,172},{40,44}}</string>
<key>offset</key>
<string>{-1,0}</string>
<key>rotated</key>
<false/>
<key>sourceSize</key>
<string>{90,90}</string>
</dict>
</dict>
<key>metadata</key>
<dict>
<key>format</key>
<integer>2</integer>
<key>pixelFormat</key>
<string>RGBA8888</string>
<key>premultiplyAlpha</key>
<false/>
<key>realTextureFileName</key>
<string>CommonUI_01.png</string>
<key>size</key>
<string>{815,724}</string>
<key>textureFileName</key>
<string>CommonUI_01</string>
</dict>
</dict>
</plist>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

View File

@ -1,42 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "4c93b7ad-a031-4eee-ad7d-c96dffe8d990",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "4c93b7ad-a031-4eee-ad7d-c96dffe8d990@6c48a",
"displayName": "CommonUI_01",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "repeat",
"wrapModeT": "repeat",
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0,
"isUuid": true,
"imageUuidOrDatabaseUri": "4c93b7ad-a031-4eee-ad7d-c96dffe8d990",
"visible": false
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"hasAlpha": true,
"type": "texture",
"fixAlphaTransparencyArtifacts": false,
"redirect": "4c93b7ad-a031-4eee-ad7d-c96dffe8d990@6c48a"
}
}

6
package-lock.json generated
View File

@ -9,9 +9,15 @@
"version": "1.0.0", "version": "1.0.0",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"common_tools": "git+ssh://git@gitea.rpfafafahkdev.com:taotao/common_tools.git",
"nosleep.js": "^0.12.0" "nosleep.js": "^0.12.0"
} }
}, },
"node_modules/common_tools": {
"version": "1.0.0",
"resolved": "git+ssh://git@gitea.rpfafafahkdev.com:taotao/common_tools.git#c49bf2990a6f348489505ac4998683c814b58dde",
"license": "MIT"
},
"node_modules/nosleep.js": { "node_modules/nosleep.js": {
"version": "0.12.0", "version": "0.12.0",
"resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz", "resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz",

View File

@ -14,6 +14,7 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"common_tools": "git+ssh://git@gitea.rpfafafahkdev.com:taotao/common_tools.git",
"nosleep.js": "^0.12.0" "nosleep.js": "^0.12.0"
} }
} }