Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dap-hu
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Gia Vương
dap-hu
Commits
89976061
Commit
89976061
authored
May 09, 2025
by
Vũ Gia Vương
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add slot jar in fragment
parent
96d5ab95
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
10369 additions
and
3024 deletions
+10369
-3024
BottleBreakingScreen.prefab
assets/Prefabs/BottleBreakingScreen.prefab
+10248
-2945
Slot Jar.prefab
assets/Prefabs/Slot Jar.prefab
+62
-22
Slot Jar.prefab.meta
assets/Prefabs/Slot Jar.prefab.meta
+1
-1
Events.ts
assets/scripts/Events.ts
+0
-9
BreakingJarController.ts
assets/scripts/GamePlay/BreakingJarController.ts
+4
-17
FragmentJarController.ts
assets/scripts/GamePlay/FragmentJarController.ts
+15
-30
SlotJar.ts
assets/scripts/GamePlay/SlotJar.ts
+28
-0
SlotJar.ts.meta
assets/scripts/GamePlay/SlotJar.ts.meta
+10
-0
StartScreen.ts
assets/scripts/UI/StartScreen.ts
+1
-0
No files found.
assets/Prefabs/BottleBreakingScreen.prefab
View file @
89976061
This source diff could not be displayed because it is too large. You can
view the blob
instead.
assets/Prefabs/
Mask Frigment
.prefab
→
assets/Prefabs/
Slot Jar
.prefab
View file @
89976061
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
},
},
{
{
"__type__": "cc.Node",
"__type__": "cc.Node",
"_name": "
Mask Frigment
",
"_name": "
Slot Jar
",
"_objFlags": 0,
"_objFlags": 0,
"_parent": null,
"_parent": null,
"_children": [
"_children": [
...
@@ -37,10 +37,13 @@
...
@@ -37,10 +37,13 @@
"_components": [
"_components": [
{
{
"__id__": 32
"__id__": 32
},
{
"__id__": 33
}
}
],
],
"_prefab": {
"_prefab": {
"__id__": 3
3
"__id__": 3
4
},
},
"_opacity": 255,
"_opacity": 255,
"_color": {
"_color": {
...
@@ -65,7 +68,7 @@
...
@@ -65,7 +68,7 @@
"ctor": "Float64Array",
"ctor": "Float64Array",
"array": [
"array": [
0,
0,
107.087
,
0
,
0,
0,
0,
0,
0,
0,
...
@@ -91,7 +94,7 @@
...
@@ -91,7 +94,7 @@
},
},
{
{
"__type__": "cc.Node",
"__type__": "cc.Node",
"_name": "
top-left-1
",
"_name": "
0
",
"_objFlags": 0,
"_objFlags": 0,
"_parent": {
"_parent": {
"__id__": 1
"__id__": 1
...
@@ -261,7 +264,7 @@
...
@@ -261,7 +264,7 @@
"asset": {
"asset": {
"__id__": 0
"__id__": 0
},
},
"fileId": "
efOZHP7CFGGqjj6t9YgAFS
",
"fileId": "
963oRWBaBJKYzQjkVgR3p3
",
"sync": false
"sync": false
},
},
{
{
...
@@ -304,12 +307,12 @@
...
@@ -304,12 +307,12 @@
"asset": {
"asset": {
"__id__": 0
"__id__": 0
},
},
"fileId": "
78jSXvs1hEjpEmixVayhhX
",
"fileId": "
e0JBmCCkNN67IogvW4CHZW
",
"sync": false
"sync": false
},
},
{
{
"__type__": "cc.Node",
"__type__": "cc.Node",
"_name": "
left-center-
1",
"_name": "1",
"_objFlags": 0,
"_objFlags": 0,
"_parent": {
"_parent": {
"__id__": 1
"__id__": 1
...
@@ -479,7 +482,7 @@
...
@@ -479,7 +482,7 @@
"asset": {
"asset": {
"__id__": 0
"__id__": 0
},
},
"fileId": "
52Qv/HqR9B8pvxU7YNCmXK
",
"fileId": "
d6kvGp9ylL9YOhZ+4fs91k
",
"sync": false
"sync": false
},
},
{
{
...
@@ -522,12 +525,12 @@
...
@@ -522,12 +525,12 @@
"asset": {
"asset": {
"__id__": 0
"__id__": 0
},
},
"fileId": "
51Qw/wwLlD+oaeYl0HU4H2
",
"fileId": "
a0iDGpKyhPKYDUwE6bz2k9
",
"sync": false
"sync": false
},
},
{
{
"__type__": "cc.Node",
"__type__": "cc.Node",
"_name": "
right-center-1
",
"_name": "
2
",
"_objFlags": 0,
"_objFlags": 0,
"_parent": {
"_parent": {
"__id__": 1
"__id__": 1
...
@@ -697,7 +700,7 @@
...
@@ -697,7 +700,7 @@
"asset": {
"asset": {
"__id__": 0
"__id__": 0
},
},
"fileId": "
898gR7uBJPJbHJzFio1hC0
",
"fileId": "
c6V49ouuRDFbiuPf+/6ExX
",
"sync": false
"sync": false
},
},
{
{
...
@@ -740,12 +743,12 @@
...
@@ -740,12 +743,12 @@
"asset": {
"asset": {
"__id__": 0
"__id__": 0
},
},
"fileId": "
1aD2QzJIdGUaBKHuNhc8IS
",
"fileId": "
3fZ0IHcrFMIZByqRABl08R
",
"sync": false
"sync": false
},
},
{
{
"__type__": "cc.Node",
"__type__": "cc.Node",
"_name": "
left-bot-1
",
"_name": "
3
",
"_objFlags": 0,
"_objFlags": 0,
"_parent": {
"_parent": {
"__id__": 1
"__id__": 1
...
@@ -915,7 +918,7 @@
...
@@ -915,7 +918,7 @@
"asset": {
"asset": {
"__id__": 0
"__id__": 0
},
},
"fileId": "
797N6z2qxHOrHgYFS3fsII
",
"fileId": "
910T0tu5JCZ6Fc7XEqoU7s
",
"sync": false
"sync": false
},
},
{
{
...
@@ -958,12 +961,12 @@
...
@@ -958,12 +961,12 @@
"asset": {
"asset": {
"__id__": 0
"__id__": 0
},
},
"fileId": "
82ESYo9XdMMIexUlaL7emU
",
"fileId": "
aaLG7moclGlqNwStKxvQez
",
"sync": false
"sync": false
},
},
{
{
"__type__": "cc.Node",
"__type__": "cc.Node",
"_name": "
right-bot-1
",
"_name": "
4
",
"_objFlags": 0,
"_objFlags": 0,
"_parent": {
"_parent": {
"__id__": 1
"__id__": 1
...
@@ -1133,7 +1136,7 @@
...
@@ -1133,7 +1136,7 @@
"asset": {
"asset": {
"__id__": 0
"__id__": 0
},
},
"fileId": "
966tbwaq1FcqG/4WpRHvhj
",
"fileId": "
a5tUSRASBHcpw89127dFcg
",
"sync": false
"sync": false
},
},
{
{
...
@@ -1176,7 +1179,7 @@
...
@@ -1176,7 +1179,7 @@
"asset": {
"asset": {
"__id__": 0
"__id__": 0
},
},
"fileId": "
64l7i9oVBMO5e8ZigUwbyV
",
"fileId": "
d3A0356hxE+54gv59dspym
",
"sync": false
"sync": false
},
},
{
{
...
@@ -1192,15 +1195,52 @@
...
@@ -1192,15 +1195,52 @@
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
"__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432"
}
}
],
],
"_spriteFrame": {
"_spriteFrame": null,
"__uuid__": "a2dadd38-66b9-4fc5-8bb1-792cd8b267f6"
},
"_type": 2,
"_type": 2,
"_segments": 64,
"_segments": 64,
"_N$alphaThreshold": 0.
1
,
"_N$alphaThreshold": 0.
2
,
"_N$inverted": false,
"_N$inverted": false,
"_id": ""
"_id": ""
},
},
{
"__type__": "35c38MoQkxHiJs43Jq5ANmu",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"slotFrames": [
{
"__uuid__": "a2dadd38-66b9-4fc5-8bb1-792cd8b267f6"
},
{
"__uuid__": "dfb6da8e-12eb-449c-86fb-3830b24fe1ed"
},
{
"__uuid__": "d0fe7dae-cf48-453b-9d0d-1a649bbcd684"
},
{
"__uuid__": "cb24393f-fa65-4c70-8917-f090aa42fff8"
},
{
"__uuid__": "3fb3fd71-b993-458b-8634-01f4fb618aeb"
},
{
"__uuid__": "276b1dcf-2bdc-419b-8282-746869f3fd84"
},
{
"__uuid__": "5275d624-3fc1-4ff2-9088-0512e5730292"
},
{
"__uuid__": "9e87901f-5894-4b48-8fbf-589d6689d0bf"
},
{
"__uuid__": "ab7b45db-efa6-4b84-bf46-e33889a3e460"
}
],
"_id": ""
},
{
{
"__type__": "cc.PrefabInfo",
"__type__": "cc.PrefabInfo",
"root": {
"root": {
...
...
assets/Prefabs/
Mask Frigment
.prefab.meta
→
assets/Prefabs/
Slot Jar
.prefab.meta
View file @
89976061
{
{
"ver": "1.3.2",
"ver": "1.3.2",
"uuid": "
a1b49066-ba1a-4e09-b5ee-9008f3f2c98f
",
"uuid": "
637ec680-5eb3-4392-83ff-9dc376e3feb6
",
"importer": "prefab",
"importer": "prefab",
"optimizationPolicy": "AUTO",
"optimizationPolicy": "AUTO",
"asyncLoadAssets": false,
"asyncLoadAssets": false,
...
...
assets/scripts/Events.ts
View file @
89976061
...
@@ -5,20 +5,12 @@ export const SHOW_START_SCREEN = 'SHOW_START_SCREEN';
...
@@ -5,20 +5,12 @@ export const SHOW_START_SCREEN = 'SHOW_START_SCREEN';
export
const
SHOW_CARD_POPUP
=
'SHOW_CARD_POPUP'
;
export
const
SHOW_CARD_POPUP
=
'SHOW_CARD_POPUP'
;
export
const
STOP_ANIM_CHUM
=
'STOP_ANIM_CHUM'
;
export
const
STOP_ANIM_CHUM
=
'STOP_ANIM_CHUM'
;
export
const
SHOW_SELECT_POPUP
=
'SHOW_SELECT_POPUP'
;
export
const
PLAY_ROLLING_SOUND
=
'PLAY_ROLLING_SOUND'
;
export
const
PLAY_ROLLING_SOUND
=
'PLAY_ROLLING_SOUND'
;
export
const
PLAY_BREAKING_SOUND
=
'PLAY_BREAKING_SOUND'
;
export
const
PLAY_BREAKING_SOUND
=
'PLAY_BREAKING_SOUND'
;
export
const
PLAY_DROP_SOUND
=
'PLAY_DROP_SOUND'
;
export
const
PLAY_DROP_SOUND
=
'PLAY_DROP_SOUND'
;
export
const
PLAY_ANIM_NUT1
=
'PLAY_ANIM_NUT1'
;
export
const
PLAY_ANIM_NUT2
=
'PLAY_ANIM_NUT2'
;
export
const
PLAY_ANIM_NUT3
=
'PLAY_ANIM_NUT3'
;
export
const
PLAY_ANIM_NUT4
=
'PLAY_ANIM_NUT4'
;
export
const
ROTATE_GUILD
=
'ROTATE_GUILD'
;
export
const
BEAT_GUILD
=
'BEAT_GUILD'
;
export
const
BEAT_GUILD
=
'BEAT_GUILD'
;
export
const
STOP_GUILD_ROTATE
=
'STOP_GUILD_ROTATE'
;
export
const
START_GUILD_TAP
=
'START_GUILD_TAP'
;
export
const
START_GUILD_TAP
=
'START_GUILD_TAP'
;
export
const
STOP_GUILD_TAP
=
'STOP_GUILD_TAP'
;
export
const
STOP_GUILD_TAP
=
'STOP_GUILD_TAP'
;
...
@@ -29,6 +21,5 @@ export const RESET_BOTTLE = 'RESET_BOTTLE';
...
@@ -29,6 +21,5 @@ export const RESET_BOTTLE = 'RESET_BOTTLE';
export
const
RESET_FRAGMENT
=
'RESET_FRAGMENT'
;
export
const
RESET_FRAGMENT
=
'RESET_FRAGMENT'
;
export
const
DROP_ALL_FRAGMENT
=
'DROP_ALL_FRAGMENT'
;
export
const
DROP_ALL_FRAGMENT
=
'DROP_ALL_FRAGMENT'
;
export
const
DROP_TOP_FRAGMENT
=
'DROP_TOP_FRAGMENT'
;
export
const
DROP_TOP_FRAGMENT
=
'DROP_TOP_FRAGMENT'
;
export
const
DROP_BEHIND_FRAGMENT
=
'DROP_BEHIND_FRAGMENT'
;
export
const
SHAKE_FRAGMENT
=
'SHAKE_FRAGMENT'
;
export
const
SHAKE_FRAGMENT
=
'SHAKE_FRAGMENT'
;
export
const
SHOW_FOG
=
'SHOW_FOG'
;
export
const
SHOW_FOG
=
'SHOW_FOG'
;
\ No newline at end of file
assets/scripts/GamePlay/BreakingJarController.ts
View file @
89976061
import
{
BEAT_GUILD
,
CHECK_FRAGMENT
,
CHECK_TOUCH
,
DROP_ALL_FRAGMENT
,
DROP_TOP_FRAGMENT
,
eventTarget
,
HAMMER
,
PLAY_BREAKING_SOUND
,
RESET_BOTTLE
,
RESET_FRAGMENT
,
SHAKE_FRAGMENT
,
SHOW_CARD_POPUP
,
SHOW_FOG
,
STOP_GUILD_TAP
}
from
"../Events"
;
import
{
BEAT_GUILD
,
CHECK_FRAGMENT
,
CHECK_TOUCH
,
DROP_ALL_FRAGMENT
,
eventTarget
,
HAMMER
,
PLAY_BREAKING_SOUND
,
RESET_BOTTLE
,
RESET_FRAGMENT
,
SHAKE_FRAGMENT
,
SHOW_CARD_POPUP
,
SHOW_FOG
,
STOP_GUILD_TAP
}
from
"../Events"
;
import
{
Global
}
from
"../Global"
;
import
BehindFragment
from
"./BehindFragment"
;
import
BehindFragment
from
"./BehindFragment"
;
import
FragmentJarController
from
"./FragmentJarController"
;
import
FragmentJarController
from
"./FragmentJarController"
;
...
@@ -7,8 +6,6 @@ const { ccclass, property } = cc._decorator;
...
@@ -7,8 +6,6 @@ const { ccclass, property } = cc._decorator;
@
ccclass
@
ccclass
export
default
class
BreakingJarController
extends
cc
.
Component
{
export
default
class
BreakingJarController
extends
cc
.
Component
{
@
property
([
cc
.
Node
])
private
fragmentSpecialNodes
:
cc
.
Node
[]
=
[];
@
property
(
cc
.
Node
)
@
property
(
cc
.
Node
)
private
hammerNode
:
cc
.
Node
=
null
;
private
hammerNode
:
cc
.
Node
=
null
;
@
property
(
cc
.
Node
)
@
property
(
cc
.
Node
)
...
@@ -30,9 +27,9 @@ export default class BreakingJarController extends cc.Component {
...
@@ -30,9 +27,9 @@ export default class BreakingJarController extends cc.Component {
private
_behindJarChildPosition
:
cc
.
Vec3
[]
=
[];
private
_behindJarChildPosition
:
cc
.
Vec3
[]
=
[];
private
_hamerAvatar
:
cc
.
Sprite
=
null
;
private
_hamerAvatar
:
cc
.
Sprite
=
null
;
onLoad
()
{
onLoad
()
{
cc
.
director
.
getPhysicsManager
().
enabled
=
true
;
cc
.
director
.
getPhysicsManager
().
enabled
=
true
;
// cc.director.getPhysicsManager().debugDrawFlags = cc.PhysicsManager.DrawBits.e_aabbBit |
// cc.director.getPhysicsManager().debugDrawFlags = cc.PhysicsManager.DrawBits.e_aabbBit |
// cc.PhysicsManager.DrawBits.e_jointBit |
// cc.PhysicsManager.DrawBits.e_jointBit |
// cc.PhysicsManager.DrawBits.e_shapeBit;
// cc.PhysicsManager.DrawBits.e_shapeBit;
...
@@ -85,10 +82,6 @@ export default class BreakingJarController extends cc.Component {
...
@@ -85,10 +82,6 @@ export default class BreakingJarController extends cc.Component {
}
}
private
checkFragment
(
fragmentNode
:
cc
.
Node
)
{
private
checkFragment
(
fragmentNode
:
cc
.
Node
)
{
const
fontFragment
=
this
.
_fontFragments
.
findIndex
(
item
=>
item
===
fragmentNode
);
const
behindFragment
=
this
.
_behindJarChild
[
fontFragment
];
// behindFragment.onDrop();
if
(
this
.
_isEnd
)
{
if
(
this
.
_isEnd
)
{
return
;
return
;
}
}
...
@@ -102,6 +95,8 @@ export default class BreakingJarController extends cc.Component {
...
@@ -102,6 +95,8 @@ export default class BreakingJarController extends cc.Component {
.
start
();
.
start
();
}
}
// return;
if
(
this
.
_countFragment
==
3
)
{
if
(
this
.
_countFragment
==
3
)
{
this
.
particleFont
.
stopSystem
();
this
.
particleFont
.
stopSystem
();
this
.
particleBehind
.
stopSystem
();
this
.
particleBehind
.
stopSystem
();
...
@@ -118,14 +113,6 @@ export default class BreakingJarController extends cc.Component {
...
@@ -118,14 +113,6 @@ export default class BreakingJarController extends cc.Component {
.
start
();
.
start
();
this
.
_isEnd
=
true
;
this
.
_isEnd
=
true
;
return
;
}
const
isSpecial
=
this
.
fragmentSpecialNodes
.
some
(
item
=>
item
===
fragmentNode
);
const
isDropTop
=
this
.
fragmentSpecialNodes
.
every
(
item
=>
item
.
getComponent
(
FragmentJarController
).
isDropped
);
if
(
isSpecial
&&
isDropTop
)
{
eventTarget
.
emit
(
DROP_TOP_FRAGMENT
);
}
}
}
}
...
...
assets/scripts/GamePlay/FragmentJarController.ts
View file @
89976061
import
{
CHECK_FRAGMENT
,
CHECK_TOUCH
,
DROP_ALL_FRAGMENT
,
DROP_TOP_FRAGMENT
,
eventTarget
,
HAMMER
,
PLAY_DROP_SOUND
,
RESET_FRAGMENT
,
SHAKE_FRAGMENT
,
SHOW_FOG
}
from
"../Events"
;
import
{
CHECK_FRAGMENT
,
CHECK_TOUCH
,
DROP_ALL_FRAGMENT
,
eventTarget
,
HAMMER
,
PLAY_DROP_SOUND
,
RESET_FRAGMENT
,
SHAKE_FRAGMENT
,
SHOW_FOG
}
from
"../Events"
;
import
{
Global
}
from
"../Global"
;
import
{
Global
}
from
"../Global"
;
import
SlotJar
from
"./SlotJar"
;
const
{
ccclass
,
property
}
=
cc
.
_decorator
;
const
{
ccclass
,
property
}
=
cc
.
_decorator
;
@
ccclass
@
ccclass
export
default
class
FragmentJarController
extends
cc
.
Component
{
export
default
class
FragmentJarController
extends
cc
.
Component
{
@
property
(
cc
.
Node
)
private
fragmentLink
:
cc
.
Node
=
null
;
@
property
@
property
private
isBottom
:
boolean
=
false
;
private
isBottom
:
boolean
=
false
;
public
isDropped
:
boolean
=
false
;
public
isDropped
:
boolean
=
false
;
private
_physicsCollider
:
cc
.
PhysicsPolygonCollider
=
null
;
private
_physicsCollider
:
cc
.
PhysicsPolygonCollider
=
null
;
private
_physicsColliderFragmentLink
:
cc
.
PhysicsPolygonCollider
=
null
;
private
_rg
:
cc
.
RigidBody
=
null
;
private
_rg
:
cc
.
RigidBody
=
null
;
private
_siblingIndex
:
number
=
0
;
private
_siblingIndex
:
number
=
0
;
private
_numberOfBeats
=
3
;
private
_numberOfBeats
=
3
;
private
_slot
s
:
cc
.
Node
[]
=
[]
;
private
_slot
Jar
:
SlotJar
=
null
;
onLoad
()
{
onLoad
()
{
this
.
_slotJar
=
this
.
node
.
getComponentInChildren
(
SlotJar
);
this
.
_physicsCollider
=
this
.
node
.
getComponent
(
cc
.
PhysicsPolygonCollider
);
this
.
_physicsCollider
=
this
.
node
.
getComponent
(
cc
.
PhysicsPolygonCollider
);
this
.
_physicsColliderFragmentLink
=
this
.
fragmentLink
&&
this
.
fragmentLink
.
getComponent
(
cc
.
PhysicsPolygonCollider
);
this
.
_rg
=
this
.
node
.
getComponent
(
cc
.
RigidBody
);
this
.
_rg
=
this
.
node
.
getComponent
(
cc
.
RigidBody
);
this
.
_siblingIndex
=
this
.
node
.
getSiblingIndex
();
this
.
_siblingIndex
=
this
.
node
.
getSiblingIndex
();
this
.
_slots
=
this
.
node
.
children
;
this
.
_slots
.
forEach
(
slot
=>
slot
.
active
=
false
);
this
.
reset
();
this
.
reset
();
eventTarget
.
on
(
CHECK_TOUCH
,
this
.
checkTouch
,
this
);
eventTarget
.
on
(
CHECK_TOUCH
,
this
.
checkTouch
,
this
);
eventTarget
.
on
(
RESET_FRAGMENT
,
this
.
reset
,
this
);
eventTarget
.
on
(
RESET_FRAGMENT
,
this
.
reset
,
this
);
eventTarget
.
on
(
DROP_ALL_FRAGMENT
,
this
.
dropFragment
,
this
);
eventTarget
.
on
(
DROP_ALL_FRAGMENT
,
this
.
dropAllFragment
,
this
);
eventTarget
.
on
(
DROP_TOP_FRAGMENT
,
this
.
dropFragmentTop
,
this
);
eventTarget
.
on
(
SHAKE_FRAGMENT
,
this
.
shakeFragment
,
this
);
eventTarget
.
on
(
SHAKE_FRAGMENT
,
this
.
shakeFragment
,
this
);
}
}
...
@@ -44,7 +39,6 @@ export default class FragmentJarController extends cc.Component {
...
@@ -44,7 +39,6 @@ export default class FragmentJarController extends cc.Component {
this
.
node
.
setSiblingIndex
(
this
.
_siblingIndex
);
this
.
node
.
setSiblingIndex
(
this
.
_siblingIndex
);
this
.
isDropped
=
false
;
this
.
isDropped
=
false
;
this
.
_numberOfBeats
=
3
;
this
.
_numberOfBeats
=
3
;
this
.
node
.
children
.
forEach
(
slot
=>
slot
.
active
=
false
);
}
}
public
shakeFragment
()
{
public
shakeFragment
()
{
...
@@ -64,33 +58,21 @@ export default class FragmentJarController extends cc.Component {
...
@@ -64,33 +58,21 @@ export default class FragmentJarController extends cc.Component {
if
(
this
.
isDropped
||
this
.
isBottom
)
{
if
(
this
.
isDropped
||
this
.
isBottom
)
{
return
;
return
;
}
}
const
pos
=
point
.
clone
().
subtract
(
cc
.
v2
(
this
.
node
.
position
.
x
,
this
.
node
.
position
.
y
));
const
jarPos
=
this
.
node
.
parent
.
position
;
const
pos
=
point
.
clone
().
subtract
(
cc
.
v2
(
jarPos
.
x
,
jarPos
.
y
)).
subtract
(
this
.
_physicsCollider
.
offset
);
const
isInside
=
cc
.
Intersection
.
pointInPolygon
(
pos
,
this
.
_physicsCollider
.
points
);
const
isInside
=
cc
.
Intersection
.
pointInPolygon
(
pos
,
this
.
_physicsCollider
.
points
);
let
isInsideFragmentLink
=
false
;
if
(
this
.
_physicsColliderFragmentLink
)
{
if
(
!
isInside
)
{
const
posFragmentLink
=
point
.
clone
().
subtract
(
cc
.
v2
(
this
.
fragmentLink
.
position
.
x
,
this
.
fragmentLink
.
position
.
y
));
isInsideFragmentLink
=
cc
.
Intersection
.
pointInPolygon
(
posFragmentLink
,
this
.
_physicsColliderFragmentLink
.
points
);
}
if
(
!
isInside
&&
!
isInsideFragmentLink
)
{
return
;
return
;
}
}
this
.
_numberOfBeats
--
;
this
.
_numberOfBeats
--
;
if
(
this
.
_slots
.
length
>
0
)
{
cc
.
tween
(
this
)
.
delay
(
0.5
)
.
call
(()
=>
{
this
.
_slots
[
Math
.
min
(
2
-
this
.
_numberOfBeats
,
1
)].
active
=
true
})
.
start
();
}
eventTarget
.
emit
(
HAMMER
,
point
);
eventTarget
.
emit
(
HAMMER
,
point
);
this
.
_slotJar
.
showSlots
(
3
-
this
.
_numberOfBeats
);
if
(
this
.
_numberOfBeats
==
1
)
{
if
(
this
.
_numberOfBeats
==
1
)
{
eventTarget
.
emit
(
SHOW_FOG
,
this
.
node
.
position
);
eventTarget
.
emit
(
SHOW_FOG
,
this
.
node
.
position
);
}
}
...
@@ -105,10 +87,13 @@ export default class FragmentJarController extends cc.Component {
...
@@ -105,10 +87,13 @@ export default class FragmentJarController extends cc.Component {
this
.
dropFragment
();
this
.
dropFragment
();
}
}
private
drop
FragmentTop
()
{
private
drop
AllFragment
()
{
if
(
this
.
is
Bottom
)
{
if
(
this
.
is
Dropped
)
{
return
;
return
;
}
}
this
.
_slotJar
.
showSlots
(
3
);
this
.
dropFragment
();
this
.
dropFragment
();
}
}
...
...
assets/scripts/GamePlay/SlotJar.ts
0 → 100644
View file @
89976061
import
{
eventTarget
,
RESET_BOTTLE
}
from
"../Events"
;
const
{
ccclass
,
property
}
=
cc
.
_decorator
;
@
ccclass
export
default
class
SlotJar
extends
cc
.
Component
{
private
_slotBreak2thNodes
:
cc
.
Node
[]
=
[];
private
_slotBreak1thNodes
:
cc
.
Node
[]
=
[];
protected
onLoad
():
void
{
this
.
_slotBreak1thNodes
=
this
.
node
.
children
;
this
.
_slotBreak2thNodes
=
this
.
_slotBreak1thNodes
.
map
(
node
=>
node
.
children
[
0
]);
this
.
resetSlots
();
eventTarget
.
on
(
RESET_BOTTLE
,
this
.
resetSlots
,
this
);
}
public
showSlots
(
breakCount
:
number
):
void
{
this
.
_slotBreak1thNodes
.
forEach
(
node
=>
node
.
active
=
true
);
this
.
_slotBreak2thNodes
.
forEach
(
node
=>
node
.
active
=
breakCount
>=
2
);
}
private
resetSlots
():
void
{
this
.
_slotBreak1thNodes
.
forEach
(
node
=>
node
.
active
=
false
);
this
.
_slotBreak2thNodes
.
map
(
node
=>
node
.
active
=
false
);
}
}
assets/scripts/GamePlay/SlotJar.ts.meta
0 → 100644
View file @
89976061
{
"ver": "1.1.0",
"uuid": "35c38328-424c-4788-9b38-dc9ab900d9ae",
"importer": "typescript",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
assets/scripts/UI/StartScreen.ts
View file @
89976061
...
@@ -13,6 +13,7 @@ export default class StartScreen extends cc.Component {
...
@@ -13,6 +13,7 @@ export default class StartScreen extends cc.Component {
eventTarget
.
on
(
SHOW_START_SCREEN
,
()
=>
this
.
node
.
active
=
true
,
this
);
eventTarget
.
on
(
SHOW_START_SCREEN
,
()
=>
this
.
node
.
active
=
true
,
this
);
eventTarget
.
on
(
SHOW_ACTION_SCREEN
,
()
=>
this
.
node
.
active
=
false
,
this
);
eventTarget
.
on
(
SHOW_ACTION_SCREEN
,
()
=>
this
.
node
.
active
=
false
,
this
);
this
.
scheduleOnce
(
this
.
onSelectBtnClick
,
0.2
);
}
}
private
onSelectBtnClick
()
{
private
onSelectBtnClick
()
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment