Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OPW25
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
template admin
OPW25
Commits
a318d934
Commit
a318d934
authored
3 years ago
by
Tt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
OP15
parent
d5665d78
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1777 additions
and
1777 deletions
+1777
-1777
OP15.meta
play/assets/scene/OP15.meta
+0
-0
OP15.fire
play/assets/scene/OP15/OP15.fire
+0
-0
OP15.fire.meta
play/assets/scene/OP15/OP15.fire.meta
+0
-0
OP15.js
play/assets/scene/OP15/OP15.js
+577
-577
OP15.js.meta
play/assets/scene/OP15/OP15.js.meta
+0
-0
ani.js
play/assets/scene/OP15/ani.js
+31
-31
ani.js.meta
play/assets/scene/OP15/ani.js.meta
+0
-0
audioAni.js
play/assets/scene/OP15/audioAni.js
+0
-0
audioAni.js.meta
play/assets/scene/OP15/audioAni.js.meta
+0
-0
cardManager.js
play/assets/scene/OP15/cardManager.js
+78
-78
cardManager.js.meta
play/assets/scene/OP15/cardManager.js.meta
+0
-0
data.js
play/assets/scene/OP15/data.js
+3
-3
data.js.meta
play/assets/scene/OP15/data.js.meta
+0
-0
hyLoader.js
play/assets/scene/OP15/hyLoader.js
+38
-38
hyLoader.js.meta
play/assets/scene/OP15/hyLoader.js.meta
+0
-0
pg.js
play/assets/scene/OP15/pg.js
+827
-827
pg.js.meta
play/assets/scene/OP15/pg.js.meta
+0
-0
resizeWidget.js
play/assets/scene/OP15/resizeWidget.js
+223
-223
resizeWidget.js.meta
play/assets/scene/OP15/resizeWidget.js.meta
+0
-0
No files found.
play/assets/scene/
scene
.meta
→
play/assets/scene/
OP15
.meta
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene/scene
.fire
→
play/assets/scene/
OP15/OP15
.fire
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene/scene
.fire.meta
→
play/assets/scene/
OP15/OP15
.fire.meta
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene/scene
.js
→
play/assets/scene/
OP15/OP15
.js
View file @
a318d934
import
{
onHomeworkFinish
}
from
"
../script/util
"
;
import
{
onHomeworkFinish
}
from
"
../script/util
"
;
import
{
defaultData
}
from
"
../script/defaultData
"
;
import
{
defaultData
}
from
"
../script/defaultData
"
;
import
{
itemData
}
from
"
./data
"
;
import
{
itemData
}
from
"
./data
"
;
import
{
hyLoader
}
from
"
./hyLoader
"
;
import
{
hyLoader
}
from
"
./hyLoader
"
;
import
CardManager
from
"
./cardManager
"
;
import
CardManager
from
"
./cardManager
"
;
import
pg
from
"
./pg
"
;
import
pg
from
"
./pg
"
;
import
ani
from
"
./ani
"
;
import
ani
from
"
./ani
"
;
import
{
asyncDelay
,
RandomInt
,
showFireworks
}
from
"
../script/utils
"
;
import
{
asyncDelay
,
RandomInt
,
showFireworks
}
from
"
../script/utils
"
;
cc
.
Class
({
cc
.
Class
({
extends
:
cc
.
Component
,
extends
:
cc
.
Component
,
properties
:
{
properties
:
{
},
},
// 生命周期 onLoad
// 生命周期 onLoad
onLoad
()
{
onLoad
()
{
this
.
initSceneData
();
this
.
initSceneData
();
this
.
initSize
();
this
.
initSize
();
},
},
_imageResList
:
null
,
_imageResList
:
null
,
_audioResList
:
null
,
_audioResList
:
null
,
_animaResList
:
null
,
_animaResList
:
null
,
initSceneData
()
{
initSceneData
()
{
this
.
_imageResList
=
[];
this
.
_imageResList
=
[];
this
.
_audioResList
=
[];
this
.
_audioResList
=
[];
this
.
_animaResList
=
[];
this
.
_animaResList
=
[];
},
},
_designSize
:
null
,
// 设计分辨率
_designSize
:
null
,
// 设计分辨率
_frameSize
:
null
,
// 屏幕分辨率
_frameSize
:
null
,
// 屏幕分辨率
_mapScaleMin
:
null
,
// 场景中常用缩放(取大值)
_mapScaleMin
:
null
,
// 场景中常用缩放(取大值)
_mapScaleMax
:
null
,
// 场景中常用缩放(取小值)
_mapScaleMax
:
null
,
// 场景中常用缩放(取小值)
_cocosScale
:
null
,
// cocos 自缩放 (较少用到)
_cocosScale
:
null
,
// cocos 自缩放 (较少用到)
initSize
()
{
initSize
()
{
// 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小
// 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小
let
screen_size
=
cc
.
view
.
getFrameSize
().
width
/
cc
.
view
.
getFrameSize
().
height
let
screen_size
=
cc
.
view
.
getFrameSize
().
width
/
cc
.
view
.
getFrameSize
().
height
let
design_size
=
cc
.
Canvas
.
instance
.
designResolution
.
width
/
cc
.
Canvas
.
instance
.
designResolution
.
height
let
design_size
=
cc
.
Canvas
.
instance
.
designResolution
.
width
/
cc
.
Canvas
.
instance
.
designResolution
.
height
let
f
=
screen_size
>=
design_size
let
f
=
screen_size
>=
design_size
cc
.
Canvas
.
instance
.
fitHeight
=
f
cc
.
Canvas
.
instance
.
fitHeight
=
f
cc
.
Canvas
.
instance
.
fitWidth
=
!
f
cc
.
Canvas
.
instance
.
fitWidth
=
!
f
const
frameSize
=
cc
.
view
.
getFrameSize
();
const
frameSize
=
cc
.
view
.
getFrameSize
();
this
.
_frameSize
=
frameSize
;
this
.
_frameSize
=
frameSize
;
this
.
_designSize
=
cc
.
view
.
getDesignResolutionSize
();
this
.
_designSize
=
cc
.
view
.
getDesignResolutionSize
();
let
sx
=
cc
.
winSize
.
width
/
frameSize
.
width
;
let
sx
=
cc
.
winSize
.
width
/
frameSize
.
width
;
let
sy
=
cc
.
winSize
.
height
/
frameSize
.
height
;
let
sy
=
cc
.
winSize
.
height
/
frameSize
.
height
;
this
.
_cocosScale
=
Math
.
min
(
sx
,
sy
);
this
.
_cocosScale
=
Math
.
min
(
sx
,
sy
);
sx
=
frameSize
.
width
/
this
.
_designSize
.
width
;
sx
=
frameSize
.
width
/
this
.
_designSize
.
width
;
sy
=
frameSize
.
height
/
this
.
_designSize
.
height
;
sy
=
frameSize
.
height
/
this
.
_designSize
.
height
;
this
.
_mapScaleMin
=
Math
.
min
(
sx
,
sy
)
*
this
.
_cocosScale
;
this
.
_mapScaleMin
=
Math
.
min
(
sx
,
sy
)
*
this
.
_cocosScale
;
this
.
_mapScaleMax
=
Math
.
max
(
sx
,
sy
)
*
this
.
_cocosScale
;
this
.
_mapScaleMax
=
Math
.
max
(
sx
,
sy
)
*
this
.
_cocosScale
;
},
},
// 生命周期 start
// 生命周期 start
start
()
{
start
()
{
let
getData
=
this
.
getData
.
bind
(
this
);
let
getData
=
this
.
getData
.
bind
(
this
);
if
(
window
&&
window
.
courseware
)
{
if
(
window
&&
window
.
courseware
)
{
getData
=
window
.
courseware
.
getData
;
getData
=
window
.
courseware
.
getData
;
}
}
getData
((
data
)
=>
{
getData
((
data
)
=>
{
console
.
log
(
'
data:
'
,
data
);
console
.
log
(
'
data:
'
,
data
);
this
.
data
=
data
||
this
.
getDefaultData
();
this
.
data
=
data
||
this
.
getDefaultData
();
this
.
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
data
))
this
.
data
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
data
))
this
.
preloadItem
()
this
.
preloadItem
()
})
})
},
},
getData
(
func
)
{
getData
(
func
)
{
if
(
window
&&
window
.
courseware
)
{
if
(
window
&&
window
.
courseware
)
{
window
.
courseware
.
getData
(
func
,
'
scene
'
);
window
.
courseware
.
getData
(
func
,
'
scene
'
);
return
;
return
;
}
}
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
if
(
middleLayer
)
{
if
(
middleLayer
)
{
const
middleLayerComponent
=
middleLayer
.
getComponent
(
'
middleLayer
'
);
const
middleLayerComponent
=
middleLayer
.
getComponent
(
'
middleLayer
'
);
middleLayerComponent
.
getData
(
func
);
middleLayerComponent
.
getData
(
func
);
return
;
return
;
}
}
func
(
this
.
getDefaultData
());
func
(
this
.
getDefaultData
());
},
},
getDefaultData
()
{
getDefaultData
()
{
return
itemData
;
return
itemData
;
// return defaultData;
// return defaultData;
},
},
preloadItem
()
{
preloadItem
()
{
this
.
addPreloadImage
();
this
.
addPreloadImage
();
this
.
addPreloadAudio
();
this
.
addPreloadAudio
();
this
.
addPreloadAnima
();
this
.
addPreloadAnima
();
this
.
preload
();
this
.
preload
();
},
},
addPreloadImage
()
{
addPreloadImage
()
{
this
.
_imageResList
.
push
({
url
:
this
.
data
.
pic_url
});
this
.
_imageResList
.
push
({
url
:
this
.
data
.
pic_url
});
this
.
_imageResList
.
push
({
url
:
this
.
data
.
pic_url_2
});
this
.
_imageResList
.
push
({
url
:
this
.
data
.
pic_url_2
});
},
},
addPreloadAudio
()
{
addPreloadAudio
()
{
this
.
_audioResList
.
push
({
url
:
this
.
data
.
audio_url
});
this
.
_audioResList
.
push
({
url
:
this
.
data
.
audio_url
});
},
},
addPreloadAnima
()
{
addPreloadAnima
()
{
},
},
preload
()
{
preload
()
{
const
preloadArr
=
this
.
_imageResList
.
concat
(
this
.
_audioResList
).
concat
(
this
.
_animaResList
);
const
preloadArr
=
this
.
_imageResList
.
concat
(
this
.
_audioResList
).
concat
(
this
.
_animaResList
);
cc
.
assetManager
.
loadAny
(
preloadArr
,
null
,
null
,
(
err
,
data
)
=>
{
cc
.
assetManager
.
loadAny
(
preloadArr
,
null
,
null
,
(
err
,
data
)
=>
{
this
.
loadEnd
();
this
.
loadEnd
();
if
(
window
&&
window
[
"
air
"
])
{
if
(
window
&&
window
[
"
air
"
])
{
window
[
"
air
"
].
hideAirClassLoading
();
window
[
"
air
"
].
hideAirClassLoading
();
}
}
cc
.
debug
.
setDisplayStats
(
false
);
cc
.
debug
.
setDisplayStats
(
false
);
});
});
},
},
//---------------------------------项目代码开始---------------------------------
//---------------------------------项目代码开始---------------------------------
loadEnd
()
{
loadEnd
()
{
this
.
initData
();
this
.
initData
();
this
.
initSingleData
();
this
.
initSingleData
();
this
.
initAudio
();
this
.
initAudio
();
this
.
initView
();
this
.
initView
();
// this.initListener();
// this.initListener();
},
},
//全局游戏
//全局游戏
_gameCode
:
null
,
_gameCode
:
null
,
initData
()
{
initData
()
{
//数据解析
//数据解析
CardManager
.
getIns
().
initCards
(
this
.
data
);
CardManager
.
getIns
().
initCards
(
this
.
data
);
CardManager
.
getIns
().
resetPageNum
();
CardManager
.
getIns
().
resetPageNum
();
CardManager
.
getIns
().
randomPageCards
();
CardManager
.
getIns
().
randomPageCards
();
this
.
_gameCode
=
0
;
this
.
_gameCode
=
0
;
},
},
//单局游戏
//单局游戏
_cantouch
:
null
,
_cantouch
:
null
,
_cardPage
:
null
,
_cardPage
:
null
,
_cardLayout
:
null
,
_cardLayout
:
null
,
_cardTouchItems
:
null
,
_cardTouchItems
:
null
,
_successItems
:
null
,
_successItems
:
null
,
initSingleData
()
{
initSingleData
()
{
// 所有全局变量 默认都是null
// 所有全局变量 默认都是null
this
.
_cantouch
=
true
;
this
.
_cantouch
=
true
;
//界面用数据
//界面用数据
this
.
_cardTouchItems
=
[];
this
.
_cardTouchItems
=
[];
this
.
_successItems
=
[];
this
.
_successItems
=
[];
this
.
_cardPage
=
CardManager
.
getIns
().
getPage
();
this
.
_cardPage
=
CardManager
.
getIns
().
getPage
();
cc
.
log
(
this
.
_cardPage
);
cc
.
log
(
this
.
_cardPage
);
},
},
initAudio
()
{
initAudio
()
{
},
},
initView
()
{
initView
()
{
this
.
btn_replay
=
pg
.
view
.
find
(
this
,
"
btn_replay
"
);
this
.
btn_replay
=
pg
.
view
.
find
(
this
,
"
btn_replay
"
);
pg
.
view
.
visible
(
this
.
btn_replay
,
false
);
pg
.
view
.
visible
(
this
.
btn_replay
,
false
);
pg
.
view
.
touchOn
(
this
.
btn_replay
,
this
.
onTouchReplay
,
this
);
pg
.
view
.
touchOn
(
this
.
btn_replay
,
this
.
onTouchReplay
,
this
);
this
.
initLayout
();
this
.
initLayout
();
this
.
catBegin
().
then
(()
=>
{
this
.
catBegin
().
then
(()
=>
{
this
.
catChoice
();
this
.
catChoice
();
});
});
},
},
initStars
()
{
initStars
()
{
// this.length = CardManager.getIns().getTestlet();
// this.length = CardManager.getIns().getTestlet();
// this.addStar();
// this.addStar();
},
},
initLayout
()
{
initLayout
()
{
pg
.
view
.
visible
(
this
.
btn_replay
,
false
);
pg
.
view
.
visible
(
this
.
btn_replay
,
false
);
this
.
_cardLayout
=
pg
.
view
.
find
(
this
,
`layout_card_6`
);
this
.
_cardLayout
=
pg
.
view
.
find
(
this
,
`layout_card_6`
);
ani
.
scaleIn
(
this
.
_cardLayout
);
ani
.
scaleIn
(
this
.
_cardLayout
);
pg
.
view
.
visible
(
this
.
_cardLayout
,
true
);
pg
.
view
.
visible
(
this
.
_cardLayout
,
true
);
let
itemBase
=
pg
.
view
.
find
(
this
,
"
item
"
);
let
itemBase
=
pg
.
view
.
find
(
this
,
"
item
"
);
for
(
let
i
=
0
;
i
<
this
.
_cardPage
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
_cardPage
.
length
;
i
++
)
{
let
data
=
this
.
_cardPage
[
i
];
let
data
=
this
.
_cardPage
[
i
];
let
item
=
cc
.
instantiate
(
itemBase
)
let
item
=
cc
.
instantiate
(
itemBase
)
item
.
parent
=
this
.
_cardLayout
;
item
.
parent
=
this
.
_cardLayout
;
if
(
!
data
||
!
item
||
data
.
type
==
CardManager
.
TYPE_NULL
)
continue
;
if
(
!
data
||
!
item
||
data
.
type
==
CardManager
.
TYPE_NULL
)
continue
;
this
.
updateItem
(
item
,
data
);
this
.
updateItem
(
item
,
data
);
}
}
},
},
updateItem
(
item
,
data
)
{
updateItem
(
item
,
data
)
{
let
img
=
pg
.
view
.
find
(
item
,
`img`
);
let
img
=
pg
.
view
.
find
(
item
,
`img`
);
let
txt
=
pg
.
view
.
find
(
item
,
`txt`
);
let
txt
=
pg
.
view
.
find
(
item
,
`txt`
);
let
audio
=
pg
.
view
.
find
(
item
,
`audio`
);
let
audio
=
pg
.
view
.
find
(
item
,
`audio`
);
let
box
=
pg
.
view
.
find
(
item
,
`box`
);
let
box
=
pg
.
view
.
find
(
item
,
`box`
);
pg
.
view
.
setNetImg
(
img
,
data
.
img
);
pg
.
view
.
setNetImg
(
img
,
data
.
img
);
pg
.
view
.
visible
(
img
,
true
);
pg
.
view
.
visible
(
img
,
true
);
pg
.
view
.
visible
(
txt
,
false
);
pg
.
view
.
visible
(
txt
,
false
);
pg
.
view
.
visible
(
audio
,
true
);
pg
.
view
.
visible
(
audio
,
true
);
pg
.
view
.
visible
(
pg
.
view
.
find
(
audio
,
"
icon_1
"
),
false
);
pg
.
view
.
visible
(
pg
.
view
.
find
(
audio
,
"
icon_1
"
),
false
);
pg
.
view
.
visible
(
pg
.
view
.
find
(
audio
,
"
icon_2
"
),
false
);
pg
.
view
.
visible
(
pg
.
view
.
find
(
audio
,
"
icon_2
"
),
false
);
pg
.
view
.
visible
(
pg
.
view
.
find
(
audio
,
"
icon_3
"
),
false
);
pg
.
view
.
visible
(
pg
.
view
.
find
(
audio
,
"
icon_3
"
),
false
);
item
.
scaleX
=
1
;
item
.
scaleX
=
1
;
item
.
scaleY
=
1
;
item
.
scaleY
=
1
;
pg
.
view
.
visible
(
box
,
false
);
pg
.
view
.
visible
(
box
,
false
);
item
.
attr
({
data
:
data
});
item
.
attr
({
data
:
data
});
pg
.
view
.
visible
(
item
,
true
);
pg
.
view
.
visible
(
item
,
true
);
pg
.
view
.
touchOn
(
item
,
this
.
onTouchItem
,
this
);
pg
.
view
.
touchOn
(
item
,
this
.
onTouchItem
,
this
);
pg
.
view
.
touchOn
(
audio
,
this
.
onTouchAudio
,
this
);
pg
.
view
.
touchOn
(
audio
,
this
.
onTouchAudio
,
this
);
},
},
onTouchAudio
(
touch
)
{
onTouchAudio
(
touch
)
{
if
(
this
.
_gameCode
!=
0
)
return
resolve
(
''
);
if
(
this
.
_gameCode
!=
0
)
return
resolve
(
''
);
if
(
!
this
.
_cantouch
)
return
;
if
(
!
this
.
_cantouch
)
return
;
this
.
_cantouch
=
false
;
this
.
_cantouch
=
false
;
let
item
=
touch
.
target
.
parent
;
let
item
=
touch
.
target
.
parent
;
this
.
playAudioAni
(
item
).
then
(()
=>
{
this
.
playAudioAni
(
item
).
then
(()
=>
{
this
.
_cantouch
=
true
;
this
.
_cantouch
=
true
;
});
});
},
},
onTouchItem
(
touch
,
info
)
{
onTouchItem
(
touch
,
info
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
this
.
_gameCode
!=
0
)
return
resolve
(
''
);
if
(
this
.
_gameCode
!=
0
)
return
resolve
(
''
);
if
(
!
this
.
_cantouch
)
return
resolve
(
''
);
if
(
!
this
.
_cantouch
)
return
resolve
(
''
);
let
item
=
touch
.
target
;
let
item
=
touch
.
target
;
if
(
this
.
_successItems
.
indexOf
(
item
)
>
-
1
)
return
resolve
(
''
);
if
(
this
.
_successItems
.
indexOf
(
item
)
>
-
1
)
return
resolve
(
''
);
let
data
=
item
.
data
;
let
data
=
item
.
data
;
this
.
_cantouch
=
false
;
this
.
_cantouch
=
false
;
if
(
data
.
right
)
{
if
(
data
.
right
)
{
this
.
catRight
();
this
.
catRight
();
pg
.
view
.
visible
(
pg
.
view
.
find
(
item
,
'
box
'
),
true
);
pg
.
view
.
visible
(
pg
.
view
.
find
(
item
,
'
box
'
),
true
);
this
.
playSFX
(
"
audio_right
"
).
then
(()
=>
{
this
.
playSFX
(
"
audio_right
"
).
then
(()
=>
{
//audio 播放的时候动画播放, audio停的时候 动画正好能停下
//audio 播放的时候动画播放, audio停的时候 动画正好能停下
//如果动画停的位置不对,直接强制设置对应的效果
//如果动画停的位置不对,直接强制设置对应的效果
//下一次播放没有问题即可
//下一次播放没有问题即可
this
.
playAudioAni
(
item
).
then
(()
=>
{
this
.
playAudioAni
(
item
).
then
(()
=>
{
this
.
_cantouch
=
true
;
this
.
_cantouch
=
true
;
this
.
_successItems
.
push
(
item
);
this
.
_successItems
.
push
(
item
);
this
.
catNormal
();
this
.
catNormal
();
this
.
groupEnd
();
this
.
groupEnd
();
resolve
(
''
);
resolve
(
''
);
})
})
});
});
}
else
{
}
else
{
this
.
catError
();
this
.
catError
();
//失败--抖动效果
//失败--抖动效果
ani
.
shake
(
item
);
ani
.
shake
(
item
);
this
.
playSFX
(
"
audio_error
"
).
then
(()
=>
{
this
.
playSFX
(
"
audio_error
"
).
then
(()
=>
{
this
.
playAudioAni
(
item
).
then
(()
=>
{
this
.
playAudioAni
(
item
).
then
(()
=>
{
this
.
_cantouch
=
true
;
this
.
_cantouch
=
true
;
this
.
catNormal
();
this
.
catNormal
();
resolve
(
''
);
resolve
(
''
);
});
});
});
});
}
}
});
});
},
},
playAudioAni
(
item
)
{
playAudioAni
(
item
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
// var anim = pg.view.find(item, `audio`).getComponent(cc.Animation);
// var anim = pg.view.find(item, `audio`).getComponent(cc.Animation);
// anim.play();
// anim.play();
let
audio
=
pg
.
view
.
find
(
item
,
`audio`
);
let
audio
=
pg
.
view
.
find
(
item
,
`audio`
);
let
icon_1
=
pg
.
view
.
find
(
audio
,
"
icon_1
"
);
let
icon_1
=
pg
.
view
.
find
(
audio
,
"
icon_1
"
);
let
icon_2
=
pg
.
view
.
find
(
audio
,
"
icon_2
"
);
let
icon_2
=
pg
.
view
.
find
(
audio
,
"
icon_2
"
);
let
icon_3
=
pg
.
view
.
find
(
audio
,
"
icon_3
"
);
let
icon_3
=
pg
.
view
.
find
(
audio
,
"
icon_3
"
);
icon_1
.
active
=
true
;
icon_1
.
active
=
true
;
//如果没有audio也要能正常走
//如果没有audio也要能正常走
pg
.
audio
.
playAudioByUrl
(
item
.
data
.
audio
).
then
(()
=>
{
pg
.
audio
.
playAudioByUrl
(
item
.
data
.
audio
).
then
(()
=>
{
// anim.stop();
// anim.stop();
icon_1
.
active
=
false
;
icon_1
.
active
=
false
;
resolve
(
''
);
resolve
(
''
);
});
});
});
});
},
},
onTouchReplay
()
{
onTouchReplay
()
{
this
.
playSFX
(
"
audio_btn
"
);
this
.
playSFX
(
"
audio_btn
"
);
this
.
initData
();
this
.
initData
();
this
.
initSingleData
();
this
.
initSingleData
();
pg
.
view
.
visible
(
this
.
btn_replay
,
false
);
pg
.
view
.
visible
(
this
.
btn_replay
,
false
);
this
.
initStars
();
this
.
initStars
();
this
.
initLayout
();
this
.
initLayout
();
},
},
//回合结束
//回合结束
groupEnd
()
{
groupEnd
()
{
if
(
this
.
_successItems
.
length
>=
CardManager
.
getIns
().
allRightNum
())
{
if
(
this
.
_successItems
.
length
>=
CardManager
.
getIns
().
allRightNum
())
{
//判定结束
//判定结束
this
.
_gameCode
=
2
;
this
.
_gameCode
=
2
;
this
.
catFinish
();
this
.
catFinish
();
}
}
// if (this._successItems.length < this._cardPage.length) return;
// if (this._successItems.length < this._cardPage.length) return;
// if (this._gameCode != 0) return;
// if (this._gameCode != 0) return;
// let code = CardManager.getIns().addPageNum();
// let code = CardManager.getIns().addPageNum();
// if (code == 0) {
// if (code == 0) {
// this._gameCode = 0;
// this._gameCode = 0;
// this.initSingleData();
// this.initSingleData();
// this.initLayout();
// this.initLayout();
// } else if (code == 1) {
// } else if (code == 1) {
// this._gameCode = 1;
// this._gameCode = 1;
// //播放星星动画 然后下一页
// //播放星星动画 然后下一页
// this.playSFX("audio_bigStar");
// this.playSFX("audio_bigStar");
// this.createStarAni().then(() => {
// this.createStarAni().then(() => {
// this._gameCode = 0;
// this._gameCode = 0;
// this.initSingleData();
// this.initSingleData();
// this.initLayout();
// this.initLayout();
// })
// })
// } else if (code == 2) {
// } else if (code == 2) {
// this._gameCode = 2;
// this._gameCode = 2;
// //播放星星动画 然后结束
// //播放星星动画 然后结束
// this.playSFX("audio_bigStar");
// this.playSFX("audio_bigStar");
// this.playSFX("audio_sahua");
// this.playSFX("audio_sahua");
// this.createStarAni().then(() => { })
// this.createStarAni().then(() => { })
// this.createFireworkAni().then(() => {
// this.createFireworkAni().then(() => {
// //gameOver
// //gameOver
// // 游戏结束时需要调用这个方法通知系统作业完成
// // 游戏结束时需要调用这个方法通知系统作业完成
// onHomeworkFinish();
// onHomeworkFinish();
// pg.view.visible(this.btn_replay, true);
// pg.view.visible(this.btn_replay, true);
// })
// })
// }
// }
},
},
createRightAni
(
pos
)
{
createRightAni
(
pos
)
{
// let right = pg.view.find(this, 'right');
// let right = pg.view.find(this, 'right');
// let aniRight = cc.instantiate(right);
// let aniRight = cc.instantiate(right);
// aniRight.x = pos.x;
// aniRight.x = pos.x;
// aniRight.y = pos.y;
// aniRight.y = pos.y;
// pg.view.find(this, 'ani').addChild(aniRight);
// pg.view.find(this, 'ani').addChild(aniRight);
// let armDisplay = aniRight.getComponent(dragonBones.ArmatureDisplay);
// let armDisplay = aniRight.getComponent(dragonBones.ArmatureDisplay);
// armDisplay.playAnimation('newAnimation', 1);
// armDisplay.playAnimation('newAnimation', 1);
// pg.view.visible(aniRight, true);
// pg.view.visible(aniRight, true);
},
},
createStarAni
()
{
createStarAni
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
showStar
();
this
.
showStar
();
setTimeout
(()
=>
{
setTimeout
(()
=>
{
resolve
(
''
);
resolve
(
''
);
},
500
);
},
500
);
});
});
},
},
createFireworkAni
()
{
createFireworkAni
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
// this.showAllFirework(cc.find('Canvas/firework_ani'), cc.find('Canvas/paperBase').children);
// this.showAllFirework(cc.find('Canvas/firework_ani'), cc.find('Canvas/paperBase').children);
showFireworks
(
showFireworks
(
cc
.
find
(
'
Canvas/firework_ani
'
),
cc
.
find
(
'
Canvas/firework_ani
'
),
cc
.
find
(
'
Canvas/RibbonNodeBase
'
).
children
,
cc
.
find
(
'
Canvas/RibbonNodeBase
'
).
children
,
cc
.
v2
(
0
,
-
400
),
cc
.
v2
(
0
,
1000
),
200
,
200
cc
.
v2
(
0
,
-
400
),
cc
.
v2
(
0
,
1000
),
200
,
200
);
);
showFireworks
(
showFireworks
(
cc
.
find
(
'
Canvas/firework_ani
'
),
cc
.
find
(
'
Canvas/firework_ani
'
),
cc
.
find
(
'
Canvas/RibbonNodeBase
'
).
children
,
cc
.
find
(
'
Canvas/RibbonNodeBase
'
).
children
,
cc
.
v2
(
-
600
,
-
400
),
cc
.
v2
(
200
,
1000
),
200
,
200
cc
.
v2
(
-
600
,
-
400
),
cc
.
v2
(
200
,
1000
),
200
,
200
);
);
showFireworks
(
showFireworks
(
cc
.
find
(
'
Canvas/firework_ani
'
),
cc
.
find
(
'
Canvas/firework_ani
'
),
cc
.
find
(
'
Canvas/RibbonNodeBase
'
).
children
,
cc
.
find
(
'
Canvas/RibbonNodeBase
'
).
children
,
cc
.
v2
(
600
,
-
400
),
cc
.
v2
(
-
200
,
1000
),
200
,
200
cc
.
v2
(
600
,
-
400
),
cc
.
v2
(
-
200
,
1000
),
200
,
200
);
);
setTimeout
(()
=>
{
setTimeout
(()
=>
{
resolve
(
''
);
resolve
(
''
);
},
1000
);
},
1000
);
});
});
},
},
playSFX
(
name
)
{
playSFX
(
name
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
node
=
pg
.
view
.
find
(
this
,
"
audio/
"
+
name
);
let
node
=
pg
.
view
.
find
(
this
,
"
audio/
"
+
name
);
if
(
!
node
)
return
resolve
();
if
(
!
node
)
return
resolve
();
let
audioSource
=
node
.
getComponent
(
cc
.
AudioSource
);
let
audioSource
=
node
.
getComponent
(
cc
.
AudioSource
);
if
(
!
audioSource
)
return
resolve
();
if
(
!
audioSource
)
return
resolve
();
let
audioClip
=
audioSource
.
clip
;
let
audioClip
=
audioSource
.
clip
;
if
(
!
audioClip
)
return
resolve
();
if
(
!
audioClip
)
return
resolve
();
let
id
=
cc
.
audioEngine
.
play
(
audioClip
,
false
,
1
);
let
id
=
cc
.
audioEngine
.
play
(
audioClip
,
false
,
1
);
cc
.
audioEngine
.
setFinishCallback
(
id
,
()
=>
{
cc
.
audioEngine
.
setFinishCallback
(
id
,
()
=>
{
resolve
(
''
);
resolve
(
''
);
})
})
});
});
},
},
length
,
length
,
addStar
()
{
addStar
()
{
if
(
!
this
.
length
)
{
if
(
!
this
.
length
)
{
this
.
length
=
0
;
this
.
length
=
0
;
}
}
this
.
length
++
;
this
.
length
++
;
let
length
=
this
.
length
;
let
length
=
this
.
length
;
const
starLayout
=
cc
.
find
(
'
Canvas/layout_stars
'
);
const
starLayout
=
cc
.
find
(
'
Canvas/layout_stars
'
);
starLayout
.
removeAllChildren
();
starLayout
.
removeAllChildren
();
const
paddingY
=
starLayout
.
getComponent
(
cc
.
Layout
).
spacingY
;
const
paddingY
=
starLayout
.
getComponent
(
cc
.
Layout
).
spacingY
;
for
(
let
i
=
0
;
i
<
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
length
;
i
++
)
{
const
starBase
=
cc
.
instantiate
(
cc
.
find
(
'
Canvas/StarBase
'
));
const
starBase
=
cc
.
instantiate
(
cc
.
find
(
'
Canvas/StarBase
'
));
starBase
.
name
=
`starBase_
${
i
}
`
;
starBase
.
name
=
`starBase_
${
i
}
`
;
starBase
.
scale
=
this
.
Between
(
0.5
,
(
starLayout
.
height
/
length
-
paddingY
)
/
starBase
.
height
,
1
);
starBase
.
scale
=
this
.
Between
(
0.5
,
(
starLayout
.
height
/
length
-
paddingY
)
/
starBase
.
height
,
1
);
starBase
.
parent
=
starLayout
;
starBase
.
parent
=
starLayout
;
}
}
this
.
currentStarIdx
=
0
;
this
.
currentStarIdx
=
0
;
},
},
currentStarIdx
:
null
,
currentStarIdx
:
null
,
showStar
()
{
showStar
()
{
if
(
!
this
.
currentStarIdx
)
{
if
(
!
this
.
currentStarIdx
)
{
this
.
currentStarIdx
=
0
;
this
.
currentStarIdx
=
0
;
}
}
const
starBase
=
cc
.
find
(
`Canvas/layout_stars/starBase_
${
this
.
currentStarIdx
}
`
);
const
starBase
=
cc
.
find
(
`Canvas/layout_stars/starBase_
${
this
.
currentStarIdx
}
`
);
if
(
!
starBase
)
{
if
(
!
starBase
)
{
return
;
return
;
}
}
const
star
=
starBase
.
getChildByName
(
'
Star
'
);
const
star
=
starBase
.
getChildByName
(
'
Star
'
);
const
starBig
=
star
.
getChildByName
(
'
StarBig
'
);
const
starBig
=
star
.
getChildByName
(
'
StarBig
'
);
starBig
.
scale
=
1
;
starBig
.
scale
=
1
;
star
.
active
=
true
;
star
.
active
=
true
;
star
.
scaleX
=
0.7
/
starBase
.
scale
;
star
.
scaleX
=
0.7
/
starBase
.
scale
;
star
.
scaleY
=
1
/
starBase
.
scale
;
star
.
scaleY
=
1
/
starBase
.
scale
;
star
.
angle
=
90
;
star
.
angle
=
90
;
const
canvas
=
cc
.
find
(
'
Canvas
'
);
const
canvas
=
cc
.
find
(
'
Canvas
'
);
const
startPos
=
this
.
exchangeNodePos
(
star
.
parent
,
canvas
,
cc
.
v2
(
0
,
-
canvas
.
height
/
2
));
const
startPos
=
this
.
exchangeNodePos
(
star
.
parent
,
canvas
,
cc
.
v2
(
0
,
-
canvas
.
height
/
2
));
const
middlePos
=
this
.
exchangeNodePos
(
star
.
parent
,
canvas
,
cc
.
v2
(
0
,
-
canvas
.
height
/
4
));
const
middlePos
=
this
.
exchangeNodePos
(
star
.
parent
,
canvas
,
cc
.
v2
(
0
,
-
canvas
.
height
/
4
));
star
.
x
=
startPos
.
x
;
star
.
x
=
startPos
.
x
;
star
.
y
=
startPos
.
y
-
starBig
.
height
;
star
.
y
=
startPos
.
y
-
starBig
.
height
;
console
.
log
(
'
middlePos =
'
+
JSON
.
stringify
(
middlePos
));
console
.
log
(
'
middlePos =
'
+
JSON
.
stringify
(
middlePos
));
const
time
=
1
;
const
time
=
1
;
cc
.
tween
(
star
)
cc
.
tween
(
star
)
.
to
(
0.3
,
{
y
:
middlePos
.
y
+
80
},
{
easing
:
'
quadOut
'
})
.
to
(
0.3
,
{
y
:
middlePos
.
y
+
80
},
{
easing
:
'
quadOut
'
})
.
to
(
0.1
,
{
y
:
middlePos
.
y
+
40
,
scaleX
:
1.2
/
starBase
.
scale
,
scaleY
:
0.8
/
starBase
.
scale
},
{
easing
:
'
quadOut
'
})
.
to
(
0.1
,
{
y
:
middlePos
.
y
+
40
,
scaleX
:
1.2
/
starBase
.
scale
,
scaleY
:
0.8
/
starBase
.
scale
},
{
easing
:
'
quadOut
'
})
.
to
(
0.1
,
{
y
:
middlePos
.
y
,
scaleX
:
1
/
starBase
.
scale
,
scaleY
:
1
/
starBase
.
scale
},
{
easing
:
'
quadOut
'
})
.
to
(
0.1
,
{
y
:
middlePos
.
y
,
scaleX
:
1
/
starBase
.
scale
,
scaleY
:
1
/
starBase
.
scale
},
{
easing
:
'
quadOut
'
})
.
delay
(
0.1
)
.
delay
(
0.1
)
.
to
(
0.8
,
{
angle
:
-
720
,
scale
:
1
})
.
to
(
0.8
,
{
angle
:
-
720
,
scale
:
1
})
.
start
();
.
start
();
cc
.
tween
(
star
)
cc
.
tween
(
star
)
.
delay
(
0.6
)
.
delay
(
0.6
)
.
to
(
0.8
,
{
x
:
0
},
{
easing
:
'
quadIn
'
})
.
to
(
0.8
,
{
x
:
0
},
{
easing
:
'
quadIn
'
})
.
start
();
.
start
();
cc
.
tween
(
star
)
cc
.
tween
(
star
)
.
delay
(
0.6
)
.
delay
(
0.6
)
.
to
(
0.8
,
{
y
:
0
},
{
easing
:
'
quadOut
'
})
.
to
(
0.8
,
{
y
:
0
},
{
easing
:
'
quadOut
'
})
.
start
();
.
start
();
cc
.
tween
(
starBig
)
cc
.
tween
(
starBig
)
.
delay
(
0.6
)
.
delay
(
0.6
)
.
to
(
0.8
,
{
scale
:
0
},
{
easing
:
'
quadOut
'
})
.
to
(
0.8
,
{
scale
:
0
},
{
easing
:
'
quadOut
'
})
.
call
(()
=>
{
.
call
(()
=>
{
// this.checkGameEnd();
// this.checkGameEnd();
})
})
.
start
();
.
start
();
this
.
currentStarIdx
++
;
this
.
currentStarIdx
++
;
},
},
Between
(
a
,
b
,
c
)
{
Between
(
a
,
b
,
c
)
{
return
[
a
,
b
,
c
].
sort
()[
1
];
return
[
a
,
b
,
c
].
sort
()[
1
];
},
},
exchangeNodePos
(
targetNode
,
baseNode
,
basePos
)
{
exchangeNodePos
(
targetNode
,
baseNode
,
basePos
)
{
return
targetNode
.
convertToNodeSpaceAR
(
baseNode
.
convertToWorldSpaceAR
(
cc
.
v2
(
basePos
.
x
,
basePos
.
y
)));
return
targetNode
.
convertToNodeSpaceAR
(
baseNode
.
convertToWorldSpaceAR
(
cc
.
v2
(
basePos
.
x
,
basePos
.
y
)));
},
},
async
showAllFirework
(
parentNode
,
nodeList
)
{
async
showAllFirework
(
parentNode
,
nodeList
)
{
for
(
let
i
=
0
;
i
<
6
;
i
++
)
{
for
(
let
i
=
0
;
i
<
6
;
i
++
)
{
this
.
showFirework
(
cc
.
v2
(
0
,
-
parentNode
.
height
/
2
),
parentNode
,
nodeList
,
parentNode
.
width
*
2
/
3
,
parentNode
.
height
*
1.3
);
this
.
showFirework
(
cc
.
v2
(
0
,
-
parentNode
.
height
/
2
),
parentNode
,
nodeList
,
parentNode
.
width
*
2
/
3
,
parentNode
.
height
*
1.3
);
await
asyncDelay
(
0.1
);
await
asyncDelay
(
0.1
);
}
}
},
},
showFirework
(
pos
,
parentNode
,
nodeList
,
width
=
200
,
height
=
200
,
number
=
30
)
{
showFirework
(
pos
,
parentNode
,
nodeList
,
width
=
200
,
height
=
200
,
number
=
30
)
{
for
(
let
i
=
0
;
i
<
number
;
i
++
)
{
for
(
let
i
=
0
;
i
<
number
;
i
++
)
{
const
quad
=
this
.
createQuads
(
pos
,
parentNode
,
nodeList
);
const
quad
=
this
.
createQuads
(
pos
,
parentNode
,
nodeList
);
const
targetX
=
RandomInt
(
width
/
2
,
-
width
/
2
);
const
targetX
=
RandomInt
(
width
/
2
,
-
width
/
2
);
const
targetY
=
RandomInt
(
height
);
const
targetY
=
RandomInt
(
height
);
cc
.
tween
(
quad
)
cc
.
tween
(
quad
)
.
by
(
0.5
,
{
x
:
targetX
})
.
by
(
0.5
,
{
x
:
targetX
})
.
by
(
3
,
{
x
:
targetX
*
2
})
.
by
(
3
,
{
x
:
targetX
*
2
})
.
start
();
.
start
();
cc
.
tween
(
quad
)
cc
.
tween
(
quad
)
.
by
(
0.5
,
{
y
:
targetY
},
{
easing
:
'
quadOut
'
})
.
by
(
0.5
,
{
y
:
targetY
},
{
easing
:
'
quadOut
'
})
.
to
(
4
,
{
y
:
-
parentNode
.
height
*
2
},
{
easing
:
'
quadIn
'
})
.
to
(
4
,
{
y
:
-
parentNode
.
height
*
2
},
{
easing
:
'
quadIn
'
})
.
removeSelf
()
.
removeSelf
()
.
start
();
.
start
();
cc
.
tween
(
quad
)
cc
.
tween
(
quad
)
.
delay
(
1
)
.
delay
(
1
)
.
to
(
1.5
,
{
opacity
:
0
})
.
to
(
1.5
,
{
opacity
:
0
})
.
start
();
.
start
();
}
}
},
},
createQuads
(
pos
,
parentNode
,
nodeList
)
{
createQuads
(
pos
,
parentNode
,
nodeList
)
{
const
quadBase
=
cc
.
instantiate
(
nodeList
[
RandomInt
(
nodeList
.
length
)]);
const
quadBase
=
cc
.
instantiate
(
nodeList
[
RandomInt
(
nodeList
.
length
)]);
quadBase
.
x
=
pos
.
x
;
quadBase
.
x
=
pos
.
x
;
quadBase
.
y
=
pos
.
y
;
quadBase
.
y
=
pos
.
y
;
quadBase
.
z
=
pos
.
z
;
quadBase
.
z
=
pos
.
z
;
quadBase
.
angle
=
RandomInt
(
180
);
quadBase
.
angle
=
RandomInt
(
180
);
quadBase
.
parent
=
parentNode
;
quadBase
.
parent
=
parentNode
;
const
quad
=
quadBase
.
getChildByName
(
'
quad
'
);
const
quad
=
quadBase
.
getChildByName
(
'
quad
'
);
quad
.
x
=
0
;
quad
.
x
=
0
;
quad
.
y
=
0
;
quad
.
y
=
0
;
quad
.
angle
=
RandomInt
(
180
);
quad
.
angle
=
RandomInt
(
180
);
const
paper
=
quad
.
getChildByName
(
'
paper
'
);
const
paper
=
quad
.
getChildByName
(
'
paper
'
);
paper
.
scaleX
=
Math
.
random
()
*
0.5
+
0.5
;
paper
.
scaleX
=
Math
.
random
()
*
0.5
+
0.5
;
paper
.
scaleY
=
Math
.
random
()
*
0.5
+
0.5
;
paper
.
scaleY
=
Math
.
random
()
*
0.5
+
0.5
;
quadBase
.
scaleX
=
Math
.
random
();
quadBase
.
scaleX
=
Math
.
random
();
cc
.
tween
(
quadBase
)
cc
.
tween
(
quadBase
)
.
to
((
1
-
quadBase
.
scaleX
)
*
0.3
,
{
scaleX
:
1
})
.
to
((
1
-
quadBase
.
scaleX
)
*
0.3
,
{
scaleX
:
1
})
.
call
(()
=>
{
.
call
(()
=>
{
const
time
=
Math
.
random
()
*
0.2
;
const
time
=
Math
.
random
()
*
0.2
;
cc
.
tween
(
quadBase
)
cc
.
tween
(
quadBase
)
.
to
(
0.1
+
time
,
{
scaleX
:
-
1
})
.
to
(
0.1
+
time
,
{
scaleX
:
-
1
})
.
to
(
0.1
+
time
,
{
scaleX
:
1
})
.
to
(
0.1
+
time
,
{
scaleX
:
1
})
.
union
()
.
union
()
.
repeatForever
()
.
repeatForever
()
.
start
();
.
start
();
})
})
.
start
();
.
start
();
return
quadBase
;
return
quadBase
;
},
},
catBegin
()
{
catBegin
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
_cantouch
=
false
;
this
.
_cantouch
=
false
;
let
cat
=
pg
.
view
.
find
(
this
,
"
cat
"
);
let
cat
=
pg
.
view
.
find
(
this
,
"
cat
"
);
pg
.
view
.
playDragonBone
(
cat
,
"
begin
"
);
pg
.
view
.
playDragonBone
(
cat
,
"
begin
"
);
pg
.
audio
.
playAudioByUrl
(
CardManager
.
getIns
().
getAudio
()).
then
(()
=>
{
pg
.
audio
.
playAudioByUrl
(
CardManager
.
getIns
().
getAudio
()).
then
(()
=>
{
resolve
(
''
);
resolve
(
''
);
});
});
});
});
},
},
catChoice
()
{
catChoice
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
playSFX
(
"
mao_choice
"
).
then
(()
=>
{
this
.
playSFX
(
"
mao_choice
"
).
then
(()
=>
{
let
items
=
this
.
_cardLayout
.
children
;
let
items
=
this
.
_cardLayout
.
children
;
let
item
=
items
.
filter
(
it
=>
{
let
item
=
items
.
filter
(
it
=>
{
return
it
.
data
.
cardId
==
0
return
it
.
data
.
cardId
==
0
})[
0
];
})[
0
];
this
.
_cantouch
=
true
;
this
.
_cantouch
=
true
;
this
.
onTouchItem
({
target
:
item
}).
then
(()
=>
{
this
.
onTouchItem
({
target
:
item
}).
then
(()
=>
{
resolve
(
''
);
resolve
(
''
);
})
})
});
});
});
});
},
},
catFinish
()
{
catFinish
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
cat
=
pg
.
view
.
find
(
this
,
"
cat
"
);
let
cat
=
pg
.
view
.
find
(
this
,
"
cat
"
);
pg
.
view
.
playDragonBone
(
cat
,
"
finish
"
);
pg
.
view
.
playDragonBone
(
cat
,
"
finish
"
);
this
.
playSFX
(
"
mao_right
"
).
then
(()
=>
{
this
.
playSFX
(
"
mao_right
"
).
then
(()
=>
{
});
});
});
});
},
},
catRight
()
{
catRight
()
{
let
cat
=
pg
.
view
.
find
(
this
,
"
cat
"
);
let
cat
=
pg
.
view
.
find
(
this
,
"
cat
"
);
pg
.
view
.
playDragonBone
(
cat
,
"
right
"
);
pg
.
view
.
playDragonBone
(
cat
,
"
right
"
);
},
},
catError
()
{
catError
()
{
let
cat
=
pg
.
view
.
find
(
this
,
"
cat
"
);
let
cat
=
pg
.
view
.
find
(
this
,
"
cat
"
);
pg
.
view
.
playDragonBone
(
cat
,
"
wrong
"
);
pg
.
view
.
playDragonBone
(
cat
,
"
wrong
"
);
},
},
catNormal
()
{
catNormal
()
{
let
cat
=
pg
.
view
.
find
(
this
,
"
cat
"
);
let
cat
=
pg
.
view
.
find
(
this
,
"
cat
"
);
pg
.
view
.
playDragonBone
(
cat
,
"
normal
"
);
pg
.
view
.
playDragonBone
(
cat
,
"
normal
"
);
}
}
});
});
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene/scene
.js.meta
→
play/assets/scene/
OP15/OP15
.js.meta
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/ani.js
→
play/assets/scene/
OP15
/ani.js
View file @
a318d934
class
Ani
{
class
Ani
{
//抖动效果
//抖动效果
static
shake
(
item
)
{
static
shake
(
item
)
{
// alert("抖动效果");
// alert("抖动效果");
let
tween
=
cc
.
tween
(
item
);
let
tween
=
cc
.
tween
(
item
);
tween
.
to
(
0.06
,
{
angle
:
10
})
tween
.
to
(
0.06
,
{
angle
:
10
})
.
to
(
0.06
,
{
angle
:
0
})
.
to
(
0.06
,
{
angle
:
0
})
.
to
(
0.06
,
{
angle
:
-
10
})
.
to
(
0.06
,
{
angle
:
-
10
})
.
to
(
0.06
,
{
angle
:
0
});
.
to
(
0.06
,
{
angle
:
0
});
tween
.
repeat
(
4
);
tween
.
repeat
(
4
);
tween
.
start
();
tween
.
start
();
}
}
static
scaleOut
(
item
)
{
static
scaleOut
(
item
)
{
return
new
Promise
((
resolve
)
=>
{
return
new
Promise
((
resolve
)
=>
{
let
tween
=
cc
.
tween
(
item
);
let
tween
=
cc
.
tween
(
item
);
tween
.
to
(
0.2
,
{
scaleX
:
0
,
scaleY
:
0
})
tween
.
to
(
0.2
,
{
scaleX
:
0
,
scaleY
:
0
})
.
call
(()
=>
{
resolve
()
});
.
call
(()
=>
{
resolve
()
});
tween
.
start
();
tween
.
start
();
})
})
}
}
static
scaleIn
(
item
)
{
static
scaleIn
(
item
)
{
return
new
Promise
((
resolve
)
=>
{
return
new
Promise
((
resolve
)
=>
{
item
.
scaleX
=
0
;
item
.
scaleX
=
0
;
item
.
scaleY
=
0
;
item
.
scaleY
=
0
;
let
tween
=
cc
.
tween
(
item
);
let
tween
=
cc
.
tween
(
item
);
tween
.
to
(
0.2
,
{
scaleX
:
1
,
scaleY
:
1
})
tween
.
to
(
0.2
,
{
scaleX
:
1
,
scaleY
:
1
})
.
call
(()
=>
{
resolve
()
});
.
call
(()
=>
{
resolve
()
});
tween
.
start
();
tween
.
start
();
})
})
}
}
}
}
export
default
Ani
;
export
default
Ani
;
\ No newline at end of file
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/ani.js.meta
→
play/assets/scene/
OP15
/ani.js.meta
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/audioAni.js
→
play/assets/scene/
OP15
/audioAni.js
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/audioAni.js.meta
→
play/assets/scene/
OP15
/audioAni.js.meta
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/cardManager.js
→
play/assets/scene/
OP15
/cardManager.js
View file @
a318d934
class
Card
{
class
Card
{
constructor
(
picItem
,
cardId
)
{
constructor
(
picItem
,
cardId
)
{
this
.
cardId
=
cardId
;
this
.
cardId
=
cardId
;
this
.
type
=
CardManager
.
TYPE_IMG
;
this
.
type
=
CardManager
.
TYPE_IMG
;
this
.
right
=
picItem
.
radioValue
==
"
1
"
;
this
.
right
=
picItem
.
radioValue
==
"
1
"
;
this
.
img
=
picItem
.
pic_url
;
this
.
img
=
picItem
.
pic_url
;
this
.
audio
=
picItem
.
audio_url
;
this
.
audio
=
picItem
.
audio_url
;
}
}
}
}
class
CardManager
{
class
CardManager
{
static
TYPE_NULL
=
0
;
static
TYPE_NULL
=
0
;
static
TYPE_TXT
=
1
;
static
TYPE_TXT
=
1
;
static
TYPE_IMG
=
2
;
static
TYPE_IMG
=
2
;
static
TYPE_MP3
=
3
;
static
TYPE_MP3
=
3
;
static
instance
;
static
instance
;
static
getIns
()
{
static
getIns
()
{
if
(
!
CardManager
.
instance
)
CardManager
.
instance
=
new
CardManager
();
if
(
!
CardManager
.
instance
)
CardManager
.
instance
=
new
CardManager
();
return
CardManager
.
instance
;
return
CardManager
.
instance
;
}
}
_cardArray
;
//所有卡片的组
_cardArray
;
//所有卡片的组
testletId
;
//组id
testletId
;
//组id
pageId
;
//页id
pageId
;
//页id
constructor
()
{
constructor
()
{
this
.
_cardArray
=
[];
//组 页
this
.
_cardArray
=
[];
//组 页
this
.
_audio_url
=
""
;
this
.
_audio_url
=
""
;
this
.
testletId
=
0
;
this
.
testletId
=
0
;
this
.
pageId
=
0
;
this
.
pageId
=
0
;
}
}
initCards
(
obj
)
{
initCards
(
obj
)
{
console
.
log
(
obj
);
console
.
log
(
obj
);
let
picArr
=
obj
.
contentObj
.
picArr
;
let
picArr
=
obj
.
contentObj
.
picArr
;
let
id
=
0
;
let
id
=
0
;
this
.
_cardArray
=
picArr
.
list
.
map
(
cd
=>
{
this
.
_cardArray
=
picArr
.
list
.
map
(
cd
=>
{
return
new
Card
(
cd
,
id
++
);
return
new
Card
(
cd
,
id
++
);
});
});
this
.
_audio_url
=
picArr
.
audio_url
this
.
_audio_url
=
picArr
.
audio_url
}
}
getTestlet
()
{
getTestlet
()
{
return
this
.
_cardArray
.
length
-
1
;
return
this
.
_cardArray
.
length
-
1
;
}
}
getPage
()
{
getPage
()
{
return
this
.
_cardArray
;
return
this
.
_cardArray
;
}
}
getAudio
()
{
getAudio
()
{
return
this
.
_audio_url
;
return
this
.
_audio_url
;
}
}
allRightNum
()
{
allRightNum
()
{
return
this
.
_cardArray
.
filter
(
c
=>
c
.
right
).
length
;
return
this
.
_cardArray
.
filter
(
c
=>
c
.
right
).
length
;
}
}
addPageNum
()
{
addPageNum
()
{
this
.
pageId
++
;
this
.
pageId
++
;
if
(
!
this
.
getPage
())
{
if
(
!
this
.
getPage
())
{
this
.
pageId
=
0
;
this
.
pageId
=
0
;
this
.
testletId
++
;
this
.
testletId
++
;
if
(
!
this
.
getPage
())
{
if
(
!
this
.
getPage
())
{
return
2
;
//游戏结束
return
2
;
//游戏结束
}
}
return
1
;
//组结束
return
1
;
//组结束
}
else
{
}
else
{
return
0
;
//页结束
return
0
;
//页结束
}
}
}
}
resetPageNum
()
{
resetPageNum
()
{
this
.
testletId
=
0
;
this
.
testletId
=
0
;
this
.
pageId
=
0
;
this
.
pageId
=
0
;
}
}
randomPageCards
()
{
randomPageCards
()
{
//页面内部数字要打乱 0 1 2 3 4 5 6 7 8 每次动态取出一个值 然后动态处理
//页面内部数字要打乱 0 1 2 3 4 5 6 7 8 每次动态取出一个值 然后动态处理
let
arr
=
[];
let
arr
=
[];
while
(
this
.
_cardArray
.
length
>
0
)
{
while
(
this
.
_cardArray
.
length
>
0
)
{
let
rand
=
Math
.
floor
(
Math
.
random
()
*
this
.
_cardArray
.
length
);
let
rand
=
Math
.
floor
(
Math
.
random
()
*
this
.
_cardArray
.
length
);
arr
.
push
(
this
.
_cardArray
[
rand
]);
arr
.
push
(
this
.
_cardArray
[
rand
]);
this
.
_cardArray
.
splice
(
rand
,
1
);
this
.
_cardArray
.
splice
(
rand
,
1
);
}
}
this
.
_cardArray
=
arr
;
this
.
_cardArray
=
arr
;
}
}
}
}
export
default
CardManager
;
export
default
CardManager
;
\ No newline at end of file
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/cardManager.js.meta
→
play/assets/scene/
OP15
/cardManager.js.meta
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/data.js
→
play/assets/scene/
OP15
/data.js
View file @
a318d934
export
const
itemData
=
{
export
const
itemData
=
{
"
contentObj
"
:
{
"
picArr
"
:
{
"
list
"
:
[{
"
cardId
"
:
""
,
"
radioValue
"
:
"
1
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/81f008a708cafed9caf1234e0af0d982.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/b8860997e5801c5410cf23fb7d44ea6f.mp3
"
},
{
"
cardId
"
:
""
,
"
radioValue
"
:
"
1
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/f2a7d2c7df70548ca49cdd802656aeb4.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/bdc09d9eb89b73e67357b502ae2158dd.mp3
"
},
{
"
cardId
"
:
""
,
"
radioValue
"
:
"
1
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/12c164fe8bd626872e2a8f7ba6d88f7e.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/aaeb274c49f400c26b05583d481aca09.mp3
"
},
{
"
cardId
"
:
""
,
"
radioValue
"
:
"
1
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/94a3ead8d0972651c5d49d8aa25ac8b5.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/301ec5c708d22928ccf2162215f429fe.mp3
"
},
{
"
cardId
"
:
""
,
"
radioValue
"
:
"
0
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/b1baffd430e9f5feefde0b1053b7a7e2.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/2db9fa7c28a11fdbcecfa6a5b5e62319.mp3
"
},
{
"
cardId
"
:
""
,
"
radioValue
"
:
"
0
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/d1c6cedd0ea8ba9a6a8ca8ad3886df49.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/c3db5ac421ef039cf540edfa5116c831.mp3
"
}],
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/9bc9518c426d0e9a5e4a6b0614ddd195.mp3
"
}
}
"
contentObj
"
:
{
"
picArr
"
:
{
"
list
"
:
[{
"
cardId
"
:
""
,
"
radioValue
"
:
"
1
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/81f008a708cafed9caf1234e0af0d982.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/b8860997e5801c5410cf23fb7d44ea6f.mp3
"
},
{
"
cardId
"
:
""
,
"
radioValue
"
:
"
1
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/f2a7d2c7df70548ca49cdd802656aeb4.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/bdc09d9eb89b73e67357b502ae2158dd.mp3
"
},
{
"
cardId
"
:
""
,
"
radioValue
"
:
"
1
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/12c164fe8bd626872e2a8f7ba6d88f7e.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/aaeb274c49f400c26b05583d481aca09.mp3
"
},
{
"
cardId
"
:
""
,
"
radioValue
"
:
"
1
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/94a3ead8d0972651c5d49d8aa25ac8b5.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/301ec5c708d22928ccf2162215f429fe.mp3
"
},
{
"
cardId
"
:
""
,
"
radioValue
"
:
"
0
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/b1baffd430e9f5feefde0b1053b7a7e2.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/2db9fa7c28a11fdbcecfa6a5b5e62319.mp3
"
},
{
"
cardId
"
:
""
,
"
radioValue
"
:
"
0
"
,
"
title
"
:
""
,
"
pic_url
"
:
"
http://staging-teach.cdn.ireadabc.com/d1c6cedd0ea8ba9a6a8ca8ad3886df49.png
"
,
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/c3db5ac421ef039cf540edfa5116c831.mp3
"
}],
"
audio_url
"
:
"
http://staging-teach.cdn.ireadabc.com/9bc9518c426d0e9a5e4a6b0614ddd195.mp3
"
}
}
}
}
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/data.js.meta
→
play/assets/scene/
OP15
/data.js.meta
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/hyLoader.js
→
play/assets/scene/
OP15
/hyLoader.js
View file @
a318d934
class
HYLoader
{
class
HYLoader
{
getSprNode
(
resName
)
{
getSprNode
(
resName
)
{
const
sf
=
cc
.
find
(
'
Canvas/res/img/
'
+
resName
).
getComponent
(
cc
.
Sprite
).
spriteFrame
;
const
sf
=
cc
.
find
(
'
Canvas/res/img/
'
+
resName
).
getComponent
(
cc
.
Sprite
).
spriteFrame
;
const
node
=
new
cc
.
Node
();
const
node
=
new
cc
.
Node
();
node
.
addComponent
(
cc
.
Sprite
).
spriteFrame
=
sf
;
node
.
addComponent
(
cc
.
Sprite
).
spriteFrame
=
sf
;
return
node
;
return
node
;
}
}
getSpriteFrimeByUrl
(
url
,
cb
)
{
getSpriteFrimeByUrl
(
url
,
cb
)
{
cc
.
loader
.
load
({
url
},
(
err
,
img
)
=>
{
cc
.
loader
.
load
({
url
},
(
err
,
img
)
=>
{
const
spriteFrame
=
new
cc
.
SpriteFrame
(
img
)
const
spriteFrame
=
new
cc
.
SpriteFrame
(
img
)
if
(
cb
)
{
if
(
cb
)
{
cb
(
spriteFrame
);
cb
(
spriteFrame
);
}
}
})
})
}
}
getSprNodeByUrl
(
url
,
cb
)
{
getSprNodeByUrl
(
url
,
cb
)
{
const
node
=
new
cc
.
Node
();
const
node
=
new
cc
.
Node
();
const
spr
=
node
.
addComponent
(
cc
.
Sprite
);
const
spr
=
node
.
addComponent
(
cc
.
Sprite
);
this
.
getSpriteFrimeByUrl
(
url
,
(
sf
)
=>
{
this
.
getSpriteFrimeByUrl
(
url
,
(
sf
)
=>
{
spr
.
spriteFrame
=
sf
;
spr
.
spriteFrame
=
sf
;
if
(
cb
)
{
if
(
cb
)
{
cb
(
node
);
cb
(
node
);
}
}
})
})
}
}
playAudioByUrl
(
audio_url
,
cb
=
null
)
{
playAudioByUrl
(
audio_url
,
cb
=
null
)
{
if
(
audio_url
)
{
if
(
audio_url
)
{
cc
.
assetManager
.
loadRemote
(
audio_url
,
(
err
,
audioClip
)
=>
{
cc
.
assetManager
.
loadRemote
(
audio_url
,
(
err
,
audioClip
)
=>
{
const
audioId
=
cc
.
audioEngine
.
play
(
audioClip
,
false
,
0.8
);
const
audioId
=
cc
.
audioEngine
.
play
(
audioClip
,
false
,
0.8
);
if
(
cb
)
{
if
(
cb
)
{
cc
.
audioEngine
.
setFinishCallback
(
audioId
,
()
=>
{
cc
.
audioEngine
.
setFinishCallback
(
audioId
,
()
=>
{
cb
();
cb
();
});
});
}
}
});
});
}
}
}
}
}
}
export
const
hyLoader
=
new
HYLoader
();
export
const
hyLoader
=
new
HYLoader
();
\ No newline at end of file
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/hyLoader.js.meta
→
play/assets/scene/
OP15
/hyLoader.js.meta
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/pg.js
→
play/assets/scene/
OP15
/pg.js
View file @
a318d934
let
pg
=
{};
let
pg
=
{};
//打印
//打印
pg
.
logger
=
{
pg
.
logger
=
{
d
:
(
str
)
=>
{
d
:
(
str
)
=>
{
cc
.
log
(
str
);
cc
.
log
(
str
);
},
},
w
:
function
(
str
)
{
w
:
function
(
str
)
{
cc
.
warn
(
str
);
cc
.
warn
(
str
);
}
}
}
}
const
log
=
pg
.
logger
;
const
log
=
pg
.
logger
;
//显示常用
//显示常用
pg
.
view
=
{
pg
.
view
=
{
//显示隐藏
//显示隐藏
//添加节点
//添加节点
//删除节点
//删除节点
//加载网络节点
//加载网络节点
touchEnable
(
item
,
isEnable
)
{
touchEnable
(
item
,
isEnable
)
{
if
(
!
item
)
return
pg
.
logger
.
w
(
"
设置按钮响应失败,传入了错误的item
"
);
if
(
!
item
)
return
pg
.
logger
.
w
(
"
设置按钮响应失败,传入了错误的item
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
node
)
return
pg
.
logger
.
w
(
"
设置按钮响应失败,传入了错误的item
"
);
if
(
!
node
)
return
pg
.
logger
.
w
(
"
设置按钮响应失败,传入了错误的item
"
);
let
btn
=
node
.
getComponent
(
cc
.
Button
);
let
btn
=
node
.
getComponent
(
cc
.
Button
);
if
(
!
btn
)
return
pg
.
logger
.
w
(
"
当前节点没有添加button->
"
+
node
.
name
);
if
(
!
btn
)
return
pg
.
logger
.
w
(
"
当前节点没有添加button->
"
+
node
.
name
);
btn
.
interactable
=
isEnable
;
btn
.
interactable
=
isEnable
;
return
true
;
return
true
;
},
},
touchOn
(
item
,
callback
,
target
)
{
touchOn
(
item
,
callback
,
target
)
{
if
(
!
item
)
return
pg
.
logger
.
w
(
"
添加按钮响应失败,传入了错误的item
"
);
if
(
!
item
)
return
pg
.
logger
.
w
(
"
添加按钮响应失败,传入了错误的item
"
);
if
(
!
callback
||
!
target
)
return
pg
.
logger
.
w
(
"
添加按钮响应失败,传入了空回调
"
);
if
(
!
callback
||
!
target
)
return
pg
.
logger
.
w
(
"
添加按钮响应失败,传入了空回调
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
node
.
on
(
cc
.
Node
.
EventType
.
TOUCH_END
,
callback
,
target
);
node
.
on
(
cc
.
Node
.
EventType
.
TOUCH_END
,
callback
,
target
);
return
true
;
return
true
;
},
},
touchOff
(
item
,
callback
,
target
)
{
touchOff
(
item
,
callback
,
target
)
{
if
(
!
item
)
return
log
.
w
(
"
移除按钮响应失败,传入了错误的item
"
);
if
(
!
item
)
return
log
.
w
(
"
移除按钮响应失败,传入了错误的item
"
);
if
(
!
callback
||
!
target
)
return
log
.
w
(
"
移除按钮响应失败,传入了空回调
"
);
if
(
!
callback
||
!
target
)
return
log
.
w
(
"
移除按钮响应失败,传入了空回调
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
node
||
!
node
.
parent
)
return
log
.
w
(
"
节点已移除
"
);
if
(
!
node
||
!
node
.
parent
)
return
log
.
w
(
"
节点已移除
"
);
node
.
off
(
cc
.
Node
.
EventType
.
TOUCH_END
,
callback
,
target
);
node
.
off
(
cc
.
Node
.
EventType
.
TOUCH_END
,
callback
,
target
);
return
true
;
return
true
;
},
},
//更换图片
//更换图片
setImg
(
item
,
res
)
{
setImg
(
item
,
res
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
!
item
)
return
log
.
w
(
"
图片更换失败,传入了错误的item
"
);
if
(
!
item
)
return
log
.
w
(
"
图片更换失败,传入了错误的item
"
);
if
(
!
res
)
return
log
.
w
(
"
图片更换失败,传入了错误的res
"
);
if
(
!
res
)
return
log
.
w
(
"
图片更换失败,传入了错误的res
"
);
pg
.
load
.
loadImg
(
res
).
then
((
spriteFrame
)
=>
{
pg
.
load
.
loadImg
(
res
).
then
((
spriteFrame
)
=>
{
if
(
!
cc
.
isValid
(
item
))
return
log
.
i
(
"
节点已销毁
"
);
if
(
!
cc
.
isValid
(
item
))
return
log
.
i
(
"
节点已销毁
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
cc
.
isValid
(
node
))
return
log
.
i
(
"
节点已销毁
"
);
if
(
!
cc
.
isValid
(
node
))
return
log
.
i
(
"
节点已销毁
"
);
let
component
=
node
.
getComponent
(
cc
.
Sprite
);
let
component
=
node
.
getComponent
(
cc
.
Sprite
);
let
{
width
,
height
}
=
spriteFrame
.
_rect
;
let
{
width
,
height
}
=
spriteFrame
.
_rect
;
component
.
spriteFrame
=
spriteFrame
;
component
.
spriteFrame
=
spriteFrame
;
resolve
({
width
,
height
});
resolve
({
width
,
height
});
})
})
})
})
},
},
setNetImg
(
item
,
res
)
{
setNetImg
(
item
,
res
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
!
item
)
return
log
.
w
(
"
图片更换失败,传入了错误的item
"
);
if
(
!
item
)
return
log
.
w
(
"
图片更换失败,传入了错误的item
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
res
)
{
if
(
!
res
)
{
node
.
active
=
false
;
node
.
active
=
false
;
return
log
.
w
(
"
图片更换失败,传入了错误的res
"
);
return
log
.
w
(
"
图片更换失败,传入了错误的res
"
);
}
}
if
(
!
node
)
return
log
.
w
(
"
图片更换失败,传入了错误的item
"
);
if
(
!
node
)
return
log
.
w
(
"
图片更换失败,传入了错误的item
"
);
if
(
node
.
net_url
==
res
)
return
;
if
(
node
.
net_url
==
res
)
return
;
let
w
=
node
.
width
;
let
w
=
node
.
width
;
let
h
=
node
.
height
;
let
h
=
node
.
height
;
node
.
active
=
false
;
//
node
.
active
=
false
;
//
pg
.
load
.
loadNetImg
(
res
).
then
((
texture
)
=>
{
pg
.
load
.
loadNetImg
(
res
).
then
((
texture
)
=>
{
if
(
!
cc
.
isValid
(
node
))
return
log
.
i
(
"
节点已销毁
"
);
if
(
!
cc
.
isValid
(
node
))
return
log
.
i
(
"
节点已销毁
"
);
let
nw
=
node
.
width
=
texture
.
width
;
let
nw
=
node
.
width
=
texture
.
width
;
let
nh
=
node
.
height
=
texture
.
height
;
let
nh
=
node
.
height
=
texture
.
height
;
let
component
=
node
.
getComponent
(
cc
.
Sprite
);
let
component
=
node
.
getComponent
(
cc
.
Sprite
);
let
spriteFrame
=
new
cc
.
SpriteFrame
(
texture
);
let
spriteFrame
=
new
cc
.
SpriteFrame
(
texture
);
component
.
spriteFrame
=
spriteFrame
;
component
.
spriteFrame
=
spriteFrame
;
node
.
net_url
=
res
;
node
.
net_url
=
res
;
let
a
=
w
/
nw
;
//100 2000 0.05
let
a
=
w
/
nw
;
//100 2000 0.05
let
b
=
h
/
nh
;
//100 1000 0.1
let
b
=
h
/
nh
;
//100 1000 0.1
if
(
a
<
b
)
{
if
(
a
<
b
)
{
node
.
width
=
a
*
nw
;
node
.
width
=
a
*
nw
;
node
.
height
=
a
*
nh
;
node
.
height
=
a
*
nh
;
}
else
{
}
else
{
node
.
width
=
b
*
nw
;
node
.
width
=
b
*
nw
;
node
.
height
=
b
*
nh
;
node
.
height
=
b
*
nh
;
}
}
node
.
active
=
true
;
node
.
active
=
true
;
resolve
({
w
:
nw
,
h
:
nh
});
resolve
({
w
:
nw
,
h
:
nh
});
})
})
})
})
},
},
visible
(
item
,
isVisible
)
{
visible
(
item
,
isVisible
)
{
if
(
!
item
)
return
log
.
w
(
"
节点显示失败,传入了错误的item
"
);
if
(
!
item
)
return
log
.
w
(
"
节点显示失败,传入了错误的item
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
node
||
!
node
.
parent
)
return
log
.
w
(
"
节点已移除
"
);
if
(
!
node
||
!
node
.
parent
)
return
log
.
w
(
"
节点已移除
"
);
node
.
active
=
isVisible
;
node
.
active
=
isVisible
;
return
true
;
return
true
;
},
},
setString
(
item
,
text
,
count
=
0
)
{
setString
(
item
,
text
,
count
=
0
)
{
if
(
!
item
)
return
log
.
w
(
"
节点text失败,传入了错误的item
"
);
if
(
!
item
)
return
log
.
w
(
"
节点text失败,传入了错误的item
"
);
if
(
count
>
0
)
{
if
(
count
>
0
)
{
function
parse_str
(
str
,
count
)
{
function
parse_str
(
str
,
count
)
{
if
(
!
str
)
return
""
;
if
(
!
str
)
return
""
;
var
segmants
=
str
.
split
(
'
+
'
);
var
segmants
=
str
.
split
(
'
+
'
);
str
=
segmants
.
join
(
''
);
str
=
segmants
.
join
(
''
);
var
len
=
0
;
var
len
=
0
;
var
idx
=
0
;
var
idx
=
0
;
for
(
var
i
=
0
;
i
<
str
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
str
.
length
;
i
++
)
{
var
p
=
/
[^
x00-xff
]
/g
;
var
p
=
/
[^
x00-xff
]
/g
;
var
a
=
str
.
charAt
(
i
);
var
a
=
str
.
charAt
(
i
);
if
(
p
.
test
(
a
))
{
if
(
p
.
test
(
a
))
{
len
+=
2
;
len
+=
2
;
idx
++
;
idx
++
;
}
}
else
{
else
{
len
+=
1
;
len
+=
1
;
idx
++
;
idx
++
;
}
}
if
(
len
>=
count
*
2
)
if
(
len
>=
count
*
2
)
break
;
break
;
}
}
return
str
.
substr
(
0
,
idx
);
return
str
.
substr
(
0
,
idx
);
}
}
text
=
parse_str
(
text
,
count
);
text
=
parse_str
(
text
,
count
);
}
}
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
node
)
return
;
if
(
!
node
)
return
;
let
component
=
node
.
getComponent
(
cc
.
Label
);
//组件功能 非node的功能
let
component
=
node
.
getComponent
(
cc
.
Label
);
//组件功能 非node的功能
component
.
string
=
text
;
component
.
string
=
text
;
return
true
;
return
true
;
},
},
setColor
(
item
,
color
,
outlineWidth
=
-
1
)
{
setColor
(
item
,
color
,
outlineWidth
=
-
1
)
{
if
(
!
item
)
return
log
.
w
(
"
setColor warn->传入了错误的item
"
);
if
(
!
item
)
return
log
.
w
(
"
setColor warn->传入了错误的item
"
);
let
RGB
=
this
.
colorRgb
(
color
);
let
RGB
=
this
.
colorRgb
(
color
);
if
(
!
RGB
||
RGB
.
length
==
0
)
return
log
.
w
(
"
color ->传入了错误的color
"
);
if
(
!
RGB
||
RGB
.
length
==
0
)
return
log
.
w
(
"
color ->传入了错误的color
"
);
item
.
color
=
new
cc
.
Color
(
RGB
[
0
],
RGB
[
1
],
RGB
[
2
]);
item
.
color
=
new
cc
.
Color
(
RGB
[
0
],
RGB
[
1
],
RGB
[
2
]);
if
(
outlineWidth
<
0
)
return
;
if
(
outlineWidth
<
0
)
return
;
let
LabelOutline
=
item
.
getComponent
(
cc
.
LabelOutline
);
let
LabelOutline
=
item
.
getComponent
(
cc
.
LabelOutline
);
if
(
!
LabelOutline
)
return
log
.
w
(
"
LabelOutline warn->未添加描边
"
);
if
(
!
LabelOutline
)
return
log
.
w
(
"
LabelOutline warn->未添加描边
"
);
LabelOutline
.
width
=
outlineWidth
;
LabelOutline
.
width
=
outlineWidth
;
},
},
colorRgb
(
color
)
{
colorRgb
(
color
)
{
var
reg
=
/^#
([
0-9a-fA-f
]{3}
|
[
0-9a-fA-f
]{6})
$/
;
var
reg
=
/^#
([
0-9a-fA-f
]{3}
|
[
0-9a-fA-f
]{6})
$/
;
var
sColor
=
color
;
var
sColor
=
color
;
if
(
sColor
&&
reg
.
test
(
sColor
))
{
if
(
sColor
&&
reg
.
test
(
sColor
))
{
if
(
sColor
.
length
===
4
)
{
if
(
sColor
.
length
===
4
)
{
var
sColorNew
=
"
#
"
;
var
sColorNew
=
"
#
"
;
for
(
var
i
=
1
;
i
<
4
;
i
+=
1
)
{
for
(
var
i
=
1
;
i
<
4
;
i
+=
1
)
{
sColorNew
+=
sColor
.
slice
(
i
,
i
+
1
).
concat
(
sColor
.
slice
(
i
,
i
+
1
));
sColorNew
+=
sColor
.
slice
(
i
,
i
+
1
).
concat
(
sColor
.
slice
(
i
,
i
+
1
));
}
}
sColor
=
sColorNew
;
sColor
=
sColorNew
;
}
}
//处理六位的颜色值
//处理六位的颜色值
var
sColorChange
=
[];
var
sColorChange
=
[];
for
(
var
i
=
1
;
i
<
7
;
i
+=
2
)
{
for
(
var
i
=
1
;
i
<
7
;
i
+=
2
)
{
sColorChange
.
push
(
parseInt
(
"
0x
"
+
sColor
.
slice
(
i
,
i
+
2
)));
sColorChange
.
push
(
parseInt
(
"
0x
"
+
sColor
.
slice
(
i
,
i
+
2
)));
}
}
return
sColorChange
;
return
sColorChange
;
}
else
{
}
else
{
return
sColor
;
return
sColor
;
}
}
},
},
find
(
item
,
childPath
)
{
find
(
item
,
childPath
)
{
if
(
typeof
item
==
"
string
"
)
{
if
(
typeof
item
==
"
string
"
)
{
childPath
=
item
;
childPath
=
item
;
item
=
null
;
item
=
null
;
}
}
if
(
!
childPath
||
childPath
==
''
||
typeof
childPath
!=
'
string
'
)
return
log
.
w
(
"
findChildByPath error->
"
+
"
请传入路径
"
);
if
(
!
childPath
||
childPath
==
''
||
typeof
childPath
!=
'
string
'
)
return
log
.
w
(
"
findChildByPath error->
"
+
"
请传入路径
"
);
let
child
=
null
;
let
child
=
null
;
if
(
item
)
{
if
(
item
)
{
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
node
.
children
||
node
.
children
.
length
==
0
)
return
log
.
w
(
"
findChild error->
"
+
"
找不到此节点,请检查层级路径:
"
+
childPath
);
if
(
!
node
.
children
||
node
.
children
.
length
==
0
)
return
log
.
w
(
"
findChild error->
"
+
"
找不到此节点,请检查层级路径:
"
+
childPath
);
child
=
cc
.
find
(
childPath
,
node
);
child
=
cc
.
find
(
childPath
,
node
);
}
else
{
}
else
{
child
=
cc
.
find
(
childPath
);
child
=
cc
.
find
(
childPath
);
}
}
if
(
!
child
)
return
log
.
w
(
"
findChildByPath error->
"
+
"
找不到此节点,请检查层级路径:
"
+
childPath
);
if
(
!
child
)
return
log
.
w
(
"
findChildByPath error->
"
+
"
找不到此节点,请检查层级路径:
"
+
childPath
);
return
child
;
return
child
;
},
},
addChild
(
item
,
child
,
zIndex
)
{
addChild
(
item
,
child
,
zIndex
)
{
if
(
!
child
)
return
console
.
log
(
"
addChild error ->请传入子节点
"
);
if
(
!
child
)
return
console
.
log
(
"
addChild error ->请传入子节点
"
);
if
(
!
item
)
return
console
.
log
(
"
addChild error ->请传入父节点
"
);
if
(
!
item
)
return
console
.
log
(
"
addChild error ->请传入父节点
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
node
)
return
console
.
log
(
"
addChild error ->请传入父节点
"
);
if
(
!
node
)
return
console
.
log
(
"
addChild error ->请传入父节点
"
);
if
(
child
.
parent
)
if
(
child
.
parent
)
return
log
.
w
(
"
此节点已经有父节点->
"
+
child
.
name
);
return
log
.
w
(
"
此节点已经有父节点->
"
+
child
.
name
);
if
(
zIndex
>=
0
)
{
if
(
zIndex
>=
0
)
{
node
.
addChild
(
child
,
zIndex
)
node
.
addChild
(
child
,
zIndex
)
}
else
{
}
else
{
node
.
addChild
(
child
);
node
.
addChild
(
child
);
}
}
return
true
;
return
true
;
},
},
removeSelf
(
item
)
{
removeSelf
(
item
)
{
if
(
!
item
)
return
log
.
w
(
"
节点移除失败,传入了错误的item
"
);
if
(
!
item
)
return
log
.
w
(
"
节点移除失败,传入了错误的item
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
node
.
removeFromParent
();
node
.
removeFromParent
();
node
.
destroy
();
node
.
destroy
();
},
},
removChildren
(
item
)
{
removChildren
(
item
)
{
if
(
!
item
)
return
log
.
w
(
"
节点remove失败,传入了错误的item
"
);
if
(
!
item
)
return
log
.
w
(
"
节点remove失败,传入了错误的item
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
node
.
parent
)
return
log
.
w
(
"
节点remove失败,传入了错误的item
"
);
if
(
!
node
.
parent
)
return
log
.
w
(
"
节点remove失败,传入了错误的item
"
);
node
.
removeAllChildren
();
node
.
removeAllChildren
();
return
true
;
return
true
;
},
},
removeChild
(
item
,
child
)
{
removeChild
(
item
,
child
)
{
if
(
!
item
)
return
log
.
w
(
"
节点remove失败,传入了错误的item
"
);
if
(
!
item
)
return
log
.
w
(
"
节点remove失败,传入了错误的item
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
child
.
parent
&&
child
.
parent
==
node
)
{
if
(
child
.
parent
&&
child
.
parent
==
node
)
{
node
.
removeChild
(
child
);
node
.
removeChild
(
child
);
node
.
destroy
();
node
.
destroy
();
}
}
return
true
;
return
true
;
},
},
playSpineAnimation
(
item
,
aniName
,
loop
)
{
playSpineAnimation
(
item
,
aniName
,
loop
)
{
if
(
!
item
||
!
cc
.
isValid
(
item
))
return
log
.
w
(
"
动画播放失败,传入了错误的item
"
);
if
(
!
item
||
!
cc
.
isValid
(
item
))
return
log
.
w
(
"
动画播放失败,传入了错误的item
"
);
if
(
!
aniName
)
return
log
.
w
(
"
动画播放失败,传入了错误的aniName
"
);
if
(
!
aniName
)
return
log
.
w
(
"
动画播放失败,传入了错误的aniName
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
cc
.
isValid
(
node
))
return
log
.
w
(
"
节点已销毁
"
);
if
(
!
cc
.
isValid
(
node
))
return
log
.
w
(
"
节点已销毁
"
);
let
skl
=
node
.
getComponent
(
sp
.
Skeleton
);
let
skl
=
node
.
getComponent
(
sp
.
Skeleton
);
skl
.
setAnimation
(
0
,
aniName
,
loop
);
skl
.
setAnimation
(
0
,
aniName
,
loop
);
return
skl
;
return
skl
;
},
},
playDragonBone
(
item
,
aniName
,
loop
)
{
playDragonBone
(
item
,
aniName
,
loop
)
{
if
(
!
item
||
!
cc
.
isValid
(
item
))
return
log
.
w
(
"
动画播放失败,传入了错误的item
"
);
if
(
!
item
||
!
cc
.
isValid
(
item
))
return
log
.
w
(
"
动画播放失败,传入了错误的item
"
);
if
(
!
aniName
)
return
log
.
w
(
"
动画播放失败,传入了错误的aniName
"
);
if
(
!
aniName
)
return
log
.
w
(
"
动画播放失败,传入了错误的aniName
"
);
let
node
=
item
.
node
?
item
.
node
:
item
;
let
node
=
item
.
node
?
item
.
node
:
item
;
if
(
!
cc
.
isValid
(
node
))
return
log
.
w
(
"
节点已销毁
"
);
if
(
!
cc
.
isValid
(
node
))
return
log
.
w
(
"
节点已销毁
"
);
let
dba
=
node
.
getComponent
(
dragonBones
.
ArmatureDisplay
);
let
dba
=
node
.
getComponent
(
dragonBones
.
ArmatureDisplay
);
dba
.
playAnimation
(
aniName
,
loop
);
dba
.
playAnimation
(
aniName
,
loop
);
return
dba
;
return
dba
;
},
},
cloneNode
(
node
)
{
cloneNode
(
node
)
{
return
cc
.
instantiate
(
node
);
return
cc
.
instantiate
(
node
);
}
}
}
}
//加载 未封装bundle
//加载 未封装bundle
pg
.
load
=
{
pg
.
load
=
{
loadRes
:
function
(
res
,
type
,
bundleName
)
{
loadRes
:
function
(
res
,
type
,
bundleName
)
{
// cc.assetManager.loadBundle('hall', (err, bundle) => {
// cc.assetManager.loadBundle('hall', (err, bundle) => {
// if (err) return cc.error(err);
// if (err) return cc.error(err);
// cc.director.loadScene("hall", () => { });
// cc.director.loadScene("hall", () => { });
// });
// });
// cc.assetManager.loadBundle('chess', (err, bundle) => {
// cc.assetManager.loadBundle('chess', (err, bundle) => {
// if (err) return cc.error(err);
// if (err) return cc.error(err);
// cc.director.loadScene("chess", () => {
// cc.director.loadScene("chess", () => {
// // //清理hall的资源
// // //清理hall的资源
// // let hallBundle = cc.assetManager.getBundle(`hall`);
// // let hallBundle = cc.assetManager.getBundle(`hall`);
// // hallBundle.releaseAll();
// // hallBundle.releaseAll();
// // cc.assetManager.removeBundle(hallBundle);
// // cc.assetManager.removeBundle(hallBundle);
// });
// });
// });
// });
//此处需要二次封装,新的存在assetbundle
//此处需要二次封装,新的存在assetbundle
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
cc
.
loader
.
loadRes
(
res
,
type
,
(
err
,
data
)
=>
{
cc
.
loader
.
loadRes
(
res
,
type
,
(
err
,
data
)
=>
{
if
(
err
&&
!
data
)
return
resolve
(
pg
.
logger
.
d
(
'
loading loadRes error->
'
,
res
));
if
(
err
&&
!
data
)
return
resolve
(
pg
.
logger
.
d
(
'
loading loadRes error->
'
,
res
));
resolve
(
data
);
resolve
(
data
);
});
});
})
})
},
},
loadImg
:
function
()
{
loadImg
:
function
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
loadRes
(
url
,
cc
.
SpriteFrame
).
then
((
data
)
=>
{
this
.
loadRes
(
url
,
cc
.
SpriteFrame
).
then
((
data
)
=>
{
if
(
!
data
||
data
.
length
==
0
)
return
;
if
(
!
data
||
data
.
length
==
0
)
return
;
resolve
(
data
);
resolve
(
data
);
})
})
})
})
},
},
loadPrefab
:
function
(
path
=
""
)
{
loadPrefab
:
function
(
path
=
""
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
url
=
"
/prefabs/
"
+
path
;
url
=
"
/prefabs/
"
+
path
;
this
.
loadRes
(
url
,
cc
.
Prefab
).
then
((
data
)
=>
{
this
.
loadRes
(
url
,
cc
.
Prefab
).
then
((
data
)
=>
{
if
(
!
data
||
data
.
length
==
0
)
return
reject
();
if
(
!
data
||
data
.
length
==
0
)
return
reject
();
return
resolve
(
cc
.
instantiate
(
data
));
return
resolve
(
cc
.
instantiate
(
data
));
})
})
})
})
},
},
loadNetImg
:
function
(
url
)
{
loadNetImg
:
function
(
url
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
cc
.
loader
.
load
({
url
},
(
err
,
texture
)
=>
{
cc
.
loader
.
load
({
url
},
(
err
,
texture
)
=>
{
if
(
err
&&
!
data
)
return
resolve
(
pg
.
logger
.
w
(
'
loading loadRes warn->
'
,
res
));
if
(
err
&&
!
data
)
return
resolve
(
pg
.
logger
.
w
(
'
loading loadRes warn->
'
,
res
));
resolve
(
texture
);
resolve
(
texture
);
});
});
})
})
},
},
}
}
//本地存储
//本地存储
pg
.
localStorage
=
{
pg
.
localStorage
=
{
setItem
:
function
(
key
,
val
)
{
setItem
:
function
(
key
,
val
)
{
cc
.
sys
.
localStorage
.
setItem
(
key
,
val
);
cc
.
sys
.
localStorage
.
setItem
(
key
,
val
);
},
},
getItem
:
function
(
key
,
defVal
)
{
getItem
:
function
(
key
,
defVal
)
{
return
cc
.
sys
.
localStorage
.
getItem
(
key
)
||
defVal
;
return
cc
.
sys
.
localStorage
.
getItem
(
key
)
||
defVal
;
}
}
}
}
//HTTP网络请求
//HTTP网络请求
pg
.
http
=
{
pg
.
http
=
{
send
:
function
(
type
=
"
GET
"
,
url
,
data
,
callback
)
{
send
:
function
(
type
=
"
GET
"
,
url
,
data
,
callback
)
{
let
xhr
=
cc
.
loader
.
getXMLHttpRequest
();
let
xhr
=
cc
.
loader
.
getXMLHttpRequest
();
xhr
.
timeout
=
5000
;
xhr
.
timeout
=
5000
;
xhr
.
responseType
=
"
text
"
;
xhr
.
responseType
=
"
text
"
;
xhr
.
open
(
type
,
url
,
true
);
xhr
.
open
(
type
,
url
,
true
);
xhr
.
setRequestHeader
(
"
Content-Type
"
,
"
application/x-www-form-urlencoded
"
);
xhr
.
setRequestHeader
(
"
Content-Type
"
,
"
application/x-www-form-urlencoded
"
);
xhr
.
onreadystatechange
=
()
=>
{
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
!==
4
)
return
;
if
(
xhr
.
readyState
!==
4
)
return
;
if
(
xhr
.
status
>=
200
&&
xhr
.
status
<
300
)
{
if
(
xhr
.
status
>=
200
&&
xhr
.
status
<
300
)
{
try
{
try
{
let
resp
=
xhr
.
responseText
;
let
resp
=
xhr
.
responseText
;
pg
.
logger
.
d
(
"
resp->
"
+
JSON
.
stringify
(
resp
));
pg
.
logger
.
d
(
"
resp->
"
+
JSON
.
stringify
(
resp
));
callback
(
resp
);
callback
(
resp
);
}
catch
(
e
)
{
}
catch
(
e
)
{
}
}
}
}
else
{
else
{
}
}
};
};
xhr
.
onerror
=
(
e
)
=>
{
xhr
.
onerror
=
(
e
)
=>
{
pg
.
logger
.
w
(
"
onerror->
"
+
url
);
pg
.
logger
.
w
(
"
onerror->
"
+
url
);
};
};
xhr
.
ontimeout
=
(
e
)
=>
{
xhr
.
ontimeout
=
(
e
)
=>
{
pg
.
logger
.
w
(
"
ontimeout->
"
+
url
);
pg
.
logger
.
w
(
"
ontimeout->
"
+
url
);
};
};
xhr
.
send
(
data
);
xhr
.
send
(
data
);
}
}
}
}
/**事件监听部分
/**事件监听部分
*
*
*
*
*
*
*/
*/
class
Emitter
{
class
Emitter
{
static
instance
;
static
instance
;
static
getInstance
()
{
static
getInstance
()
{
if
(
!
Emitter
.
instance
)
{
if
(
!
Emitter
.
instance
)
{
Emitter
.
instance
=
new
Emitter
();
Emitter
.
instance
=
new
Emitter
();
}
}
return
Emitter
.
instance
;
return
Emitter
.
instance
;
}
}
constructor
()
{
constructor
()
{
this
.
_callbacks
=
{};
this
.
_callbacks
=
{};
return
this
;
return
this
;
}
}
on
(
event
,
fn
)
{
on
(
event
,
fn
)
{
(
this
.
_callbacks
[
event
]
=
this
.
_callbacks
[
event
]
||
[]).
push
(
fn
);
(
this
.
_callbacks
[
event
]
=
this
.
_callbacks
[
event
]
||
[]).
push
(
fn
);
};
};
once
(
event
,
fn
)
{
once
(
event
,
fn
)
{
function
on
()
{
function
on
()
{
this
.
off
(
event
,
on
);
this
.
off
(
event
,
on
);
fn
.
apply
(
this
,
arguments
);
fn
.
apply
(
this
,
arguments
);
}
}
on
.
fn
=
fn
;
on
.
fn
=
fn
;
this
.
on
(
event
,
on
);
this
.
on
(
event
,
on
);
};
};
off
(
event
,
fn
)
{
off
(
event
,
fn
)
{
// all
// all
if
(
0
==
arguments
.
length
)
{
if
(
0
==
arguments
.
length
)
{
this
.
_callbacks
=
{};
this
.
_callbacks
=
{};
return
;
return
;
}
}
// specific event
// specific event
let
callbacks
=
this
.
_callbacks
[
event
];
let
callbacks
=
this
.
_callbacks
[
event
];
if
(
!
callbacks
)
return
;
if
(
!
callbacks
)
return
;
// remove all handlers
// remove all handlers
if
(
1
==
arguments
.
length
)
{
if
(
1
==
arguments
.
length
)
{
delete
this
.
_callbacks
[
event
];
delete
this
.
_callbacks
[
event
];
return
;
return
;
}
}
// remove specific handler
// remove specific handler
let
cb
;
let
cb
;
for
(
let
i
=
0
;
i
<
callbacks
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
callbacks
.
length
;
i
++
)
{
cb
=
callbacks
[
i
];
cb
=
callbacks
[
i
];
if
(
cb
===
fn
||
cb
.
fn
===
fn
)
{
if
(
cb
===
fn
||
cb
.
fn
===
fn
)
{
callbacks
.
splice
(
i
,
1
);
callbacks
.
splice
(
i
,
1
);
break
;
break
;
}
}
}
}
return
;
return
;
}
}
emit
(
event
,
...
args
)
{
emit
(
event
,
...
args
)
{
this
.
_callbacks
=
this
.
_callbacks
||
{};
this
.
_callbacks
=
this
.
_callbacks
||
{};
// let args = [].slice.call(arguments, 1);
// let args = [].slice.call(arguments, 1);
let
callbacks
=
this
.
_callbacks
[
event
];
let
callbacks
=
this
.
_callbacks
[
event
];
if
(
callbacks
)
{
if
(
callbacks
)
{
callbacks
=
callbacks
.
slice
(
0
);
callbacks
=
callbacks
.
slice
(
0
);
for
(
let
i
=
0
,
len
=
callbacks
.
length
;
i
<
len
;
++
i
)
{
for
(
let
i
=
0
,
len
=
callbacks
.
length
;
i
<
len
;
++
i
)
{
callbacks
[
i
].
apply
(
this
,
args
);
callbacks
[
i
].
apply
(
this
,
args
);
}
}
}
}
}
}
listeners
(
event
)
{
listeners
(
event
)
{
this
.
_callbacks
=
this
.
_callbacks
||
{};
this
.
_callbacks
=
this
.
_callbacks
||
{};
return
this
.
_callbacks
[
event
]
||
[];
return
this
.
_callbacks
[
event
]
||
[];
};
};
hasListeners
(
event
)
{
hasListeners
(
event
)
{
return
!!
this
.
listeners
(
event
).
length
;
return
!!
this
.
listeners
(
event
).
length
;
};
};
}
}
class
SceneStruct
{
class
SceneStruct
{
constructor
()
{
constructor
()
{
this
.
nowScene
=
"
hb_login
"
;
this
.
nowScene
=
"
hb_login
"
;
this
.
sceneObject
=
{};
this
.
sceneObject
=
{};
this
.
sceneObject
[
this
.
nowScene
]
=
[];
this
.
sceneObject
[
this
.
nowScene
]
=
[];
}
}
addScene
(
sceneName
)
{
addScene
(
sceneName
)
{
this
.
nowScene
=
sceneName
;
this
.
nowScene
=
sceneName
;
//if (!this.sceneObject[this.nowScene])
//if (!this.sceneObject[this.nowScene])
this
.
sceneObject
[
this
.
nowScene
]
=
[];
this
.
sceneObject
[
this
.
nowScene
]
=
[];
}
}
addLayer
(
layerName
)
{
addLayer
(
layerName
)
{
if
(
!
this
.
sceneObject
[
this
.
nowScene
])
return
console
.
log
(
"
sceneStruct err->scene未初始化:
"
+
this
.
nowScene
)
if
(
!
this
.
sceneObject
[
this
.
nowScene
])
return
console
.
log
(
"
sceneStruct err->scene未初始化:
"
+
this
.
nowScene
)
if
(
!
this
.
sceneObject
[
this
.
nowScene
].
includes
(
layerName
))
{
if
(
!
this
.
sceneObject
[
this
.
nowScene
].
includes
(
layerName
))
{
this
.
sceneObject
[
this
.
nowScene
].
push
(
layerName
);
this
.
sceneObject
[
this
.
nowScene
].
push
(
layerName
);
}
}
}
}
removeLayer
(
layerName
)
{
removeLayer
(
layerName
)
{
if
(
!
this
.
sceneObject
[
this
.
nowScene
])
return
console
.
log
(
"
sceneStruct err->scene未初始化:
"
+
this
.
nowScene
)
if
(
!
this
.
sceneObject
[
this
.
nowScene
])
return
console
.
log
(
"
sceneStruct err->scene未初始化:
"
+
this
.
nowScene
)
let
arr
=
this
.
sceneObject
[
this
.
nowScene
];
let
arr
=
this
.
sceneObject
[
this
.
nowScene
];
let
isSuccess
=
false
;
let
isSuccess
=
false
;
for
(
let
i
=
arr
.
length
-
1
;
i
>=
0
;
i
--
)
{
for
(
let
i
=
arr
.
length
-
1
;
i
>=
0
;
i
--
)
{
let
laName
=
arr
[
i
];
let
laName
=
arr
[
i
];
if
(
layerName
==
laName
)
{
if
(
layerName
==
laName
)
{
isSuccess
=
true
;
isSuccess
=
true
;
arr
.
splice
(
i
,
1
);
arr
.
splice
(
i
,
1
);
}
}
}
}
if
(
!
isSuccess
)
{
if
(
!
isSuccess
)
{
console
.
log
(
"
sceneStruct err->scene没有对应layer:
"
+
this
.
nowScene
+
"
>
"
+
layerName
);
console
.
log
(
"
sceneStruct err->scene没有对应layer:
"
+
this
.
nowScene
+
"
>
"
+
layerName
);
}
}
}
}
clearLayer
()
{
clearLayer
()
{
this
.
sceneObject
[
this
.
nowScene
]
=
[];
this
.
sceneObject
[
this
.
nowScene
]
=
[];
}
}
getLayers
()
{
getLayers
()
{
return
this
.
sceneObject
[
this
.
nowScene
]
||
[];
return
this
.
sceneObject
[
this
.
nowScene
]
||
[];
}
}
}
}
class
SceneManager
{
class
SceneManager
{
static
debug
=
true
;
static
debug
=
true
;
static
instance
;
static
instance
;
static
getInstance
()
{
static
getInstance
()
{
if
(
!
SceneManager
.
instance
)
{
if
(
!
SceneManager
.
instance
)
{
SceneManager
.
instance
=
new
SceneManager
();
SceneManager
.
instance
=
new
SceneManager
();
}
}
return
SceneManager
.
instance
;
return
SceneManager
.
instance
;
}
}
//py [-zIndex.bottom-]
//py [-zIndex.bottom-]
//py [-zIndex.login-]
//py [-zIndex.login-]
//py [-zIndex.hall-]
//py [-zIndex.hall-]
//py [-zIndex.club-]
//py [-zIndex.club-]
//py [-zIndex.clubPop-]
//py [-zIndex.clubPop-]
//py [-zIndex.game-]
//py [-zIndex.game-]
//py [-zIndex.game_1-]
//py [-zIndex.game_1-]
//py [-zIndex.game_2-]
//py [-zIndex.game_2-]
//py [-zIndex.game_3-]
//py [-zIndex.game_3-]
//py [-zIndex.notice-]
//py [-zIndex.notice-]
//py [-zIndex.tip-]
//py [-zIndex.tip-]
//py [-zIndex.tips-]
//py [-zIndex.tips-]
//py [-zIndex.top-]
//py [-zIndex.top-]
constructor
()
{
constructor
()
{
this
.
sceneStruct
=
new
SceneStruct
();
this
.
sceneStruct
=
new
SceneStruct
();
//addLayer之前和之后要对scene进行一次对比,如果异常,不进行添加。 继续游戏能看到大厅的bug。
//addLayer之前和之后要对scene进行一次对比,如果异常,不进行添加。 继续游戏能看到大厅的bug。
this
.
zIndex
=
{
this
.
zIndex
=
{
bottom
:
0
,
bottom
:
0
,
login
:
1
,
login
:
1
,
hall
:
2
,
hall
:
2
,
game
:
5
,
game
:
5
,
notice
:
9
,
notice
:
9
,
tip
:
10
,
tip
:
10
,
top
:
12
,
top
:
12
,
webView
:
90
,
//webView 会在最上层,防止出现无法关闭活动界面
webView
:
90
,
//webView 会在最上层,防止出现无法关闭活动界面
}
}
}
}
nameScene
;
nameScene
;
scene
;
scene
;
get
stage
()
{
get
stage
()
{
return
cc
.
find
(
"
Canvas
"
);
return
cc
.
find
(
"
Canvas
"
);
}
}
get
bottom
()
{
get
bottom
()
{
return
cc
.
find
(
"
Canvas/bottom
"
);
return
cc
.
find
(
"
Canvas/bottom
"
);
}
}
get
camera
()
{
get
camera
()
{
return
cc
.
find
(
'
Canvas/Main Camera
'
)
return
cc
.
find
(
'
Canvas/Main Camera
'
)
}
}
beforeLoadScene
()
{
beforeLoadScene
()
{
let
layers
=
[].
concat
(
this
.
sceneStruct
.
getLayers
());
let
layers
=
[].
concat
(
this
.
sceneStruct
.
getLayers
());
if
(
!
layers
||
layers
.
length
==
0
)
return
;
if
(
!
layers
||
layers
.
length
==
0
)
return
;
layers
.
forEach
(
layerName
=>
{
layers
.
forEach
(
layerName
=>
{
this
.
removeLayer
(
layerName
,
true
);
this
.
removeLayer
(
layerName
,
true
);
})
})
}
}
//py [-loadScene(${1:sceneName})-]
//py [-loadScene(${1:sceneName})-]
loadScene
(
sceneName
,
data
,
prepareFunc
)
{
loadScene
(
sceneName
,
data
,
prepareFunc
)
{
// pg.loading.releaseAllRes();
// pg.loading.releaseAllRes();
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
this
.
nameScene
==
sceneName
)
{
if
(
this
.
nameScene
==
sceneName
)
{
resolve
();
resolve
();
return
console
.
warn
(
"
加载重复的scene->
"
+
sceneName
);
return
console
.
warn
(
"
加载重复的scene->
"
+
sceneName
);
}
}
// this.beforeLoadScene();
// this.beforeLoadScene();
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
sceneStruct
.
clearLayer
();
this
.
sceneStruct
.
clearLayer
();
// if (sceneName != "coclub" && sceneName != "cohall_login") {
// if (sceneName != "coclub" && sceneName != "cohall_login") {
// pg.loading.releaseAddAssetList();
// pg.loading.releaseAddAssetList();
// }
// }
// pg.loading.releaseAddAssetList();
// pg.loading.releaseAddAssetList();
// if (!cc.game.isPaused()) {
// if (!cc.game.isPaused()) {
// cc.game.pause();
// cc.game.pause();
// cc.loader.releaseAll();
// cc.loader.releaseAll();
// }
// }
prepareFunc
&&
prepareFunc
();
prepareFunc
&&
prepareFunc
();
cc
.
director
.
loadScene
(
sceneName
,
()
=>
{
cc
.
director
.
loadScene
(
sceneName
,
()
=>
{
// cc.game.resume();
// cc.game.resume();
this
.
beforeLoadScene
();
//等待加载完成再移除当前场景 3.11 王林
this
.
beforeLoadScene
();
//等待加载完成再移除当前场景 3.11 王林
this
.
nameScene
=
sceneName
;
this
.
nameScene
=
sceneName
;
this
.
sceneStruct
.
addScene
(
sceneName
);
this
.
sceneStruct
.
addScene
(
sceneName
);
event
.
call
(
sceneName
+
"
_open
"
,
data
);
event
.
call
(
sceneName
+
"
_open
"
,
data
);
resolve
();
resolve
();
});
});
},
0
);
},
0
);
})
})
}
}
preloadScene
(
sceneName
)
{
preloadScene
(
sceneName
)
{
// cc.isValid 判断节点是否被销毁。
// cc.isValid 判断节点是否被销毁。
return
cc
.
director
.
preloadScene
(
sceneName
);
return
cc
.
director
.
preloadScene
(
sceneName
);
}
}
preLoadLayer
(
layerName
)
{
preLoadLayer
(
layerName
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
loading
.
loadPrefab
(
layerName
).
then
(
prefab
=>
{
loading
.
loadPrefab
(
layerName
).
then
(
prefab
=>
{
resolve
();
resolve
();
})
})
})
})
}
}
/*
/*
!#zh
!#zh
添加子层,并且可以修改该层的层级顺序和名字。
添加子层,并且可以修改该层的层级顺序和名字。
@param layerName 层的预制文件名称(路径在loadPrefab中自动填写)
@param layerName 层的预制文件名称(路径在loadPrefab中自动填写)
@param zIndex 层级|zIndex.bottom /zIndex.login
@param zIndex 层级|zIndex.bottom /zIndex.login
@param data layerName_opn|传输得值
@param data layerName_opn|传输得值
@example
@example
```js
```js
sceneManager.addLayer('login_layer', 1);
sceneManager.addLayer('login_layer', 1);
```
```
*/
*/
//py [-addLayer(${1:layerName},${2:pg.scene.zIndex.},${3:data})-]
//py [-addLayer(${1:layerName},${2:pg.scene.zIndex.},${3:data})-]
addLayer
(
layerName
,
zIndex
,
data
,
forceRepeat
=
false
,
path
=
""
)
{
addLayer
(
layerName
,
zIndex
,
data
,
forceRepeat
=
false
,
path
=
""
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
!
zIndex
&&
zIndex
!=
0
)
{
if
(
!
zIndex
&&
zIndex
!=
0
)
{
console
.
warn
(
"
addLayer warn->
"
+
"
未添加zIndex:
"
+
layerName
);
console
.
warn
(
"
addLayer warn->
"
+
"
未添加zIndex:
"
+
layerName
);
zIndex
=
this
.
zIndex
.
top
;
zIndex
=
this
.
zIndex
.
top
;
}
}
if
(
!
forceRepeat
&&
this
.
sceneStruct
.
getLayers
().
some
(
ln
=>
{
return
ln
==
layerName
}))
{
if
(
!
forceRepeat
&&
this
.
sceneStruct
.
getLayers
().
some
(
ln
=>
{
return
ln
==
layerName
}))
{
event
.
call
(
layerName
+
"
_open_repeat
"
,
data
);
event
.
call
(
layerName
+
"
_open_repeat
"
,
data
);
return
resolve
(
log
.
w
(
"
addLayer warn->
"
+
"
重复添加界面:
"
+
layerName
));
return
resolve
(
log
.
w
(
"
addLayer warn->
"
+
"
重复添加界面:
"
+
layerName
));
}
}
let
uuid
=
this
.
stage
&&
this
.
stage
.
uuid
?
this
.
stage
.
uuid
:
0
;
let
uuid
=
this
.
stage
&&
this
.
stage
.
uuid
?
this
.
stage
.
uuid
:
0
;
loading
.
loadPrefab
(
layerName
,
path
).
then
(
prefab
=>
{
loading
.
loadPrefab
(
layerName
,
path
).
then
(
prefab
=>
{
if
(
window
.
game_center
.
isLoadingGame
||
window
.
game_center
.
isRunningGame
)
{
//|| !window.isInHall
if
(
window
.
game_center
.
isLoadingGame
||
window
.
game_center
.
isRunningGame
)
{
//|| !window.isInHall
return
reject
(
log
.
w
(
"
dating ...
"
));
return
reject
(
log
.
w
(
"
dating ...
"
));
}
}
if
(
!
this
.
stage
)
return
reject
(
log
.
w
(
"
addLayer warn->
"
+
"
场景已切换:
"
+
layerName
));
if
(
!
this
.
stage
)
return
reject
(
log
.
w
(
"
addLayer warn->
"
+
"
场景已切换:
"
+
layerName
));
if
(
uuid
&&
uuid
!=
this
.
stage
.
uuid
)
return
reject
(
log
.
w
(
"
addLayer warn->
"
+
"
场景已切换:
"
+
layerName
));
if
(
uuid
&&
uuid
!=
this
.
stage
.
uuid
)
return
reject
(
log
.
w
(
"
addLayer warn->
"
+
"
场景已切换:
"
+
layerName
));
if
(
this
.
sceneStruct
.
getLayers
().
indexOf
(
layerName
)
!=
-
1
)
return
resolve
(
log
.
w
(
"
addLayer warn->
"
+
"
多次添加界面:
"
+
layerName
));
if
(
this
.
sceneStruct
.
getLayers
().
indexOf
(
layerName
)
!=
-
1
)
return
resolve
(
log
.
w
(
"
addLayer warn->
"
+
"
多次添加界面:
"
+
layerName
));
if
(
zIndex
==
this
.
zIndex
.
bottom
)
{
if
(
zIndex
==
this
.
zIndex
.
bottom
)
{
this
.
bottom
&&
this
.
bottom
.
addChild
(
prefab
,
zIndex
,
layerName
);
this
.
bottom
&&
this
.
bottom
.
addChild
(
prefab
,
zIndex
,
layerName
);
// this.sceneStruct.addLayer(layerName);
// this.sceneStruct.addLayer(layerName);
}
else
{
}
else
{
this
.
stage
.
addChild
(
prefab
,
zIndex
,
layerName
);
this
.
stage
.
addChild
(
prefab
,
zIndex
,
layerName
);
}
}
event
.
call
(
layerName
+
"
_open
"
,
data
);
event
.
call
(
layerName
+
"
_open
"
,
data
);
this
.
sceneStruct
.
addLayer
(
layerName
);
this
.
sceneStruct
.
addLayer
(
layerName
);
resolve
(
prefab
);
resolve
(
prefab
);
})
})
})
})
}
}
//py [-removeLayer(${1:layerName})-]
//py [-removeLayer(${1:layerName})-]
removeLayer
(
layerName
,
isRelease
=
false
)
{
removeLayer
(
layerName
,
isRelease
=
false
)
{
// if (layerName == "cohall_WaitLayer") {
// if (layerName == "cohall_WaitLayer") {
// console.log("请求移除等待界面");
// console.log("请求移除等待界面");
// }
// }
if
(
!
this
.
stage
)
return
console
.
log
(
"
removeLayer warn->
"
+
"
找不到当前stage
"
)
if
(
!
this
.
stage
)
return
console
.
log
(
"
removeLayer warn->
"
+
"
找不到当前stage
"
)
let
node
=
this
.
stage
.
getChildByName
(
layerName
);
let
node
=
this
.
stage
.
getChildByName
(
layerName
);
if
(
!
node
&&
this
.
bottom
)
node
=
this
.
bottom
.
getChildByName
(
layerName
);
if
(
!
node
&&
this
.
bottom
)
node
=
this
.
bottom
.
getChildByName
(
layerName
);
if
(
!
node
)
return
(
layerName
!=
"
cohall_WaitLayer
"
&&
layerName
!=
"
cohall_SceneWaitLayer
"
)
&&
console
.
log
(
"
removeLayer warn->
"
+
"
当前stage找不到“
"
+
layerName
+
"
”
"
);
if
(
!
node
)
return
(
layerName
!=
"
cohall_WaitLayer
"
&&
layerName
!=
"
cohall_SceneWaitLayer
"
)
&&
console
.
log
(
"
removeLayer warn->
"
+
"
当前stage找不到“
"
+
layerName
+
"
”
"
);
node
.
removeFromParent
(
false
);
node
.
removeFromParent
(
false
);
node
.
destroy
();
node
.
destroy
();
// if (layerName == "cohall_WaitLayer") {
// if (layerName == "cohall_WaitLayer") {
// console.log("等待界面移除成功");
// console.log("等待界面移除成功");
// }
// }
this
.
sceneStruct
.
removeLayer
(
layerName
);
this
.
sceneStruct
.
removeLayer
(
layerName
);
if
(
isRelease
)
loading
.
releasePrefab
(
layerName
,
isRelease
);
if
(
isRelease
)
loading
.
releasePrefab
(
layerName
,
isRelease
);
}
}
backLayer
(
layerName
,
isVisible
=
false
)
{
backLayer
(
layerName
,
isVisible
=
false
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
layer
=
this
.
getLayerByName
(
layerName
);
let
layer
=
this
.
getLayerByName
(
layerName
);
if
(
!
layer
)
{
if
(
!
layer
)
{
pg
.
scene
.
addLayer
(
layerName
,
pg
.
scene
.
zIndex
.
bottom
,
{},
false
,
false
).
then
(
layer
=>
{
pg
.
scene
.
addLayer
(
layerName
,
pg
.
scene
.
zIndex
.
bottom
,
{},
false
,
false
).
then
(
layer
=>
{
layer
.
active
=
isVisible
;
layer
.
active
=
isVisible
;
return
resolve
();
return
resolve
();
});
});
return
;
return
;
}
}
layer
.
parent
=
this
.
bottom
;
layer
.
parent
=
this
.
bottom
;
layer
.
zIndex
=
this
.
zIndex
.
bottom
;
layer
.
zIndex
=
this
.
zIndex
.
bottom
;
layer
.
active
=
isVisible
;
layer
.
active
=
isVisible
;
return
resolve
();
return
resolve
();
})
})
}
}
frontLayer
(
layerName
)
{
frontLayer
(
layerName
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
layer
=
this
.
getLayerByName
(
layerName
);
let
layer
=
this
.
getLayerByName
(
layerName
);
if
(
!
layer
)
{
if
(
!
layer
)
{
pg
.
scene
.
addLayer
(
layerName
,
pg
.
scene
.
zIndex
.
hall
).
then
(
layer
=>
{
pg
.
scene
.
addLayer
(
layerName
,
pg
.
scene
.
zIndex
.
hall
).
then
(
layer
=>
{
layer
.
active
=
true
;
layer
.
active
=
true
;
return
resolve
();
return
resolve
();
});
});
return
;
return
;
}
else
{
}
else
{
layer
.
parent
=
this
.
stage
;
layer
.
parent
=
this
.
stage
;
layer
.
zIndex
=
this
.
zIndex
.
hall
;
layer
.
zIndex
=
this
.
zIndex
.
hall
;
layer
.
active
=
true
;
layer
.
active
=
true
;
}
}
return
resolve
();
return
resolve
();
})
})
}
}
//py [-getLayerByName(${1:layerName})-]
//py [-getLayerByName(${1:layerName})-]
getLayerByName
(
layerName
)
{
getLayerByName
(
layerName
)
{
let
node
=
this
.
stage
.
getChildByName
(
layerName
);
let
node
=
this
.
stage
.
getChildByName
(
layerName
);
if
(
!
node
)
node
=
this
.
bottom
.
getChildByName
(
layerName
);
if
(
!
node
)
node
=
this
.
bottom
.
getChildByName
(
layerName
);
return
node
;
return
node
;
}
}
clearLayer
()
{
clearLayer
()
{
this
.
sceneStruct
.
clearLayer
();
this
.
sceneStruct
.
clearLayer
();
}
}
//py [-isHaveLayer(${1:layerName})-]
//py [-isHaveLayer(${1:layerName})-]
isHaveLayer
(
layerName
)
{
isHaveLayer
(
layerName
)
{
return
!!
this
.
getLayerByName
(
layerName
);
return
!!
this
.
getLayerByName
(
layerName
);
}
}
getSceneName
()
{
getSceneName
()
{
return
this
.
nameScene
;
return
this
.
nameScene
;
}
}
}
}
/**音频播放部分
/**音频播放部分
*
*
*
*
*
*
*/
*/
let
KEY_MUSIC_VOL
=
"
music_vol
"
;
let
KEY_MUSIC_VOL
=
"
music_vol
"
;
let
KEY_EFFECT_VOL
=
"
effect_vol
"
;
let
KEY_EFFECT_VOL
=
"
effect_vol
"
;
class
AudioUtil
{
class
AudioUtil
{
static
instance
;
static
instance
;
static
getInstance
()
{
static
getInstance
()
{
if
(
!
AudioUtil
.
instance
)
{
if
(
!
AudioUtil
.
instance
)
{
AudioUtil
.
instance
=
new
AudioUtil
();
AudioUtil
.
instance
=
new
AudioUtil
();
}
}
return
AudioUtil
.
instance
;
return
AudioUtil
.
instance
;
}
}
constructor
()
{
constructor
()
{
this
.
bgm_volume
=
1.0
;
this
.
bgm_volume
=
1.0
;
this
.
sfx_volume
=
1.0
;
this
.
sfx_volume
=
1.0
;
this
.
sfx_button
=
"
button
"
;
this
.
sfx_button
=
"
button
"
;
this
.
cur_bgm
=
""
;
this
.
cur_bgm
=
""
;
this
.
updateVolume
();
this
.
updateVolume
();
// cc.game.on(cc.game.EVENT_HIDE, function () {
// cc.game.on(cc.game.EVENT_HIDE, function () {
// cc.audioEngine.pauseAll();
// cc.audioEngine.pauseAll();
// });
// });
// cc.game.on(cc.game.EVENT_SHOW, function () {
// cc.game.on(cc.game.EVENT_SHOW, function () {
// cc.audioEngine.resumeAll();
// cc.audioEngine.resumeAll();
// });
// });
}
}
updateVolume
()
{
updateVolume
()
{
let
vvol
=
cc
.
sys
.
localStorage
.
getItem
(
KEY_MUSIC_VOL
);
let
vvol
=
cc
.
sys
.
localStorage
.
getItem
(
KEY_MUSIC_VOL
);
if
(
vvol
!=
null
)
{
if
(
vvol
!=
null
)
{
this
.
bgm_volume
=
parseFloat
(
vvol
);
this
.
bgm_volume
=
parseFloat
(
vvol
);
}
}
let
evol
=
cc
.
sys
.
localStorage
.
getItem
(
KEY_EFFECT_VOL
);
let
evol
=
cc
.
sys
.
localStorage
.
getItem
(
KEY_EFFECT_VOL
);
if
(
evol
!=
null
)
{
if
(
evol
!=
null
)
{
this
.
sfx_volume
=
parseFloat
(
evol
);
this
.
sfx_volume
=
parseFloat
(
evol
);
}
}
}
}
get_audio_url
(
url
)
{
get_audio_url
(
url
)
{
return
url
;
return
url
;
}
}
getSfxVolume
()
{
getSfxVolume
()
{
return
this
.
sfx_volume
;
return
this
.
sfx_volume
;
}
}
getBgmVolume
()
{
getBgmVolume
()
{
return
this
.
bgm_volume
;
return
this
.
bgm_volume
;
}
}
clickButton
()
{
clickButton
()
{
this
.
playSFX
(
this
.
sfx_button
);
this
.
playSFX
(
this
.
sfx_button
);
}
}
playBGM
(
url
,
ispath
)
{
playBGM
(
url
,
ispath
)
{
this
.
updateVolume
();
this
.
updateVolume
();
let
us
=
url
.
split
(
"
/
"
);
let
us
=
url
.
split
(
"
/
"
);
let
len
=
us
.
length
;
let
len
=
us
.
length
;
if
(
len
<
1
)
return
;
if
(
len
<
1
)
return
;
let
surl
=
us
[
len
-
1
];
let
surl
=
us
[
len
-
1
];
if
(
this
.
cur_bgm
==
surl
)
return
;
if
(
this
.
cur_bgm
==
surl
)
return
;
let
audioUrl
=
ispath
?
url
:
this
.
get_audio_url
(
url
);
let
audioUrl
=
ispath
?
url
:
this
.
get_audio_url
(
url
);
this
.
load
(
audioUrl
).
then
((
audio
)
=>
{
this
.
load
(
audioUrl
).
then
((
audio
)
=>
{
if
(
this
.
bgm_audio_id
>=
0
)
{
if
(
this
.
bgm_audio_id
>=
0
)
{
cc
.
audioEngine
.
stop
(
this
.
bgm_audio_id
);
cc
.
audioEngine
.
stop
(
this
.
bgm_audio_id
);
}
}
this
.
bgm_audio_id
=
cc
.
audioEngine
.
play
(
audio
,
true
,
this
.
bgm_volume
);
this
.
bgm_audio_id
=
cc
.
audioEngine
.
play
(
audio
,
true
,
this
.
bgm_volume
);
this
.
cur_bgm
=
surl
;
this
.
cur_bgm
=
surl
;
})
})
}
}
playSFX
(
url
,
ispath
)
{
playSFX
(
url
,
ispath
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
audioUrl
=
ispath
?
url
:
this
.
get_audio_url
(
url
);
let
audioUrl
=
ispath
?
url
:
this
.
get_audio_url
(
url
);
if
(
this
.
sfx_volume
>
0
)
{
if
(
this
.
sfx_volume
>
0
)
{
this
.
load
(
audioUrl
).
then
((
audio
)
=>
{
this
.
load
(
audioUrl
).
then
((
audio
)
=>
{
let
audioId
=
cc
.
audioEngine
.
play
(
audio
,
false
,
this
.
sfx_volume
);
let
audioId
=
cc
.
audioEngine
.
play
(
audio
,
false
,
this
.
sfx_volume
);
cc
.
audioEngine
.
setFinishCallback
(
audioId
,
()
=>
{
cc
.
audioEngine
.
setFinishCallback
(
audioId
,
()
=>
{
resolve
(
audio
);
resolve
(
audio
);
});
});
})
})
}
}
})
})
}
}
stopAll
()
{
stopAll
()
{
cc
.
audioEngine
.
stopAll
();
cc
.
audioEngine
.
stopAll
();
this
.
bgm_audio_id
=
-
1
;
this
.
bgm_audio_id
=
-
1
;
this
.
cur_bgm
=
""
;
this
.
cur_bgm
=
""
;
}
}
setSFXVolume
(
v
)
{
setSFXVolume
(
v
)
{
v
=
Number
(
v
);
v
=
Number
(
v
);
if
(
this
.
sfx_volume
!=
v
)
{
if
(
this
.
sfx_volume
!=
v
)
{
cc
.
sys
.
localStorage
.
setItem
(
"
sfxVolume_hbhall
"
,
""
+
v
);
cc
.
sys
.
localStorage
.
setItem
(
"
sfxVolume_hbhall
"
,
""
+
v
);
this
.
sfx_volume
=
v
;
this
.
sfx_volume
=
v
;
}
}
}
}
setBGMVolume
(
v
,
force
)
{
setBGMVolume
(
v
,
force
)
{
v
=
Number
(
v
);
v
=
Number
(
v
);
if
(
this
.
bgm_audio_id
>=
0
)
{
if
(
this
.
bgm_audio_id
>=
0
)
{
if
(
v
>
0
)
{
if
(
v
>
0
)
{
cc
.
audioEngine
.
resume
(
this
.
bgm_audio_id
);
cc
.
audioEngine
.
resume
(
this
.
bgm_audio_id
);
}
}
else
{
else
{
cc
.
audioEngine
.
pause
(
this
.
bgm_audio_id
);
cc
.
audioEngine
.
pause
(
this
.
bgm_audio_id
);
}
}
if
(
this
.
bgm_volume
!=
v
||
force
)
{
if
(
this
.
bgm_volume
!=
v
||
force
)
{
cc
.
sys
.
localStorage
.
setItem
(
"
bgmVolume_hbhall
"
,
""
+
v
);
cc
.
sys
.
localStorage
.
setItem
(
"
bgmVolume_hbhall
"
,
""
+
v
);
this
.
bgm_volume
=
v
;
this
.
bgm_volume
=
v
;
cc
.
audioEngine
.
setVolume
(
this
.
bgm_audio_id
,
v
);
cc
.
audioEngine
.
setVolume
(
this
.
bgm_audio_id
,
v
);
}
}
}
}
}
}
pauseAll
()
{
pauseAll
()
{
cc
.
audioEngine
.
pauseAll
();
cc
.
audioEngine
.
pauseAll
();
}
}
resumeAll
()
{
resumeAll
()
{
cc
.
audioEngine
.
resumeAll
();
cc
.
audioEngine
.
resumeAll
();
}
}
load
(
audioUrl
)
{
load
(
audioUrl
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
cc
.
resources
.
load
(
audioUrl
,
cc
.
AudioClip
,
(
err
,
audio
)
=>
{
cc
.
resources
.
load
(
audioUrl
,
cc
.
AudioClip
,
(
err
,
audio
)
=>
{
if
(
err
)
{
if
(
err
)
{
return
cc
.
warn
(
"
音效加载失败->
"
+
audioUrl
);
return
cc
.
warn
(
"
音效加载失败->
"
+
audioUrl
);
}
}
if
(
!
audio
)
return
cc
.
warn
(
"
音效加载失败->
"
+
audioUrl
);
if
(
!
audio
)
return
cc
.
warn
(
"
音效加载失败->
"
+
audioUrl
);
resolve
(
audio
);
resolve
(
audio
);
});
});
})
})
}
}
playAudioByUrl
(
audio_url
)
{
playAudioByUrl
(
audio_url
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
if
(
!
audio_url
)
return
resolve
(
null
);
if
(
!
audio_url
)
return
resolve
(
null
);
cc
.
assetManager
.
loadRemote
(
audio_url
,
(
err
,
audioClip
)
=>
{
cc
.
assetManager
.
loadRemote
(
audio_url
,
(
err
,
audioClip
)
=>
{
const
audioId
=
cc
.
audioEngine
.
play
(
audioClip
,
false
,
0.8
);
const
audioId
=
cc
.
audioEngine
.
play
(
audioClip
,
false
,
0.8
);
cc
.
audioEngine
.
setFinishCallback
(
audioId
,
()
=>
{
cc
.
audioEngine
.
setFinishCallback
(
audioId
,
()
=>
{
resolve
(
audioClip
);
resolve
(
audioClip
);
});
});
});
});
});
});
}
}
}
}
pg
.
event
=
Emitter
.
getInstance
();
pg
.
event
=
Emitter
.
getInstance
();
pg
.
audio
=
AudioUtil
.
getInstance
();
pg
.
audio
=
AudioUtil
.
getInstance
();
pg
.
scene
=
SceneManager
.
getInstance
();
pg
.
scene
=
SceneManager
.
getInstance
();
export
default
pg
;
export
default
pg
;
// window.pg = pg;
// window.pg = pg;
//EVENT CONFIG DATA NET
//EVENT CONFIG DATA NET
//SYSTEM——MANAGER ---配置文件管理,网络管理,事件管理,数据管理
//SYSTEM——MANAGER ---配置文件管理,网络管理,事件管理,数据管理
//VIEW——MANAGER ---界面管理,网络数据本地同步,界面事件推送
//VIEW——MANAGER ---界面管理,网络数据本地同步,界面事件推送
//VIEW ---界面效果,滚动等等
//VIEW ---界面效果,滚动等等
\ No newline at end of file
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/pg.js.meta
→
play/assets/scene/
OP15
/pg.js.meta
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/resizeWidget.js
→
play/assets/scene/
OP15
/resizeWidget.js
View file @
a318d934
class
CalculativeResize
{
class
CalculativeResize
{
static
resizeInfo
()
{
static
resizeInfo
()
{
//0.设计尺寸
//0.设计尺寸
let
baseSize
=
cc
.
size
(
1920
,
1080
);
let
baseSize
=
cc
.
size
(
1920
,
1080
);
//1.获取屏幕尺寸
//1.获取屏幕尺寸
let
canvasSize
=
cc
.
view
.
getCanvasSize
();
let
canvasSize
=
cc
.
view
.
getCanvasSize
();
//2.将屏幕宽高 以高度对齐的方式 换算出场景 宽度
//2.将屏幕宽高 以高度对齐的方式 换算出场景 宽度
let
sumSize
=
cc
.
size
(
canvasSize
.
width
*
baseSize
.
height
/
canvasSize
.
height
,
baseSize
.
height
)
let
sumSize
=
cc
.
size
(
canvasSize
.
width
*
baseSize
.
height
/
canvasSize
.
height
,
baseSize
.
height
)
//3.计算场景宽度与设计宽度比率
//3.计算场景宽度与设计宽度比率
let
scaleX
=
sumSize
.
width
/
baseSize
.
width
;
let
scaleX
=
sumSize
.
width
/
baseSize
.
width
;
let
posX
=
sumSize
.
width
-
baseSize
.
width
;
let
posX
=
sumSize
.
width
-
baseSize
.
width
;
//高屏幕适配
//高屏幕适配
if
(
scaleX
<=
1
)
{
if
(
scaleX
<=
1
)
{
let
sumSize
=
cc
.
size
(
baseSize
.
width
,
canvasSize
.
height
*
baseSize
.
width
/
canvasSize
.
width
)
let
sumSize
=
cc
.
size
(
baseSize
.
width
,
canvasSize
.
height
*
baseSize
.
width
/
canvasSize
.
width
)
let
scaleY
=
sumSize
.
height
/
baseSize
.
height
;
let
scaleY
=
sumSize
.
height
/
baseSize
.
height
;
let
posY
=
sumSize
.
height
-
baseSize
.
height
;
let
posY
=
sumSize
.
height
-
baseSize
.
height
;
// let posY = sumSize.height * (1 - 1 / scaleX);
// let posY = sumSize.height * (1 - 1 / scaleX);
return
{
scaleX
:
1
,
scaleY
:
scaleY
,
posX
:
0
,
orgX
:
0
,
posY
:
posY
,
orgY
:
-
posY
/
2
}
return
{
scaleX
:
1
,
scaleY
:
scaleY
,
posX
:
0
,
orgX
:
0
,
posY
:
posY
,
orgY
:
-
posY
/
2
}
}
}
//需要拓展的宽度缩放比
//需要拓展的宽度缩放比
return
{
scaleX
:
scaleX
,
scaleY
:
1
,
posX
:
posX
,
orgX
:
-
posX
/
2
,
posY
:
0
,
orgY
:
0
};
return
{
scaleX
:
scaleX
,
scaleY
:
1
,
posX
:
posX
,
orgX
:
-
posX
/
2
,
posY
:
0
,
orgY
:
0
};
}
}
}
}
//关于齐刘海的适配方案。
//关于齐刘海的适配方案。
//1.需要获取对应的手机型号
//1.需要获取对应的手机型号
//2.需要写上安全间距标记(主要是中间部分)
//2.需要写上安全间距标记(主要是中间部分)
//3.不同的手机安全间距可能不同。(主要适配iPhone X)
//3.不同的手机安全间距可能不同。(主要适配iPhone X)
cc
.
Class
({
cc
.
Class
({
extends
:
cc
.
Component
,
extends
:
cc
.
Component
,
properties
:
{
properties
:
{
r_width
:
1
,
r_width
:
1
,
r_height
:
1
,
r_height
:
1
,
r_top
:
0
,
r_top
:
0
,
r_bottom
:
0
,
r_bottom
:
0
,
p_left
:
0
,
p_left
:
0
,
p_right
:
0
,
p_right
:
0
,
p_top
:
0
,
p_top
:
0
,
p_bottom
:
0
,
p_bottom
:
0
,
black
:
0
,
//用于不能直接缩放的图片(如引导),两边补齐黑边
black
:
0
,
//用于不能直接缩放的图片(如引导),两边补齐黑边
noHead
:
0
,
noHead
:
0
,
debug
:
0
,
debug
:
0
,
},
},
// LIFE-CYCLE CALLBACKS:
// LIFE-CYCLE CALLBACKS:
onLoad
()
{
onLoad
()
{
let
{
scaleX
,
posX
,
scaleY
,
posY
}
=
CalculativeResize
.
resizeInfo
();
let
{
scaleX
,
posX
,
scaleY
,
posY
}
=
CalculativeResize
.
resizeInfo
();
this
.
resizeScaleX
=
scaleX
;
this
.
resizeScaleX
=
scaleX
;
this
.
resizeScaleY
=
scaleY
;
this
.
resizeScaleY
=
scaleY
;
this
.
posX
=
posX
;
this
.
posX
=
posX
;
this
.
posY
=
posY
;
this
.
posY
=
posY
;
let
{
width
,
height
,
x
,
y
}
=
this
.
node
;
let
{
width
,
height
,
x
,
y
}
=
this
.
node
;
this
.
nodeWidth
=
width
;
this
.
nodeWidth
=
width
;
this
.
nodeHeight
=
height
;
this
.
nodeHeight
=
height
;
this
.
nodeX
=
x
;
this
.
nodeX
=
x
;
this
.
nodeY
=
y
;
this
.
nodeY
=
y
;
//增加一个resize的监听,当屏幕出现宽高比变化的时候,进行一次重新适配。
//增加一个resize的监听,当屏幕出现宽高比变化的时候,进行一次重新适配。
//主要用于刘海屏的重置,以及动态屏幕变化的控制(虚拟按键屏)。
//主要用于刘海屏的重置,以及动态屏幕变化的控制(虚拟按键屏)。
},
},
start
()
{
start
()
{
this
.
resize
();
this
.
resize
();
},
},
update
(
dt
)
{
update
(
dt
)
{
},
},
onDestroy
()
{
onDestroy
()
{
if
(
this
.
black1
)
if
(
this
.
black1
)
pg
.
view
.
removChildren
(
this
.
black1
);
pg
.
view
.
removChildren
(
this
.
black1
);
if
(
this
.
black2
)
if
(
this
.
black2
)
pg
.
view
.
removChildren
(
this
.
black2
);
pg
.
view
.
removChildren
(
this
.
black2
);
this
.
black1
=
null
;
this
.
black1
=
null
;
this
.
black2
=
null
;
this
.
black2
=
null
;
},
},
resize
()
{
resize
()
{
if
(
!
this
.
resizeScaleX
&&
!
this
.
nodeWidth
)
{
if
(
!
this
.
resizeScaleX
&&
!
this
.
nodeWidth
)
{
console
.
warn
(
"
手动调用此方法时,不能再onLoad中使用
"
);
console
.
warn
(
"
手动调用此方法时,不能再onLoad中使用
"
);
return
;
return
;
}
}
this
.
resizeHeight
();
this
.
resizeHeight
();
this
.
resizeWidth
();
this
.
resizeWidth
();
},
},
//高屏幕适配
//高屏幕适配
resizeHeight
()
{
resizeHeight
()
{
if
(
this
.
resizeScaleY
<=
1.05
)
return
;
if
(
this
.
resizeScaleY
<=
1.05
)
return
;
let
scaleY
=
this
.
resizeScaleY
;
let
scaleY
=
this
.
resizeScaleY
;
let
posY
=
this
.
posY
;
let
posY
=
this
.
posY
;
let
nodeWidth
=
this
.
nodeWidth
;
let
nodeWidth
=
this
.
nodeWidth
;
let
nodeHeight
=
this
.
nodeHeight
;
let
nodeHeight
=
this
.
nodeHeight
;
let
nodeX
=
this
.
nodeX
;
let
nodeX
=
this
.
nodeX
;
let
nodeY
=
this
.
nodeY
;
let
nodeY
=
this
.
nodeY
;
if
(
this
.
debug
==
1
)
{
if
(
this
.
debug
==
1
)
{
console
.
log
(
"
断点调试点
"
);
console
.
log
(
"
断点调试点
"
);
}
}
//宽度拉伸
//宽度拉伸
if
(
this
.
r_width
==
1
)
{
if
(
this
.
r_width
==
1
)
{
this
.
node
.
width
=
nodeWidth
*
scaleY
;
this
.
node
.
width
=
nodeWidth
*
scaleY
;
}
}
//高度拉升
//高度拉升
if
(
this
.
r_height
==
1
)
{
if
(
this
.
r_height
==
1
)
{
this
.
node
.
height
=
nodeHeight
*
scaleY
;
this
.
node
.
height
=
nodeHeight
*
scaleY
;
// //高度拉伸后,图片顶部齐边【坐标下移】 y坐标下移
// //高度拉伸后,图片顶部齐边【坐标下移】 y坐标下移
// if (this.r_top == 1) {
// if (this.r_top == 1) {
// this.node.y = nodeY - nodeHeight * (scaleY - 1) / 2;
// this.node.y = nodeY - nodeHeight * (scaleY - 1) / 2;
// }
// }
// //高度拉伸后,图片底部齐边【坐标上移】 y坐标上移
// //高度拉伸后,图片底部齐边【坐标上移】 y坐标上移
// if (this.r_bottom == 1) {
// if (this.r_bottom == 1) {
// this.node.y = nodeY + nodeHeight * (scaleY - 1) / 2;
// this.node.y = nodeY + nodeHeight * (scaleY - 1) / 2;
// }
// }
}
}
// //如果是刘海屏,减去对应的刘海屏的宽度
// //如果是刘海屏,减去对应的刘海屏的宽度
// let lhpSize = { top: 0, bottom: 0 };
// let lhpSize = { top: 0, bottom: 0 };
// //动态左移
// //动态左移
// if (this.p_left == 1) {
// if (this.p_left == 1) {
// this.node.x = nodeX - posX / 2 + lhpSize.top;
// this.node.x = nodeX - posX / 2 + lhpSize.top;
// }
// }
// //动态右移
// //动态右移
// if (this.p_right == 1) {
// if (this.p_right == 1) {
// this.node.x = nodeX + posX / 2 - lhpSize.bottom;
// this.node.x = nodeX + posX / 2 - lhpSize.bottom;
// }
// }
//动态上移
//动态上移
if
(
this
.
p_top
==
1
)
{
if
(
this
.
p_top
==
1
)
{
this
.
node
.
y
=
nodeY
+
posY
/
2
*
0.75
this
.
node
.
y
=
nodeY
+
posY
/
2
*
0.75
}
}
//动态下移
//动态下移
if
(
this
.
p_bottom
==
1
)
{
if
(
this
.
p_bottom
==
1
)
{
this
.
node
.
y
=
nodeY
-
posY
/
2
*
0.75
this
.
node
.
y
=
nodeY
-
posY
/
2
*
0.75
}
}
},
},
//长屏幕适配
//长屏幕适配
resizeWidth
()
{
resizeWidth
()
{
if
(
this
.
resizeScaleX
<=
1.05
)
return
;
if
(
this
.
resizeScaleX
<=
1.05
)
return
;
let
resizeScaleX
=
this
.
resizeScaleX
;
let
resizeScaleX
=
this
.
resizeScaleX
;
let
posX
=
this
.
posX
;
let
posX
=
this
.
posX
;
let
nodeWidth
=
this
.
nodeWidth
;
let
nodeWidth
=
this
.
nodeWidth
;
let
nodeHeight
=
this
.
nodeHeight
;
let
nodeHeight
=
this
.
nodeHeight
;
let
nodeX
=
this
.
nodeX
;
let
nodeX
=
this
.
nodeX
;
let
nodeY
=
this
.
nodeY
;
let
nodeY
=
this
.
nodeY
;
if
(
this
.
debug
==
1
)
{
if
(
this
.
debug
==
1
)
{
console
.
log
(
"
断点调试点
"
);
console
.
log
(
"
断点调试点
"
);
}
}
//宽度拉伸
//宽度拉伸
if
(
this
.
r_width
==
1
)
{
if
(
this
.
r_width
==
1
)
{
this
.
node
.
width
=
nodeWidth
*
resizeScaleX
;
this
.
node
.
width
=
nodeWidth
*
resizeScaleX
;
}
}
//高度拉升
//高度拉升
if
(
this
.
r_height
==
1
)
{
if
(
this
.
r_height
==
1
)
{
this
.
node
.
height
=
nodeHeight
*
resizeScaleX
;
this
.
node
.
height
=
nodeHeight
*
resizeScaleX
;
//高度拉伸后,图片顶部齐边【坐标下移】 y坐标下移
//高度拉伸后,图片顶部齐边【坐标下移】 y坐标下移
if
(
this
.
r_top
==
1
)
{
if
(
this
.
r_top
==
1
)
{
this
.
node
.
y
=
nodeY
-
nodeHeight
*
(
resizeScaleX
-
1
)
/
2
;
this
.
node
.
y
=
nodeY
-
nodeHeight
*
(
resizeScaleX
-
1
)
/
2
;
}
}
//高度拉伸后,图片底部齐边【坐标上移】 y坐标上移
//高度拉伸后,图片底部齐边【坐标上移】 y坐标上移
if
(
this
.
r_bottom
==
1
)
{
if
(
this
.
r_bottom
==
1
)
{
this
.
node
.
y
=
nodeY
+
nodeHeight
*
(
resizeScaleX
-
1
)
/
2
;
this
.
node
.
y
=
nodeY
+
nodeHeight
*
(
resizeScaleX
-
1
)
/
2
;
}
}
}
}
if
(
this
.
black
==
1
)
{
if
(
this
.
black
==
1
)
{
let
baseSize
=
cc
.
size
(
1280
,
720
);
let
baseSize
=
cc
.
size
(
1280
,
720
);
this
.
black1
=
this
.
createBalck
();
this
.
black1
=
this
.
createBalck
();
this
.
black2
=
this
.
createBalck
();
this
.
black2
=
this
.
createBalck
();
let
curWidth
=
nodeWidth
*
resizeScaleX
;
let
curWidth
=
nodeWidth
*
resizeScaleX
;
let
curHeight
=
nodeHeight
*
resizeScaleX
;
let
curHeight
=
nodeHeight
*
resizeScaleX
;
let
blackWidth
=
(
curWidth
-
baseSize
.
width
)
/
2
;
let
blackWidth
=
(
curWidth
-
baseSize
.
width
)
/
2
;
let
blackHeight
=
curHeight
;
let
blackHeight
=
curHeight
;
this
.
black1
.
width
=
blackWidth
;
this
.
black1
.
width
=
blackWidth
;
this
.
black1
.
height
=
blackHeight
;
this
.
black1
.
height
=
blackHeight
;
this
.
black2
.
width
=
blackWidth
;
this
.
black2
.
width
=
blackWidth
;
this
.
black2
.
height
=
blackHeight
;
this
.
black2
.
height
=
blackHeight
;
this
.
black1
.
x
=
-
baseSize
.
width
/
2
-
this
.
black1
.
width
/
2
;
this
.
black1
.
x
=
-
baseSize
.
width
/
2
-
this
.
black1
.
width
/
2
;
this
.
black2
.
x
=
baseSize
.
width
/
2
+
this
.
black1
.
width
/
2
;
this
.
black2
.
x
=
baseSize
.
width
/
2
+
this
.
black1
.
width
/
2
;
this
.
black1
.
y
=
this
.
black2
.
y
=
nodeY
;
this
.
black1
.
y
=
this
.
black2
.
y
=
nodeY
;
pg
.
view
.
addChild
(
this
.
node
,
this
.
black1
);
pg
.
view
.
addChild
(
this
.
node
,
this
.
black1
);
pg
.
view
.
addChild
(
this
.
node
,
this
.
black2
);
pg
.
view
.
addChild
(
this
.
node
,
this
.
black2
);
this
.
black1
.
active
=
false
;
this
.
black1
.
active
=
false
;
this
.
black2
.
active
=
false
;
this
.
black2
.
active
=
false
;
if
(
this
.
node
.
nodeData
&&
(
this
.
node
.
nodeData
.
bg
!=
""
&&
this
.
node
.
nodeData
.
bg
!=
"
rect
"
))
{
if
(
this
.
node
.
nodeData
&&
(
this
.
node
.
nodeData
.
bg
!=
""
&&
this
.
node
.
nodeData
.
bg
!=
"
rect
"
))
{
this
.
black1
.
active
=
true
;
this
.
black1
.
active
=
true
;
this
.
black2
.
active
=
true
;
this
.
black2
.
active
=
true
;
}
}
}
}
//如果是刘海屏,减去对应的刘海屏的宽度
//如果是刘海屏,减去对应的刘海屏的宽度
let
lhpSize
=
{
top
:
0
,
bottom
:
0
};
let
lhpSize
=
{
top
:
0
,
bottom
:
0
};
if
(
!
this
.
noHead
&&
posX
!=
0
)
lhpSize
=
{
top
:
44
*
1.5
,
bottom
:
34
*
1.5
};
if
(
!
this
.
noHead
&&
posX
!=
0
)
lhpSize
=
{
top
:
44
*
1.5
,
bottom
:
34
*
1.5
};
//动态左移
//动态左移
if
(
this
.
p_left
==
1
)
{
if
(
this
.
p_left
==
1
)
{
this
.
node
.
x
=
nodeX
-
posX
/
2
+
lhpSize
.
top
;
this
.
node
.
x
=
nodeX
-
posX
/
2
+
lhpSize
.
top
;
}
}
//动态右移
//动态右移
if
(
this
.
p_right
==
1
)
{
if
(
this
.
p_right
==
1
)
{
this
.
node
.
x
=
nodeX
+
posX
/
2
-
lhpSize
.
bottom
;
this
.
node
.
x
=
nodeX
+
posX
/
2
-
lhpSize
.
bottom
;
}
}
},
},
//屏幕适配--end
//屏幕适配--end
createBalck
()
{
createBalck
()
{
let
black
=
cc
.
instantiate
(
cc
.
find
(
'
Canvas/blackBg
'
));
let
black
=
cc
.
instantiate
(
cc
.
find
(
'
Canvas/blackBg
'
));
return
black
;
return
black
;
},
},
setBlackActive
(
val
)
{
setBlackActive
(
val
)
{
if
(
this
.
black1
)
if
(
this
.
black1
)
this
.
black1
.
active
=
val
;
this
.
black1
.
active
=
val
;
if
(
this
.
black2
)
if
(
this
.
black2
)
this
.
black2
.
active
=
val
;
this
.
black2
.
active
=
val
;
}
}
});
});
This diff is collapsed.
Click to expand it.
play/assets/scene/
scene
/resizeWidget.js.meta
→
play/assets/scene/
OP15
/resizeWidget.js.meta
View file @
a318d934
File moved
This diff is collapsed.
Click to expand it.
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