Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
db-game-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
崔立强
db-game-template
Commits
dc58073e
Commit
dc58073e
authored
Dec 19, 2018
by
wildfirecode
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
ce4ade4d
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
191 additions
and
133 deletions
+191
-133
index.html
egret/index.html
+1
-1
panelCtrl.ts
egret/libs/new_wx/ctrls/panelCtrl.ts
+16
-7
startbtn.png
egret/resource/assets/startScene/startbtn.png
+0
-0
default.res.json
egret/resource/default.res.json
+6
-1
StartSkin.exml
egret/resource/skins/StartSkin.exml
+23
-23
StartScene.ts
egret/src/startScene/StartScene.ts
+7
-0
check.ts
egret/src/startScene/check.ts
+5
-3
createItems.ts
egret/src/startScene/createItems.ts
+71
-50
level.ts
egret/src/startScene/level.ts
+60
-46
playMovieClip.ts
egret/src/startScene/playMovieClip.ts
+1
-1
vibrate.ts
egret/src/startScene/vibrate.ts
+1
-1
No files found.
egret/index.html
View file @
dc58073e
...
...
@@ -44,7 +44,7 @@
<script
src=
"libs/security.js"
></script>
<script
src=
"libs/downloadApp.js"
></script>
<script>
localStorage
.
clear
();
//
localStorage.clear();
window
[
'development'
]
=
true
;
var
gameId
=
1
;
var
CFG
=
{
...
...
egret/libs/new_wx/ctrls/panelCtrl.ts
View file @
dc58073e
...
...
@@ -43,7 +43,7 @@ export default class PanelCtrl {
if
(
!
this
.
_mask
)
{
this
.
_mask
=
new
egret
.
Sprite
();
this
.
_mask
.
touchEnabled
=
true
;
this
.
_mask
.
graphics
.
beginFill
(
0
,
.
7
);
this
.
_mask
.
graphics
.
beginFill
(
0
,
.
3
);
this
.
_mask
.
graphics
.
drawRect
(
0
,
0
,
750
,
1624
);
this
.
_mask
.
graphics
.
endFill
();
}
...
...
@@ -51,10 +51,14 @@ export default class PanelCtrl {
this
.
_parent
.
addChild
(
this
.
_mask
);
}
removeMask
()
{
removeMask
(
tag
)
{
if
(
this
.
_mask
)
{
egret
.
Tween
.
get
(
this
.
_mask
).
to
({
alpha
:
0
},
300
,
egret
.
Ease
.
quartIn
).
call
(
()
=>
this
.
_parent
.
removeChild
(
this
.
_mask
),
this
);
if
(
tag
)
{
this
.
_parent
.
removeChild
(
this
.
_mask
)
}
else
egret
.
Tween
.
get
(
this
.
_mask
).
to
({
alpha
:
0
},
300
,
egret
.
Ease
.
quartIn
).
call
(
()
=>
this
.
_parent
.
removeChild
(
this
.
_mask
),
this
);
}
}
...
...
@@ -63,12 +67,17 @@ export default class PanelCtrl {
panel
.
addEventListener
(
'onDestroy'
,
this
.
onPanelHide
,
this
);
}
private
remove
(
panel
:
Panel
)
{
private
remove
(
panel
:
Panel
,
tag
=
false
)
{
if
(
tag
)
{
this
.
_parent
.
removeChild
(
panel
);
this
.
removeMask
(
tag
);
return
;
}
const
tw
=
egret
.
Tween
.
get
(
panel
);
tw
.
to
({
y
:
panel
.
stage
.
stageHeight
},
300
,
egret
.
Ease
.
quartIn
)
.
call
(()
=>
{
this
.
_parent
.
removeChild
(
panel
);
this
.
removeMask
();
this
.
removeMask
(
tag
);
},
this
);
}
...
...
@@ -89,6 +98,6 @@ export default class PanelCtrl {
closeCurrent
()
{
if
(
this
.
_current
)
this
.
remove
(
this
.
_current
);
this
.
remove
(
this
.
_current
,
true
);
}
}
\ No newline at end of file
egret/resource/assets/startScene/startbtn.png
0 → 100644
View file @
dc58073e
18.5 KB
egret/resource/default.res.json
View file @
dc58073e
...
...
@@ -10,7 +10,7 @@
},
{
"name"
:
"preload"
,
"keys"
:
"btnLeft1_png,btnRight1_png,toast_png,垃圾桶前盖_png,碗前盖_png,显示器纹路_png,boomalert_png,success_json,failed_json"
"keys"
:
"btnLeft1_png,btnRight1_png,toast_png,垃圾桶前盖_png,碗前盖_png,显示器纹路_png,boomalert_png,success_json,failed_json
,startbtn_png
"
}
],
"resources"
:
[
...
...
@@ -322,6 +322,11 @@
"type"
:
"sheet"
,
"url"
:
"assets/mc/failed.json"
,
"subkeys"
:
"炸弹碰撞_00011,炸弹碰撞_00010,炸弹碰撞_00009,炸弹碰撞_00008,炸弹碰撞_00007,炸弹碰撞_00006,炸弹碰撞_00005,炸弹碰撞_00004,炸弹碰撞_00003,炸弹碰撞_00002,炸弹碰撞_00001,炸弹碰撞_00000"
},
{
"name"
:
"startbtn_png"
,
"type"
:
"image"
,
"url"
:
"assets/startScene/startbtn.png"
}
]
}
\ No newline at end of file
egret/resource/skins/StartSkin.exml
View file @
dc58073e
...
...
@@ -57,46 +57,46 @@
<e:Image
id=
"IceCream_0_1"
source=
"甜筒-未获得_png"
x=
"26.7"
top=
"1"
/>
<e:Image
id=
"IceCream_0_2"
source=
"甜筒-未获得_png"
x=
"105.72"
top=
"1"
/>
<e:Image
id=
"IceCream_0_3"
source=
"甜筒-未获得_png"
x=
"185.34"
top=
"1"
/>
<e:Image
source=
"显示器纹路_png"
x=
"0"
verticalCenter=
"0
"
/>
<e:Image
id=
"IceCream_1_1"
source=
"甜筒-已获得_png"
x=
"76.43"
top=
"0"
anchorOffsetX=
"51"
anchorOffsetY
=
"56"
/>
<e:Image
id=
"IceCream_1_2"
source=
"甜筒-已获得_png"
x=
"155.4"
top=
"0"
anchorOffsetX=
"51"
anchorOffsetY
=
"56"
/>
<e:Image
id=
"IceCream_1_3"
source=
"甜筒-已获得_png"
x=
"234.1"
top=
"0"
anchorOffsetX=
"51"
anchorOffsetY
=
"56"
/>
<e:Image
source=
"显示器纹路_png"
x=
"0"
y=
"9
"
/>
<e:Image
id=
"IceCream_1_1"
source=
"甜筒-已获得_png"
x=
"76.43"
anchorOffsetX=
"51"
anchorOffsetY=
"56"
y
=
"56"
/>
<e:Image
id=
"IceCream_1_2"
source=
"甜筒-已获得_png"
x=
"155.4"
anchorOffsetX=
"51"
anchorOffsetY=
"56"
y
=
"56"
/>
<e:Image
id=
"IceCream_1_3"
source=
"甜筒-已获得_png"
x=
"234.1"
anchorOffsetX=
"51"
anchorOffsetY=
"56"
y
=
"56"
/>
</e:Group>
<e:Group
id=
"Donut"
y=
"1249.98"
x=
"209.35"
visible=
"false"
>
<e:Image
id=
"Donut_0_1"
x=
"12.06"
top=
"6"
source=
"甜甜圈-未获得_png"
/>
<e:Image
id=
"Donut_0_2"
x=
"97.07"
top=
"6"
source=
"甜甜圈-未获得_png"
/>
<e:Image
id=
"Donut_0_3"
x=
"182.73"
top=
"6"
source=
"甜甜圈-未获得_png"
/>
<e:Image
source=
"显示器纹路_png"
x=
"0"
y=
"0"
/>
<e:Image
id=
"Donut_1_1"
x=
"70.88"
top=
"4"
source=
"甜甜圈-已获得_png"
anchorOffsetX=
"60"
anchorOffsetY=
"44
"
/>
<e:Image
id=
"Donut_1_2"
x=
"155.54"
top=
"4"
source=
"甜甜圈-已获得_png"
anchorOffsetX=
"60"
anchorOffsetY=
"44
"
/>
<e:Image
id=
"Donut_1_3"
x=
"241.94"
top=
"4"
source=
"甜甜圈-已获得_png"
anchorOffsetX=
"60"
anchorOffsetY=
"44
"
/>
<e:Image
id=
"Donut_1_1"
x=
"70.88"
source=
"甜甜圈-已获得_png"
anchorOffsetX=
"60"
anchorOffsetY=
"44"
y=
"48
"
/>
<e:Image
id=
"Donut_1_2"
x=
"155.54"
source=
"甜甜圈-已获得_png"
anchorOffsetX=
"60"
anchorOffsetY=
"44"
y=
"48
"
/>
<e:Image
id=
"Donut_1_3"
x=
"241.94"
source=
"甜甜圈-已获得_png"
anchorOffsetX=
"60"
anchorOffsetY=
"44"
y=
"48
"
/>
</e:Group>
<e:Group
id=
"Egg"
y=
"1249.98"
x=
"205.35"
visible=
"false"
>
<e:Image
id=
"Egg_0_1"
x=
"23.42"
top=
"-8"
source=
"金蛋-未获得_png"
/>
<e:Image
id=
"Egg_0_2"
x=
"108.43"
top=
"-8"
source=
"金蛋-未获得_png"
/>
<e:Image
id=
"Egg_0_3"
x=
"194.09"
top=
"-8"
source=
"金蛋-未获得_png"
/>
<e:Image
source=
"显示器纹路_png"
x=
"0"
y=
"0"
/>
<e:Image
id=
"Egg_1_1"
x=
"
23.14"
top=
"-7"
source=
"金蛋-已获得_png
"
/>
<e:Image
id=
"Egg_1_2"
x=
"1
07.8"
top=
"-7"
source=
"金蛋-已获得_png
"
/>
<e:Image
id=
"Egg_1_3"
x=
"
194.2"
top=
"-7"
source=
"金蛋-已获得_png
"
/>
<e:Image
id=
"Egg_1_1"
x=
"
73.64"
source=
"金蛋-已获得_png"
y=
"49.5"
anchorOffsetX=
"50.5"
anchorOffsetY=
"56.5
"
/>
<e:Image
id=
"Egg_1_2"
x=
"1
58.3"
source=
"金蛋-已获得_png"
y=
"49.5"
anchorOffsetX=
"50.5"
anchorOffsetY=
"56.5
"
/>
<e:Image
id=
"Egg_1_3"
x=
"
244.7"
source=
"金蛋-已获得_png"
y=
"49.5"
anchorOffsetX=
"50.5"
anchorOffsetY=
"56.5
"
/>
</e:Group>
<e:Group
id=
"Candy2"
y=
"1249.98"
x=
"207.35"
visible=
"false"
>
<e:Image
id=
"Candy2_0_1"
x=
"2.68"
top=
"8"
source=
"糖果-未获得_png"
/>
<e:Image
id=
"Candy2_0_2"
x=
"95.06"
top=
"8"
source=
"糖果-未获得_png"
/>
<e:Image
id=
"Candy2_0_3"
x=
"187.42"
top=
"8"
source=
"糖果-未获得_png"
/>
<e:Image
source=
"显示器纹路_png"
x=
"0"
y=
"0"
/>
<e:Image
id=
"Candy2_1_1"
x=
"
0.39"
top=
"7"
source=
"糖果-已获得_png
"
/>
<e:Image
id=
"Candy2_1_2"
x=
"
92.42"
top=
"7"
source=
"糖果-已获得_png
"
/>
<e:Image
id=
"Candy2_1_3"
x=
"
185.52"
top=
"7"
source=
"糖果-已获得_png
"
/>
<e:Image
id=
"Candy2_1_1"
x=
"
64.89"
source=
"糖果-已获得_png"
anchorOffsetX=
"64.5"
y=
"49"
anchorOffsetY=
"42
"
/>
<e:Image
id=
"Candy2_1_2"
x=
"
156.92000000000002"
source=
"糖果-已获得_png"
anchorOffsetX=
"64.5"
y=
"49"
anchorOffsetY=
"42
"
/>
<e:Image
id=
"Candy2_1_3"
x=
"
250.02"
source=
"糖果-已获得_png"
anchorOffsetX=
"64.5"
anchorOffsetY=
"42"
y=
"49
"
/>
</e:Group>
<e:Group
id=
"Gift2"
y=
"1251.98"
x=
"206.35"
visible=
"false"
>
<e:Image
id=
"Gift2_0_1"
x=
"16.05"
top=
"-6"
source=
"礼盒-未获得_png"
/>
<e:Image
id=
"Gift2_0_2"
x=
"109.1"
top=
"-6"
source=
"礼盒-未获得_png"
/>
<e:Image
id=
"Gift2_0_3"
x=
"200.12"
top=
"-6"
source=
"礼盒-未获得_png"
/>
<e:Image
source=
"显示器纹路_png"
x=
"0"
y=
"0"
/>
<e:Image
id=
"Gift2_1_1"
x=
"
14.09"
top=
"-7"
source=
"礼盒-已获得_png
"
/>
<e:Image
id=
"Gift2_1_2"
x=
"1
06.79"
top=
"-7"
source=
"礼盒-已获得_png
"
/>
<e:Image
id=
"Gift2_1_3"
x=
"
198.55"
top=
"-7"
source=
"礼盒-已获得_png
"
/>
<e:Image
id=
"Gift2_1_1"
x=
"
64.09"
source=
"礼盒-已获得_png"
y=
"46.5"
anchorOffsetX=
"50"
anchorOffsetY=
"53.5
"
/>
<e:Image
id=
"Gift2_1_2"
x=
"1
56.79000000000002"
source=
"礼盒-已获得_png"
y=
"46.5"
anchorOffsetX=
"50"
anchorOffsetY=
"53.5
"
/>
<e:Image
id=
"Gift2_1_3"
x=
"
248.55"
source=
"礼盒-已获得_png"
y=
"46.5"
anchorOffsetX=
"50"
anchorOffsetY=
"53.5
"
/>
</e:Group>
<e:Group
id=
"toastGroup"
x=
"228"
y=
"743"
alpha=
"0"
>
<e:Image
source=
"toast_png"
x=
"0"
y=
"0"
/>
...
...
@@ -121,20 +121,20 @@
</e:Skin>
</e:skinName>
</e:Button>
<e:Button
id=
"r
uleBtn"
label=
""
y=
"20"
scaleX=
"1"
scaleY=
"1"
left=
"21
"
visible=
"false"
>
<e:Button
id=
"r
ankBtn"
label=
"排行榜"
y=
"86.61"
scaleX=
"1"
scaleY=
"1"
left=
"26
"
visible=
"false"
>
<e:skinName>
<e:Skin
states=
"up,down,disabled"
>
<e:Image
width=
"100%"
height=
"100%"
source=
"r
uleBtn_png"
source.down=
"ruleBtn_png"
source.disabled=
"rule
Btn_png"
/>
<e:Image
width=
"100%"
height=
"100%"
source=
"r
ankBtn_png"
source.down=
"rankBtn_png"
source.disabled=
"rank
Btn_png"
/>
<e:Label
id=
"labelDisplay"
horizontalCenter=
"0"
verticalCenter=
"0"
size=
"26"
/>
</e:Skin>
</e:skinName>
</e:Button>
<e:Button
id=
"r
ankBtn"
label=
"排行榜"
y=
"86.61"
scaleX=
"1"
scaleY=
"1"
left=
"26"
visible=
"false
"
>
<e:Button
id=
"r
uleBtn"
label=
""
y=
"20"
scaleX=
"1"
scaleY=
"1"
right=
"20
"
>
<e:skinName>
<e:Skin
states=
"up,down,disabled"
>
<e:Image
width=
"100%"
height=
"100%"
source=
"rankBtn_png"
source.down=
"rankBtn_png"
source.disabled=
"rankBtn_png"
/>
<e:Label
id=
"labelDisplay"
horizontalCenter=
"0"
verticalCenter=
"0"
size=
"26"
/>
</e:Skin>
<e:Skin
states=
"up,down,disabled"
>
<e:Image
width=
"100%"
height=
"100%"
source=
"ruleBtn_png"
source.down=
"ruleBtn_png"
source.disabled=
"ruleBtn_png"
/>
<e:Label
id=
"labelDisplay"
horizontalCenter=
"0"
verticalCenter=
"0"
size=
"26"
/>
</e:Skin>
</e:skinName>
</e:Button>
<e:Image
id=
"boomalert"
source=
"boomalert_png"
x=
"0"
y=
"0"
scale9Grid=
"314,472,142,220"
alpha=
"0"
touchEnabled=
"false"
/>
...
...
egret/src/startScene/StartScene.ts
View file @
dc58073e
...
...
@@ -7,6 +7,9 @@ import check2 from "./check2";
import
createBox
from
"./createBox"
;
import
createItems
from
"./createItems"
;
import
{
initLevel
}
from
"./level"
;
import
Panel
from
"../../libs/new_wx/components/Panel"
;
import
PanelCtrl
from
"../../libs/new_wx/ctrls/panelCtrl"
;
import
wait
from
"../../libs/new_tc/wait"
;
export
default
class
StartScene
extends
StartSceneBase
{
_engine
:
Matter
.
Engine
;
...
...
@@ -26,6 +29,7 @@ export default class StartScene extends StartSceneBase {
onCollision
(
body
:
Matter
.
Body
)
{
if
(
localStorage
.
getItem
(
'guilde1'
)
==
'1'
)
return
;
PanelCtrl
.
instance
.
closeCurrent
();
localStorage
.
setItem
(
'guilde1'
,
'1'
);
egret
.
ticker
.
pause
();
// 关闭渲染与心跳
this
[
'guide'
].
visible
=
this
[
'tips'
].
visible
=
true
;
...
...
@@ -34,6 +38,7 @@ export default class StartScene extends StartSceneBase {
onCollisionBoom
(
body
:
Matter
.
Body
)
{
if
(
localStorage
.
getItem
(
'guilde2'
)
==
'1'
)
return
;
PanelCtrl
.
instance
.
closeCurrent
();
localStorage
.
setItem
(
'guilde2'
,
'1'
);
egret
.
ticker
.
pause
();
// 关闭渲染与心跳
this
[
'guide'
].
visible
=
this
[
'tips2'
].
visible
=
this
[
'guild2pic'
].
visible
=
this
[
'getitBtn'
].
visible
=
true
;
...
...
@@ -43,6 +48,7 @@ export default class StartScene extends StartSceneBase {
async
start
(
data
?)
{
super
.
start
();
initLevel
(
this
);
// wait(5000).then(()=>PanelCtrl.instance.addMask());
egret
.
lifecycle
.
onPause
=
()
=>
{
console
.
log
(
"app 进入后台"
);
egret
.
ticker
.
pause
();
// 关闭渲染与心跳
...
...
@@ -67,6 +73,7 @@ export default class StartScene extends StartSceneBase {
this
[
'group'
].
addChild
(
this
[
'leftBtn'
]);
this
[
'group'
].
addChild
(
this
[
'rightBtn'
]);
this
[
'group'
].
addChild
(
this
[
'guild2pic'
]);
// this.addChild(this['ruleBtn']);
this
[
'guide'
].
visible
=
this
[
'tips'
].
visible
=
this
[
'tips2'
].
visible
=
this
[
'guild2pic'
].
visible
=
this
[
'getitBtn'
].
visible
=
false
;
// run the engine
...
...
egret/src/startScene/check.ts
View file @
dc58073e
...
...
@@ -3,7 +3,7 @@ import LabelType from "./LabelType";
import
{
addItem
,
isAllLevelPass
,
isLevelPass
,
nextLevel
,
clearLevel
}
from
"./level"
;
import
StartScene
from
"./StartScene"
;
import
vibrate
from
"./vibrate"
;
import
{
playBoom
,
playSuccess
,
playToast
}
from
"./playMovieClip"
;
import
{
playBoom
,
playSuccess
,
playToast
,
playBoomAlert
}
from
"./playMovieClip"
;
const
check
=
(
_this
:
StartScene
)
=>
{
const
center
=
109
-
40
;
...
...
@@ -25,7 +25,7 @@ const check = (_this: StartScene) => {
const
bodies
=
Matter
.
Composite
.
allBodies
(
_this
.
_engine
.
world
);
const
isAward
=
(
i
:
Matter
.
Body
)
=>
{
return
i
.
collisionFilter
.
group
==
award
}
bodies
.
forEach
(
i
=>
{
bodies
.
forEach
(
async
(
i
)
=>
{
if
(
!
isAward
(
i
))
return
;
if
(
i
[
'timer'
])
{
const
t0
=
Date
.
now
()
-
i
[
'timer'
];
...
...
@@ -69,6 +69,7 @@ const check = (_this: StartScene) => {
//右边clear
clearLevel
();
vibrate
(
_this
,
2
);
playBoomAlert
(
_this
)
playBoom
(
_this
[
'group'
])
}
...
...
@@ -76,7 +77,8 @@ const check = (_this: StartScene) => {
else
{
if
(
xResult2
&&
yResult2
)
{
playSuccess
(
_this
[
'group'
]);
addItem
(
i
.
label
);
await
addItem
(
i
.
label
);
if
(
isLevelPass
())
{
if
(
isAllLevelPass
())
{
...
...
egret/src/startScene/createItems.ts
View file @
dc58073e
...
...
@@ -4,63 +4,84 @@ import createItem from "./items/createItem";
import
LabelType
from
"./LabelType"
;
import
StartScene
from
"./StartScene"
;
const
startY
=
984
-
100
-
60
;
const
startY
=
984
-
100
-
60
;
const
startX
=
100
;
const
restitution
=
0.7
;
// const types = [LabelType.Candy2,LabelType.Donut,LabelType.Egg];
const
types
=
[
LabelType
.
Boom
,
LabelType
.
IceCream
,
LabelType
.
Donut
,
LabelType
.
Candy2
,
LabelType
.
Gift2
,
LabelType
.
Egg
];
const
frameInterval
=
60
;
let
frameInterval
=
10
;
let
tags
=
0
;
if
(
localStorage
.
getItem
(
'guilde1'
)
==
'1'
)
tags
=
1
;
if
(
localStorage
.
getItem
(
'guilde2'
)
==
'1'
)
tags
=
2
;
let
pastFrame
=
0
;
let
_this
;
export
default
(
_this
:
StartScene
)
=>
{
let
pastFrame
=
0
;
const
ontick
=
()
=>
{
if
(
pastFrame
<
frameInterval
)
{
pastFrame
++
;
return
};
if
(
pastFrame
>=
frameInterval
)
pastFrame
=
0
;
const
i
=
Math
.
floor
(
Math
.
random
()
*
types
.
length
);
const
type
=
types
[
i
];
let
body
;
if
(
type
==
LabelType
.
Candy2
)
{
const
forceScale
=
15
;
const
leftStart
=
{
x
:
startX
,
y
:
startY
,
forceX
:
0.01
*
forceScale
};
const
rightStart
=
{
x
:
750
-
startX
,
y
:
startY
,
forceX
:
-
0.01
*
forceScale
};
const
start
=
Math
.
random
()
>
0.5
?
leftStart
:
rightStart
;
const
scale
=
2
;
const
baseItem
=
createItem
(
scale
,
type
);
body
=
_this
.
_egretRender
.
rectangle
(
start
.
x
,
start
.
y
,
49
*
scale
,
18
*
scale
,
baseItem
,
{
isStatic
:
false
,
force
:
{
x
:
start
.
forceX
,
y
:
0
},
friction
:
0
,
restitution
:
restitution
,
label
:
type
,
angle
:
getAngle
(
10
),
collisionFilter
:
{
group
:
award
,
category
:
award
,
mask
:
awardMask
}
}
);
}
else
{
const
forceScale
=
10
;
const
leftStart
=
{
x
:
startX
,
y
:
startY
,
forceX
:
0.01
*
forceScale
};
const
rightStart
=
{
x
:
750
-
startX
,
y
:
startY
,
forceX
:
-
0.01
*
forceScale
};
const
start
=
Math
.
random
()
>
0.5
?
leftStart
:
rightStart
;
const
size
=
49
*
1.15
;
const
maxsize
=
49
;
const
baseItem
=
createItem
(
size
/
maxsize
,
type
);
body
=
_this
.
_egretRender
.
circle
(
start
.
x
,
start
.
y
,
size
/
2
,
baseItem
,
{
label
:
type
,
isStatic
:
false
,
force
:
{
x
:
start
.
forceX
,
y
:
0
},
friction
:
0
,
restitution
:
restitution
,
collisionFilter
:
{
group
:
award
,
category
:
award
,
mask
:
awardMask
}
}
);
const
ontick
=
()
=>
{
if
(
pastFrame
<
frameInterval
)
{
pastFrame
++
;
return
};
if
(
pastFrame
>=
frameInterval
)
pastFrame
=
0
;
let
i
=
Math
.
floor
(
Math
.
random
()
*
types
.
length
);
if
(
tags
==
0
)
{
i
=
1
;
tags
=
1
;
frameInterval
=
120
;
}
else
if
(
tags
==
1
)
{
i
=
0
;
tags
=
2
;
}
else
if
(
tags
==
2
)
{
frameInterval
=
60
;
}
i
=
1
;
const
type
=
types
[
i
];
let
body
;
if
(
type
==
LabelType
.
Candy2
)
{
const
forceScale
=
15
;
const
leftStart
=
{
x
:
startX
,
y
:
startY
,
forceX
:
0.01
*
forceScale
};
const
rightStart
=
{
x
:
750
-
startX
,
y
:
startY
,
forceX
:
-
0.01
*
forceScale
};
const
start
=
Math
.
random
()
>
0.5
?
leftStart
:
rightStart
;
const
scale
=
2
;
const
baseItem
=
createItem
(
scale
,
type
);
body
=
_this
.
_egretRender
.
rectangle
(
start
.
x
,
start
.
y
,
49
*
scale
,
18
*
scale
,
baseItem
,
{
isStatic
:
false
,
force
:
{
x
:
start
.
forceX
,
y
:
0
},
friction
:
0
,
restitution
:
restitution
,
label
:
type
,
angle
:
getAngle
(
10
),
collisionFilter
:
{
group
:
award
,
category
:
award
,
mask
:
awardMask
}
}
);
}
else
{
const
forceScale
=
10
;
const
leftStart
=
{
x
:
startX
,
y
:
startY
,
forceX
:
0.01
*
forceScale
};
const
rightStart
=
{
x
:
750
-
startX
,
y
:
startY
,
forceX
:
-
0.01
*
forceScale
};
let
start
=
Math
.
random
()
>
0.5
?
leftStart
:
rightStart
;
if
(
tags
==
1
)
{
start
=
leftStart
;
}
else
if
(
tags
==
2
)
{
start
=
rightStart
;
}
return
false
;
const
size
=
49
*
1.15
;
const
maxsize
=
49
;
const
baseItem
=
createItem
(
size
/
maxsize
,
type
);
body
=
_this
.
_egretRender
.
circle
(
start
.
x
,
start
.
y
,
size
/
2
,
baseItem
,
{
label
:
type
,
isStatic
:
false
,
force
:
{
x
:
start
.
forceX
,
y
:
0
},
friction
:
0
,
restitution
:
restitution
,
collisionFilter
:
{
group
:
award
,
category
:
award
,
mask
:
awardMask
}
}
);
}
return
false
;
}
export
default
(
$this
:
StartScene
,
start
=
true
)
=>
{
_this
=
$this
;
egret
.
startTick
(
ontick
,
this
)
}
export
const
stopCreateItems
=
()
=>
{
egret
.
stopTick
(
ontick
,
this
);
}
\ No newline at end of file
egret/src/startScene/level.ts
View file @
dc58073e
import
LabelType
from
"./LabelType"
;
import
StartScene
from
"./StartScene"
;
import
vibrate
from
"./vibrate"
;
const
groups
=
[
LabelType
.
IceCream
,
LabelType
.
Donut
,
...
...
@@ -20,8 +21,7 @@ const MAX = 3;
export
const
initLevel
=
(
$that
:
StartScene
)
=>
{
that
=
$that
;
initProgressBar
();
updateLevelView
();
updateLevelView
(
false
);
}
export
const
isLevelPass
=
()
=>
{
...
...
@@ -32,38 +32,39 @@ export const isAllLevelPass = () => {
return
getProgress
(
groups
[
groups
.
length
-
1
])
==
MAX
}
export
const
addItem
=
(
type
)
=>
{
export
const
addItem
=
async
(
type
)
=>
{
if
(
currentLv
!=
type
)
return
;
if
(
data
[
type
]
==
undefined
)
data
[
type
]
=
0
;
data
[
type
]
++
;
if
(
data
[
type
]
>
MAX
)
let
add
=
true
;
if
(
data
[
type
]
>
MAX
)
{
data
[
type
]
=
MAX
;
updateLevelView
();
add
=
false
;
}
await
updateLevelView
(
add
);
}
export
const
clearLevel
=
()
=>
{
data
[
currentLv
]
=
0
;
updateLevelView
();
updateLevelView
(
false
);
}
export
const
nextLevel
=
()
=>
{
const
i
=
groups
.
indexOf
(
currentLv
);
currentLv
=
groups
[
i
+
1
];
updateLevelView
();
updateLevelView
(
false
);
}
export
const
getCurrentLv
=
()
=>
{
return
currentLv
}
export
const
getCurrentName
=
()
=>
{
return
groupName
[
currentLv
]
}
export
const
getCurrentName
=
()
=>
{
return
groupName
[
currentLv
]
}
const
updateLevelView
=
(
)
=>
{
const
updateLevelView
=
async
(
add
)
=>
{
hideAllGroup
();
that
[
currentLv
].
visible
=
true
;
that
[
'condition'
].
text
=
`本轮需获3个
${
groupName
[
currentLv
]}
`
setProgress
(
currentLv
,
getProgress
(
currentLv
));
updateProgressBar
();
if
(
!
that
[
'condition'
].
filters
||
that
[
'condition'
].
filters
.
length
<
1
)
{
var
color
:
number
=
0x1ec9bf
;
/// 光晕的颜色,十六进制,不包含透明度
var
alpha
:
number
=
1
;
/// 光晕的颜色透明度,是对 color 参数的透明度设定。有效值为 0.0 到 1.0。例如,0.8 设置透明度值为 80%。
...
...
@@ -78,6 +79,8 @@ const updateLevelView = () => {
that
[
'condition'
].
filters
=
[
glowFilter
];
}
await
setProgress
(
currentLv
,
getProgress
(
currentLv
),
add
);
updateProgressBar
();
}
const
getProgress
=
(
type
)
=>
{
...
...
@@ -86,40 +89,51 @@ const getProgress = (type) => {
return
data
[
type
];
}
const
setProgress
=
(
type
,
progress
)
=>
{
hideAllItem
(
type
);
if
(
progress
==
0
)
{
that
[
`
${
type
}
_0_1`
].
visible
=
true
;
//0是背景
that
[
`
${
type
}
_0_2`
].
visible
=
true
;
that
[
`
${
type
}
_0_3`
].
visible
=
true
;
that
[
`
${
type
}
_1_1`
].
visible
=
false
;
that
[
`
${
type
}
_1_2`
].
visible
=
false
;
that
[
`
${
type
}
_1_3`
].
visible
=
false
;
}
if
(
progress
==
1
)
{
that
[
`
${
type
}
_0_1`
].
visible
=
false
;
//0是背景
that
[
`
${
type
}
_0_2`
].
visible
=
true
;
that
[
`
${
type
}
_0_3`
].
visible
=
true
;
that
[
`
${
type
}
_1_1`
].
visible
=
true
;
that
[
`
${
type
}
_1_2`
].
visible
=
false
;
that
[
`
${
type
}
_1_3`
].
visible
=
false
;
}
if
(
progress
==
2
)
{
that
[
`
${
type
}
_0_1`
].
visible
=
false
;
//0是背景
that
[
`
${
type
}
_0_2`
].
visible
=
false
;
that
[
`
${
type
}
_0_3`
].
visible
=
true
;
that
[
`
${
type
}
_1_1`
].
visible
=
true
;
that
[
`
${
type
}
_1_2`
].
visible
=
true
;
that
[
`
${
type
}
_1_3`
].
visible
=
false
;
}
if
(
progress
==
3
)
{
that
[
`
${
type
}
_0_1`
].
visible
=
false
;
//0是背景
that
[
`
${
type
}
_0_2`
].
visible
=
false
;
that
[
`
${
type
}
_0_3`
].
visible
=
false
;
that
[
`
${
type
}
_1_1`
].
visible
=
true
;
that
[
`
${
type
}
_1_2`
].
visible
=
true
;
that
[
`
${
type
}
_1_3`
].
visible
=
true
;
}
const
setProgress
=
(
type
,
progress
,
add
)
=>
{
return
new
Promise
((
r
)
=>
{
hideAllItem
(
type
);
let
target
;
if
(
progress
==
0
)
{
that
[
`
${
type
}
_0_1`
].
visible
=
true
;
//0是背景
that
[
`
${
type
}
_0_2`
].
visible
=
true
;
that
[
`
${
type
}
_0_3`
].
visible
=
true
;
that
[
`
${
type
}
_1_1`
].
visible
=
false
;
that
[
`
${
type
}
_1_2`
].
visible
=
false
;
that
[
`
${
type
}
_1_3`
].
visible
=
false
;
}
if
(
progress
==
1
)
{
that
[
`
${
type
}
_0_1`
].
visible
=
false
;
//0是背景
that
[
`
${
type
}
_0_2`
].
visible
=
true
;
that
[
`
${
type
}
_0_3`
].
visible
=
true
;
that
[
`
${
type
}
_1_1`
].
visible
=
true
;
that
[
`
${
type
}
_1_2`
].
visible
=
false
;
that
[
`
${
type
}
_1_3`
].
visible
=
false
;
if
(
add
)
target
=
that
[
`
${
type
}
_1_1`
]
}
if
(
progress
==
2
)
{
that
[
`
${
type
}
_0_1`
].
visible
=
false
;
//0是背景
that
[
`
${
type
}
_0_2`
].
visible
=
false
;
that
[
`
${
type
}
_0_3`
].
visible
=
true
;
that
[
`
${
type
}
_1_1`
].
visible
=
true
;
that
[
`
${
type
}
_1_2`
].
visible
=
true
;
that
[
`
${
type
}
_1_3`
].
visible
=
false
;
if
(
add
)
target
=
that
[
`
${
type
}
_1_2`
]
}
if
(
progress
==
3
)
{
that
[
`
${
type
}
_0_1`
].
visible
=
false
;
//0是背景
that
[
`
${
type
}
_0_2`
].
visible
=
false
;
that
[
`
${
type
}
_0_3`
].
visible
=
false
;
that
[
`
${
type
}
_1_1`
].
visible
=
true
;
that
[
`
${
type
}
_1_2`
].
visible
=
true
;
that
[
`
${
type
}
_1_3`
].
visible
=
true
;
if
(
add
)
target
=
that
[
`
${
type
}
_1_3`
]
}
if
(
target
)
{
target
.
scaleX
=
target
.
scaleY
=
0
;
egret
.
Tween
.
get
(
target
).
set
({
scaleX
:
0
,
scaleY
:
0
}).
to
({
scaleX
:
1
,
scaleY
:
1
},
500
,
egret
.
Ease
.
getElasticOut
(
1
,
0.3
)).
call
(()
=>
r
())
}
else
r
();
});
}
const
hideAllGroup
=
()
=>
{
...
...
egret/src/startScene/playMovieClip.ts
View file @
dc58073e
...
...
@@ -127,7 +127,7 @@ export const playToast = (that, type, isLeft) => {
if
(
currentType
==
type
)
{
txt
=
`收集到一个
${
getCurrentName
()}
!`
;
}
else
{
txt
=
`再接再厉哦!`
;
//
txt = `再接再厉哦!`;
}
}
}
...
...
egret/src/startScene/vibrate.ts
View file @
dc58073e
import
{
playBoomAlert
}
from
"./playMovieClip"
;
export
default
(
view
:
egret
.
DisplayObject
,
count
=
2
,
strength
=
10
)
=>
{
playBoomAlert
(
view
)
view
.
x
=
view
.
y
=
0
;
return
new
Promise
((
r
)
=>
{
const
pos
=
[
...
...
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