Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
xiaoxiaole
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
wildfirecode13
xiaoxiaole
Commits
5a5875f1
Commit
5a5875f1
authored
Oct 27, 2019
by
wjf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
l
parent
b25ed195
Changes
19
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1528 additions
and
140 deletions
+1528
-140
index.html
egret/index.html
+1
-1
GameGuide.ts
egret/src/mainScene/GameGuide.ts
+5
-5
MainScene.ts
egret/src/mainScene/MainScene.ts
+51
-55
Tool.ts
egret/src/something/Tool.ts
+12
-2
HatchAni.ts
egret/src/something/anis/HatchAni.ts
+1
-1
Chapter1.ts
egret/src/something/chapters/Chapter1.ts
+1
-1
Chapter10.ts
egret/src/something/chapters/Chapter10.ts
+63
-0
Chapter2.ts
egret/src/something/chapters/Chapter2.ts
+469
-1
Chapter3.ts
egret/src/something/chapters/Chapter3.ts
+547
-0
Chapter4.ts
egret/src/something/chapters/Chapter4.ts
+12
-0
Chapter5.ts
egret/src/something/chapters/Chapter5.ts
+63
-0
Chapter6.ts
egret/src/something/chapters/Chapter6.ts
+63
-0
Chapter7.ts
egret/src/something/chapters/Chapter7.ts
+63
-0
Chapter8.ts
egret/src/something/chapters/Chapter8.ts
+63
-0
Chapter9.ts
egret/src/something/chapters/Chapter9.ts
+63
-0
getChapter.ts
egret/src/something/chapters/getChapter.ts
+6
-2
FallAniData.ts
egret/src/something/interface/FallAniData.ts
+2
-2
GenerateLatData.ts
egret/src/something/interface/GenerateLatData.ts
+2
-1
AiControl.ts
egret/src/something/logic/AiControl.ts
+41
-69
No files found.
egret/index.html
View file @
5a5875f1
...
...
@@ -31,7 +31,7 @@
<body>
<div
style=
"margin: auto;width: 100%;height: 100%;"
class=
"egret-player"
data-entry-class=
"Main"
data-orientation=
"auto"
data-scale-mode=
"showAll"
data-frame-rate=
"60"
data-content-width=
"750"
data-content-height=
"1624"
data-multi-fingered=
"2"
data-show-fps=
"
fals
e"
data-show-log=
"false"
data-content-height=
"1624"
data-multi-fingered=
"2"
data-show-fps=
"
tru
e"
data-show-log=
"false"
data-show-fps-style=
"x:0,y:0,size:12,textColor:0xffffff,bgAlpha:0.9"
>
</div>
...
...
egret/src/mainScene/GameGuide.ts
View file @
5a5875f1
...
...
@@ -309,19 +309,19 @@ const chapterFuns = {
]
},
//果冻消除
8
1
:
{
4
1
:
{
stepCount
:
1
,
showIndexs
:
[
[
32
,
41
,
50
,
49
],
[
40
,
49
,
58
,
48
,
50
],
],
hideIndexs
:
[
[
32
,
41
],
[
58
,
48
,
50
],
],
handIndexs
:
[
[
4
9
,
50
]
[
4
0
,
49
]
],
msg
:
[
"
当果冻附近的元素产生消除时,即可消除果冻
\n
不消除果冻时,果冻会逐渐蔓延
"
"
小心!会蔓延的果冻!
\n
消除果冻旁边的动物
\n
就能消除果冻~
"
]
},
}
...
...
egret/src/mainScene/MainScene.ts
View file @
5a5875f1
...
...
@@ -171,14 +171,6 @@ export default class MainScene extends Scene {
* 4表示都有,遍历两边,down比up小,从左先
*/
connectState
:
number
=
2
;
/**
* 应用棋盘大遮罩,还是单独对生成元素,连通元素用小方形遮罩
* 出于性能问题,用大遮罩,只遮一次,
* 但是如果出现连通口上格子的下排正下方格子不为空的情况,必须用小方形遮罩,否则元素穿帮
* 或者生成口上排正上方格子不为空时也
* 默认用大遮罩
*/
useSmallMask
:
boolean
=
false
;
//皮肤上的
public
starProgress
:
eui
.
Image
;
public
scoreTxt
:
eui
.
Label
;
...
...
@@ -262,7 +254,15 @@ export default class MainScene extends Scene {
this
.
initElement
();
//重置基础元素类型及特效
this
.
initBaseElement
();
//初始化完先检测死图
//设置栏置顶
this
.
addChild
(
this
[
"settingAll"
])
//AiControl初始化,
AiControl
.
ins
.
init
(
this
.
lattices
);
//检查一次三消
if
(
this
.
threeMatch
())
{
this
.
eliminate
();
}
else
{
//先检测死图
this
.
warningCop
=
Tool
.
dieMapCheck
(
this
.
lattices
);
if
(
!
this
.
warningCop
)
{
//替换顺序
...
...
@@ -270,14 +270,11 @@ export default class MainScene extends Scene {
}
else
{
this
.
enableMouseEvt
(
true
);
}
//设置栏置顶
this
.
addChild
(
this
[
"settingAll"
])
//AiControl初始化,
AiControl
.
ins
.
init
(
this
.
lattices
);
//引导
this
.
initGuide
();
}
}
}
/**
* 加载所有用到的svga
*/
...
...
@@ -330,12 +327,10 @@ export default class MainScene extends Scene {
//容器
this
.
elementContainer
=
new
egret
.
DisplayObjectContainer
();
this
.
addChild
(
this
.
elementContainer
);
//加遮罩
if
(
!
this
.
useSmallMask
)
{
//加遮罩,大遮罩一直都加,小遮罩时时判断
var
mask
=
drawShape
(
path
);
this
.
elementContainer
.
mask
=
mask
;
this
.
addChild
(
mask
)
}
//容器事件
this
.
elementContainer
.
addEventListener
(
egret
.
TouchEvent
.
TOUCH_BEGIN
,
this
.
mouseDownE
,
this
);
this
.
elementContainer
.
addEventListener
(
egret
.
TouchEvent
.
TOUCH_MOVE
,
this
.
mouseMoveE
,
this
);
...
...
@@ -486,12 +481,7 @@ export default class MainScene extends Scene {
var
genLatDatas
=
this
.
chapterData
.
map
.
generateLats
||
[];
//设置生成口,
this
.
generateIndexs
=
Tool
.
setGenerateLats
(
this
.
lattices
,
genLatDatas
)
//判断生成口上排正上方格子是否存在
for
(
var
i
=
0
;
i
<
genLatDatas
.
length
;
i
++
)
{
var
genLatData
:
GenerateLatData
=
genLatDatas
[
i
]
var
index
=
genLatData
.
index
;
if
(
this
.
lattices
[
index
-
Tool
.
colNum
])
this
.
useSmallMask
=
true
;
}
var
downMax
:
number
=
0
;
var
upMax
:
number
=
0
;
...
...
@@ -511,8 +501,6 @@ export default class MainScene extends Scene {
upMax
=
Math
.
max
(
upMax
,
colUp
);
if
(
colUp
>
colDown
)
hasBigToSmall
=
true
;
else
if
(
colUp
<
colDown
)
hasSmallToBig
=
true
;
//连通口上格子的下排正下方格子是否存在
if
(
this
.
lattices
[
connectedLat
[
0
]
+
Tool
.
colNum
])
this
.
useSmallMask
=
true
;
}
//1表示存在小列连通到大列,从右往左遍历
//2表示存在大列连通到小烈,从左往右遍历
...
...
@@ -653,7 +641,7 @@ export default class MainScene extends Scene {
//初始化引导,游戏和道具
initGuide
()
{
//游戏引导
const
gameGuideChapterNum
=
[
1
,
2
,
3
,
5
,
8
,
9
,
10
,
12
,
17
,
25
]
const
gameGuideChapterNum
=
[
1
,
2
,
3
,
5
,
8
,
9
,
10
,
12
,
17
,
25
,
41
]
if
(
gameGuideChapterNum
.
indexOf
(
this
.
chapter
>>
0
)
>
-
1
)
{
if
(
!
readCache
(
getCacheKey
()
+
this
.
chapter
))
{
this
.
gameGuide
=
new
GameGuide
(
this
);
...
...
@@ -1092,12 +1080,12 @@ export default class MainScene extends Scene {
}
/**
* 竖直掉落,一格判断
* 竖直掉落,一格判断
,,没有按竖直生成口从上到下,所以有点问题
* 逻辑要重写
*/
private
fallVertical
()
{
var
anis
:
FallAniData
[]
=
[]
//先把竖直
的掉落完,掉满后
//先把竖直
掉落一格
for
(
var
m
=
0
;
m
<
Tool
.
colNum
;
m
++
)
{
//同一列
for
(
var
n
=
Tool
.
rowNum
-
1
;
n
>=
0
;
n
--
)
{
...
...
@@ -1240,16 +1228,7 @@ export default class MainScene extends Scene {
for
(
var
i
=
0
;
i
<
emptys
.
length
;
i
++
)
{
let
indexMy
=
emptys
[
i
];
var
lat
=
this
.
lattices
[
indexMy
];
//判断是否是生成口
if
(
lat
.
isGenerate
)
{
//是生成口,就不用管落下乐
anis
.
push
({
ele
:
null
,
indexs
:
[{
index
:
indexMy
,
type
:
FallType
.
STRIGHT
}]
})
//去掉
emptys
.
splice
(
i
,
1
);
//优先判断生成的,不用管掉落了,跳下一个
i
--
continue
}
let
latFall
;
let
indexFall
;
let
type
:
FallType
=
FallType
.
STRIGHT
...
...
@@ -1316,6 +1295,17 @@ export default class MainScene extends Scene {
latFall
.
element
=
null
;
//长度加了,多加+
i
--
;
}
else
{
//判断是否是生成口
if
(
lat
.
isGenerate
)
{
//是生成口,就不用管落下乐
anis
.
push
({
ele
:
null
,
indexs
:
[{
index
:
indexMy
,
type
:
FallType
.
STRIGHT
}]
})
//去掉
emptys
.
splice
(
i
,
1
);
//优先判断生成的,不用管掉落了,跳下一个
i
--
continue
}
}
}
return
anis
...
...
@@ -1343,7 +1333,7 @@ export default class MainScene extends Scene {
let
tween
:
egret
.
Tween
;
if
(
!
ele
)
{
//取出第一个索引
let
firstIndex
=
indexs
.
shift
()
let
firstIndex
:
{
index
:
number
,
type
:
FallType
}
=
indexs
.
shift
()
ele
=
this
.
createELement
(
firstIndex
.
index
);
this
.
elementContainer
.
addChild
(
ele
);
oriRow
=
Tool
.
indexToRc
(
firstIndex
.
index
)[
0
];
...
...
@@ -1353,8 +1343,8 @@ export default class MainScene extends Scene {
tween
=
egret
.
Tween
.
get
(
ele
);
//有等待的话,只有多格子掉落的时候才有
if
(
wait
)
tween
.
wait
(
wait
);
//加遮罩,需要遮罩写法,
if
(
this
.
useSmallMask
)
{
//加遮罩,需要遮罩写法,
如果该口上方有格子
if
(
this
.
lattices
[
firstIndex
.
index
-
Tool
.
colNum
]
)
{
let
mask
=
Tool
.
getRectMask
();
mask
.
x
=
fp
[
0
];
mask
.
y
=
fp
[
1
];
...
...
@@ -1387,19 +1377,24 @@ export default class MainScene extends Scene {
let
indexUp
=
this
.
lattices
[
index
].
up
;
let
downPos
=
Tool
.
getPositionByIndex
(
index
);
let
upPos
=
Tool
.
getPositionByIndex
(
indexUp
);
//用遮罩的写法
if
(
this
.
useSmallMask
)
{
//up处的动画
//如果上格子下面有格子, 用遮罩的写法,
if
(
this
.
lattices
[
indexUp
+
Tool
.
colNum
])
{
EleMaskAni
(
ele
,
upPos
,
wait
,
this
.
elementContainer
,
true
,
deltaTime
);
tween
.
set
({
alpha
:
0
})
.
wait
(
deltaTime
)
.
set
({
alpha
:
1
})
//down位置处的动画
EleMaskAni
(
ele
,
downPos
,
wait
,
this
.
elementContainer
,
false
,
deltaTime
);
}
else
{
tween
.
to
({
x
:
upPos
[
0
],
y
:
upPos
[
1
]
+
Tool
.
height
},
deltaTime
);
}
//down处的动画
//如果下格子上方有格子,用遮罩的写法
if
(
this
.
lattices
[
index
-
Tool
.
colNum
])
{
EleMaskAni
(
ele
,
downPos
,
wait
,
this
.
elementContainer
,
false
,
deltaTime
);
}
else
{
EleDownAni
(
ele
,
downPos
,
wait
,
this
.
elementContainer
,
false
,
deltaTime
)
}
//修改oriRow
oriRow
=
Tool
.
indexToRc
(
index
)[
0
];
lastX
=
downPos
[
0
];
...
...
@@ -1508,7 +1503,8 @@ export default class MainScene extends Scene {
}
}
let
ele
=
Tool
.
getElement
(
type
);
ele
.
effectType
=
effectType
;
//如果未通关,有特效的话可以加
if
(
!
this
.
hasPassed
)
ele
.
effectType
=
effectType
;
//没有特效的时候,考虑加气泡
if
(
effectType
==
null
&&
this
.
chapterData
.
bubbleProbability
&&
...
...
egret/src/something/Tool.ts
View file @
5a5875f1
...
...
@@ -794,10 +794,15 @@ export class Tool {
if
(
!
arr
[
col
])
arr
[
col
]
=
[];
arr
[
col
].
push
({
index
:
generateLat
.
index
,
type
:
generateLat
.
type
,
type
:
generateLat
.
type
||
[]
,
cus
:
generateLat
.
cus
.
slice
(),
//防止数据被修改
});
}
//每一列的数据排个序,因为生成口掉落,index小的在前面
for
(
var
j
=
0
;
j
<
arr
.
length
;
j
++
)
{
//排序从小到大
if
(
arr
[
j
])
arr
[
j
].
sort
(
function
(
a
,
b
)
{
return
a
.
index
>
b
.
index
?
1
:
-
1
});
}
return
arr
// var indexs = [];
// for (var m = 0; m < Tool.colNum; m++) {
...
...
@@ -830,7 +835,7 @@ export class Tool {
return
arr
}
/**
* 找一个格子,最终掉落点,所有的index吧
* 找一个格子,最终掉落点,所有的index吧
,不改变数据
* @param lattice 能掉落的格子,格子上肯定有元素,并且能掉落
* @param empty
* @param lattices
...
...
@@ -886,6 +891,11 @@ export class Tool {
}
}
/**
* 不改变数据
* @param emptys
* @param lattices
*/
public
static
judgeOutOne
(
emptys
:
number
[],
lattices
:
Lattice
[])
{
for
(
var
m
=
0
;
m
<
Tool
.
colNum
;
m
++
)
{
//同一列
...
...
egret/src/something/anis/HatchAni.ts
View file @
5a5875f1
...
...
@@ -26,7 +26,7 @@ export function HatchAni(startIndex: number, endIndexs: number[], thisObj: MainS
//回收
thisObj
.
removeChild
(
eleC
);
Pool
.
recover
(
RecoverName
.
ELEMENT
,
eleC
);
//对应的索引的类型变成鸡,抛物线动画时间都一致,其实可以在统一回调里执行数据更新
//对应的索引的类型变成鸡,抛物线动画时间都一致,其实可以在统一回调里执行数据更新
,这里的数据更新迟早改掉
thisObj
.
lattices
[
endIndex
].
element
.
reset
(
ElementType
.
CHICKEN
);
//动画,和bonusTime的效果一样,暂时没加
...
...
egret/src/something/chapters/Chapter1.ts
View file @
5a5875f1
...
...
@@ -1001,7 +1001,7 @@ export const Chapters1: ChapterData[] = [
],
},
},
//17 引导棒棒糖
//17 引导棒棒糖
,定制掉落待加
{
baseElementTypes
:
[
0
,
1
,
2
,
3
],
bubbleProbability
:
0
,
...
...
egret/src/something/chapters/Chapter10.ts
0 → 100644
View file @
5a5875f1
import
{
ChapterData
}
from
"../interface/ChapterData"
;
import
{
PassType
}
from
"../enum/PassType"
;
import
{
ElementType
}
from
"../enum/ElementType"
;
/**
* 181到200关数据
*/
export
const
Chapters10
:
ChapterData
[]
=
[
//181
{
baseElementTypes
:
[
0
,
1
,
2
,
3
,
4
],
bubbleProbability
:
0
,
stepCount
:
20
,
passTarget
:
{
type
:
1
,
elements
:
[{
type
:
9
,
count
:
27
}]
},
starScores
:
[
5000
,
12000
,
25000
],
map
:
{
lattices
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
2
,
2
,
2
,
2
,
2
,
1
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
0
],
elements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
2
,
2
,
5
,
2
,
2
,
0
,
0
,
0
,
0
,
5
,
1
,
1
,
1
,
5
,
0
,
0
,
0
,
2
,
2
,
2
,
5
,
2
,
2
,
2
,
0
],
baseElements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
10
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
20
,
40
,
0
,
0
,
0
,
0
,
0
,
20
,
20
,
30
,
40
,
20
,
0
,
0
,
0
,
20
,
40
,
30
,
20
,
30
,
30
,
10
,
0
,
0
,
0
,
10
,
20
,
10
,
20
,
30
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
40
,
20
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
recycles
:
[],
generateLats
:
[
{
index
:
13
,
type
:
0
},
{
index
:
21
,
type
:
0
},
{
index
:
23
,
type
:
0
},
{
index
:
29
,
type
:
0
},
{
index
:
33
,
type
:
0
},
{
index
:
37
,
type
:
0
},
{
index
:
43
,
type
:
0
}
]
}
}
]
\ No newline at end of file
egret/src/something/chapters/Chapter2.ts
View file @
5a5875f1
This diff is collapsed.
Click to expand it.
egret/src/something/chapters/Chapter3.ts
0 → 100644
View file @
5a5875f1
This diff is collapsed.
Click to expand it.
egret/src/something/chapters/Chapter4.ts
0 → 100644
View file @
5a5875f1
import
{
ChapterData
}
from
"../interface/ChapterData"
;
import
{
PassType
}
from
"../enum/PassType"
;
import
{
ElementType
}
from
"../enum/ElementType"
;
/**
* 61到80关数据
*/
export
const
Chapters4
:
ChapterData
[]
=
[
//61 测试鸡蛋
{
baseElementTypes
:
[
0
,
2
,
3
,
4
],
bubbleProbability
:
0
,
stepCount
:
37
,
passTarget
:
{
type
:
1
,
elements
:
[{
type
:
1
,
count
:
30
}]
},
starScores
:
[
8000
,
15000
,
22000
],
map
:
{
lattices
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
],
connectedLats
:
[],
elements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
1
,
1
,
6
,
1
,
1
,
1
,
6
,
1
,
1
,
1
,
1
,
6
,
1
,
1
,
1
,
6
,
1
,
1
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
],
baseElements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
recycles
:
[],
generateLats
:
[{
index
:
12
,
type
:
null
},
{
index
:
13
,
type
:
null
},
{
index
:
14
,
type
:
null
},
{
index
:
20
,
type
:
null
},
{
index
:
24
,
type
:
null
},
{
index
:
28
,
type
:
null
},
{
index
:
34
,
type
:
null
},
{
index
:
36
,
type
:
null
},
{
index
:
44
,
type
:
null
}]
}
}
]
\ No newline at end of file
egret/src/something/chapters/Chapter5.ts
0 → 100644
View file @
5a5875f1
import
{
ChapterData
}
from
"../interface/ChapterData"
;
import
{
PassType
}
from
"../enum/PassType"
;
import
{
ElementType
}
from
"../enum/ElementType"
;
/**
* 81到100关数据
*/
export
const
Chapters5
:
ChapterData
[]
=
[
//81
{
baseElementTypes
:
[
0
,
1
,
2
,
3
,
4
],
bubbleProbability
:
0
,
stepCount
:
20
,
passTarget
:
{
type
:
1
,
elements
:
[{
type
:
9
,
count
:
27
}]
},
starScores
:
[
5000
,
12000
,
25000
],
map
:
{
lattices
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
2
,
2
,
2
,
2
,
2
,
1
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
0
],
elements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
2
,
2
,
5
,
2
,
2
,
0
,
0
,
0
,
0
,
5
,
1
,
1
,
1
,
5
,
0
,
0
,
0
,
2
,
2
,
2
,
5
,
2
,
2
,
2
,
0
],
baseElements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
10
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
20
,
40
,
0
,
0
,
0
,
0
,
0
,
20
,
20
,
30
,
40
,
20
,
0
,
0
,
0
,
20
,
40
,
30
,
20
,
30
,
30
,
10
,
0
,
0
,
0
,
10
,
20
,
10
,
20
,
30
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
40
,
20
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
recycles
:
[],
generateLats
:
[
{
index
:
13
,
type
:
0
},
{
index
:
21
,
type
:
0
},
{
index
:
23
,
type
:
0
},
{
index
:
29
,
type
:
0
},
{
index
:
33
,
type
:
0
},
{
index
:
37
,
type
:
0
},
{
index
:
43
,
type
:
0
}
]
}
}
]
\ No newline at end of file
egret/src/something/chapters/Chapter6.ts
0 → 100644
View file @
5a5875f1
import
{
ChapterData
}
from
"../interface/ChapterData"
;
import
{
PassType
}
from
"../enum/PassType"
;
import
{
ElementType
}
from
"../enum/ElementType"
;
/**
* 101到120关数据
*/
export
const
Chapters6
:
ChapterData
[]
=
[
//101
{
baseElementTypes
:
[
0
,
1
,
2
,
3
,
4
],
bubbleProbability
:
0
,
stepCount
:
20
,
passTarget
:
{
type
:
1
,
elements
:
[{
type
:
9
,
count
:
27
}]
},
starScores
:
[
5000
,
12000
,
25000
],
map
:
{
lattices
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
2
,
2
,
2
,
2
,
2
,
1
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
0
],
elements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
2
,
2
,
5
,
2
,
2
,
0
,
0
,
0
,
0
,
5
,
1
,
1
,
1
,
5
,
0
,
0
,
0
,
2
,
2
,
2
,
5
,
2
,
2
,
2
,
0
],
baseElements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
10
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
20
,
40
,
0
,
0
,
0
,
0
,
0
,
20
,
20
,
30
,
40
,
20
,
0
,
0
,
0
,
20
,
40
,
30
,
20
,
30
,
30
,
10
,
0
,
0
,
0
,
10
,
20
,
10
,
20
,
30
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
40
,
20
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
recycles
:
[],
generateLats
:
[
{
index
:
13
,
type
:
0
},
{
index
:
21
,
type
:
0
},
{
index
:
23
,
type
:
0
},
{
index
:
29
,
type
:
0
},
{
index
:
33
,
type
:
0
},
{
index
:
37
,
type
:
0
},
{
index
:
43
,
type
:
0
}
]
}
}
]
\ No newline at end of file
egret/src/something/chapters/Chapter7.ts
0 → 100644
View file @
5a5875f1
import
{
ChapterData
}
from
"../interface/ChapterData"
;
import
{
PassType
}
from
"../enum/PassType"
;
import
{
ElementType
}
from
"../enum/ElementType"
;
/**
* 121到140关数据
*/
export
const
Chapters7
:
ChapterData
[]
=
[
//121
{
baseElementTypes
:
[
0
,
1
,
2
,
3
,
4
],
bubbleProbability
:
0
,
stepCount
:
20
,
passTarget
:
{
type
:
1
,
elements
:
[{
type
:
9
,
count
:
27
}]
},
starScores
:
[
5000
,
12000
,
25000
],
map
:
{
lattices
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
2
,
2
,
2
,
2
,
2
,
1
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
0
],
elements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
2
,
2
,
5
,
2
,
2
,
0
,
0
,
0
,
0
,
5
,
1
,
1
,
1
,
5
,
0
,
0
,
0
,
2
,
2
,
2
,
5
,
2
,
2
,
2
,
0
],
baseElements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
10
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
20
,
40
,
0
,
0
,
0
,
0
,
0
,
20
,
20
,
30
,
40
,
20
,
0
,
0
,
0
,
20
,
40
,
30
,
20
,
30
,
30
,
10
,
0
,
0
,
0
,
10
,
20
,
10
,
20
,
30
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
40
,
20
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
recycles
:
[],
generateLats
:
[
{
index
:
13
,
type
:
0
},
{
index
:
21
,
type
:
0
},
{
index
:
23
,
type
:
0
},
{
index
:
29
,
type
:
0
},
{
index
:
33
,
type
:
0
},
{
index
:
37
,
type
:
0
},
{
index
:
43
,
type
:
0
}
]
}
}
]
\ No newline at end of file
egret/src/something/chapters/Chapter8.ts
0 → 100644
View file @
5a5875f1
import
{
ChapterData
}
from
"../interface/ChapterData"
;
import
{
PassType
}
from
"../enum/PassType"
;
import
{
ElementType
}
from
"../enum/ElementType"
;
/**
* 141到160关数据
*/
export
const
Chapters8
:
ChapterData
[]
=
[
//141
{
baseElementTypes
:
[
0
,
1
,
2
,
3
,
4
],
bubbleProbability
:
0
,
stepCount
:
20
,
passTarget
:
{
type
:
1
,
elements
:
[{
type
:
9
,
count
:
27
}]
},
starScores
:
[
5000
,
12000
,
25000
],
map
:
{
lattices
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
2
,
2
,
2
,
2
,
2
,
1
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
0
],
elements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
2
,
2
,
5
,
2
,
2
,
0
,
0
,
0
,
0
,
5
,
1
,
1
,
1
,
5
,
0
,
0
,
0
,
2
,
2
,
2
,
5
,
2
,
2
,
2
,
0
],
baseElements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
10
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
20
,
40
,
0
,
0
,
0
,
0
,
0
,
20
,
20
,
30
,
40
,
20
,
0
,
0
,
0
,
20
,
40
,
30
,
20
,
30
,
30
,
10
,
0
,
0
,
0
,
10
,
20
,
10
,
20
,
30
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
40
,
20
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
recycles
:
[],
generateLats
:
[
{
index
:
13
,
type
:
0
},
{
index
:
21
,
type
:
0
},
{
index
:
23
,
type
:
0
},
{
index
:
29
,
type
:
0
},
{
index
:
33
,
type
:
0
},
{
index
:
37
,
type
:
0
},
{
index
:
43
,
type
:
0
}
]
}
}
]
\ No newline at end of file
egret/src/something/chapters/Chapter9.ts
0 → 100644
View file @
5a5875f1
import
{
ChapterData
}
from
"../interface/ChapterData"
;
import
{
PassType
}
from
"../enum/PassType"
;
import
{
ElementType
}
from
"../enum/ElementType"
;
/**
* 161到180关数据
*/
export
const
Chapters9
:
ChapterData
[]
=
[
//161
{
baseElementTypes
:
[
0
,
1
,
2
,
3
,
4
],
bubbleProbability
:
0
,
stepCount
:
20
,
passTarget
:
{
type
:
1
,
elements
:
[{
type
:
9
,
count
:
27
}]
},
starScores
:
[
5000
,
12000
,
25000
],
map
:
{
lattices
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
2
,
2
,
2
,
2
,
2
,
1
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
0
,
0
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
0
],
elements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
2
,
2
,
5
,
2
,
2
,
0
,
0
,
0
,
0
,
5
,
1
,
1
,
1
,
5
,
0
,
0
,
0
,
2
,
2
,
2
,
5
,
2
,
2
,
2
,
0
],
baseElements
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
10
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
20
,
40
,
0
,
0
,
0
,
0
,
0
,
20
,
20
,
30
,
40
,
20
,
0
,
0
,
0
,
20
,
40
,
30
,
20
,
30
,
30
,
10
,
0
,
0
,
0
,
10
,
20
,
10
,
20
,
30
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
40
,
40
,
20
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
recycles
:
[],
generateLats
:
[
{
index
:
13
,
type
:
0
},
{
index
:
21
,
type
:
0
},
{
index
:
23
,
type
:
0
},
{
index
:
29
,
type
:
0
},
{
index
:
33
,
type
:
0
},
{
index
:
37
,
type
:
0
},
{
index
:
43
,
type
:
0
}
]
}
}
]
\ No newline at end of file
egret/src/something/chapters/getChapter.ts
View file @
5a5875f1
import
{
ChapterData
}
from
"../interface/ChapterData"
;
import
{
Chapters1
}
from
"./Chapter1"
;
import
{
Chapters2
}
from
"./Chapter2"
;
import
{
ChapterData
}
from
"../interface/ChapterData"
;
import
{
Chapters3
}
from
"./Chapter3"
;
import
{
Chapters4
}
from
"./Chapter4"
;
//所有的关卡
const
chapters
:
ChapterData
[]
=
[].
concat
(
Chapters1
,
Chapters2
,
Chapters3
,
Chapters4
)
/**
* 获取关卡数据,返回关卡数据
* 以后每添加20关,添加一个文件,上面concat一个文件
* @param index 关数 从1开始
*/
export
function
getChapterData
(
index
:
number
)
{
export
function
getChapterData
(
index
:
number
)
:
ChapterData
{
//没有数据就返回第一关数据
return
chapters
[
index
]
||
chapters
[
1
];
}
\ No newline at end of file
egret/src/something/interface/FallAniData.ts
View file @
5a5875f1
...
...
@@ -22,6 +22,6 @@ export interface FallAniData {
}
export
enum
FallType
{
STRIGHT
=
0
,
THROUGH
,
STRIGHT
=
0
,
//垂直
THROUGH
,
//连通穿过
}
\ No newline at end of file
egret/src/something/interface/GenerateLatData.ts
View file @
5a5875f1
...
...
@@ -9,8 +9,9 @@ export interface GenerateLatData {
/**
* 掉落元素类型
* 里面随机类型和下一致
* 或者null
*/
type
?:
number
[]
type
?:
number
[]
|
0
/**
* 自定义掉落元素
* 十位是基础元素类型,对应数字减1就是基础元素类型
...
...
egret/src/something/logic/AiControl.ts
View file @
5a5875f1
...
...
@@ -88,7 +88,7 @@ export class AiControl {
//随机取
var
rand
=
Math
.
floor
(
Math
.
random
()
*
indexs
.
length
);
var
randIndex
=
indexs
.
splice
(
rand
,
1
)[
0
];
var
index
=
judge
Spread
(
randIndex
,
thisObj
.
lattices
);
var
index
=
judge
ActionIndex
(
randIndex
,
thisObj
.
lattices
);
//考虑0,判断null,有就break
if
(
index
!=
null
)
{
//能蔓延,返回自身索引和蔓延的索引
...
...
@@ -295,8 +295,8 @@ export class AiControl {
callback
();
return
}
//找出所有能跳动的毛球;
var
jumpBallIndexs
:
number
[]
=
[];
//找出所有能跳动的毛球;
需要记录类型
var
jumpBallIndexs
:
{
type
:
StateType
,
index
:
number
}
[]
=
[];
//即将唤醒的黑色毛球
var
awakeBallIndexs
:
number
[]
=
[];
//即将分裂的褐色毛球
...
...
@@ -307,13 +307,13 @@ export class AiControl {
if
(
Tool
.
judgeBaseEle
(
lat
))
{
//灰色直接进跳动
if
(
lat
.
element
.
hasState
(
StateType
.
HAIRBALLGREY
))
{
jumpBallIndexs
.
push
(
i
);
jumpBallIndexs
.
push
(
{
type
:
StateType
.
HAIRBALLGREY
,
index
:
i
}
);
}
//黑色
if
(
lat
.
element
.
hasState
(
StateType
.
HAIRBALLBLACK
))
{
//醒着的跳动
if
(
lat
.
element
.
getState
(
StateType
.
HAIRBALLBLACK
).
isAwake
)
{
jumpBallIndexs
.
push
(
i
);
jumpBallIndexs
.
push
(
{
type
:
StateType
.
HAIRBALLBLACK
,
index
:
i
}
);
}
//晕着的即将醒
else
{
...
...
@@ -328,7 +328,7 @@ export class AiControl {
}
//未激活的跳动
else
{
jumpBallIndexs
.
push
(
i
);
jumpBallIndexs
.
push
(
{
type
:
StateType
.
HAIRBALLBROWN
,
index
:
i
}
);
}
};
}
...
...
@@ -343,7 +343,7 @@ export class AiControl {
let
count
=
0
;
let
countAll
=
(
jumpBallIndexs
.
length
?
1
:
0
)
+
(
awakeBallIndexs
.
length
?
1
:
0
)
+
(
divideBallIndexs
.
length
?
1
:
0
)
//回调操作
let
callbackOperation
=
()
=>
{
if
(
++
count
==
countAll
)
{
setTimeout
(()
=>
{
...
...
@@ -360,11 +360,11 @@ export class AiControl {
//分裂的优先,因为存在多出状态,不需要多次,按顺序就行
let
countDivide
=
0
;
let
countDivideAll
=
divideBallIndexs
.
length
;
for
(
var
a
=
0
;
a
<
divideBallIndexs
.
length
;
a
++
)
{
for
(
var
a
=
0
;
a
<
countDivideAll
;
a
++
)
{
let
indexFrom
=
divideBallIndexs
[
a
];
let
elementFrom
:
Element
=
thisObj
.
lattices
[
indexFrom
].
element
;
//判断是否能分裂
let
indexEnd
=
judge
Divide
(
indexFrom
,
thisObj
.
lattices
);
let
indexEnd
=
judge
ActionIndex
(
indexFrom
,
thisObj
.
lattices
);
//有执行分裂动画
if
(
indexEnd
!=
null
)
{
//去掉原先的褐色
...
...
@@ -394,47 +394,47 @@ export class AiControl {
},
200
);
}
}
//跳动的,
需要考虑尽量都能跳,
//跳动的,
let
countJump
=
0
;
let
countJumpAll
=
jumpBallIndexs
.
length
;
for
(
var
a
=
0
;
a
<
jumpBallIndexs
.
length
;
a
++
)
{
let
indexFrom
=
jumpBallIndexs
[
a
];
let
data
:
{
type
:
StateType
,
index
:
number
}
=
jumpBallIndexs
[
a
];
let
indexFrom
=
data
.
index
;
let
elementFrom
:
Element
=
thisObj
.
lattices
[
indexFrom
].
element
;
//判断是否能分裂
let
indexEnd
=
judgeDivide
(
indexFrom
,
thisObj
.
lattices
);
//有执行分裂动画
let
stateType
:
StateType
=
data
.
type
;
//判断是否能跳动
let
indexEnd
=
judgeActionIndex
(
indexFrom
,
thisObj
.
lattices
);
//有执行跳动动画
if
(
indexEnd
!=
null
)
{
//去掉原先的褐色
elementFrom
.
setState
(
StateType
.
HAIRBALLBROWN
,
false
);
//变成灰色毛球
elementFrom
.
setState
(
StateType
.
HAIRBALLGREY
,
true
);
//去掉原先的状态
elementFrom
.
setState
(
stateType
,
false
);
let
elementEnd
=
thisObj
.
lattices
[
indexEnd
].
element
;
//变成
灰色
毛球
elementEnd
.
setState
(
StateType
.
HAIRBALLGREY
,
true
);
//变成毛球
elementEnd
.
setState
(
stateType
,
true
);
//动画
setTimeout
(()
=>
{
//都执行了
if
(
++
count
Divide
==
countDivide
All
)
callbackOperation
();
if
(
++
count
Jump
==
countJump
All
)
callbackOperation
();
},
200
);
}
//没有则
执行直接变灰动画
//没有则
计数
else
{
//去掉原先的褐色
elementFrom
.
setState
(
StateType
.
HAIRBALLBROWN
,
false
);
//变成灰色毛球
elementFrom
.
setState
(
StateType
.
HAIRBALLGREY
,
true
);
//动画
if
(
++
countJump
==
countJumpAll
)
callbackOperation
();
}
}
//唤醒的
let
countAwake
=
0
;
let
countAwakeAll
=
awakeBallIndexs
.
length
;
for
(
var
a
=
0
;
a
<
awakeBallIndexs
.
length
;
a
++
)
{
let
indexFrom
=
awakeBallIndexs
[
a
];
let
elementFrom
:
Element
=
thisObj
.
lattices
[
indexFrom
].
element
;
//唤醒的动画直接写在自己的blackState里吧,然后换图
setTimeout
(()
=>
{
//都执行了
if
(
++
countDivide
==
countDivid
eAll
)
callbackOperation
();
if
(
++
countAwake
==
countAwak
eAll
)
callbackOperation
();
},
200
);
}
}
//唤醒的
}
}
/**
...
...
@@ -502,11 +502,16 @@ function getEggs(lattices: Lattice[]) {
}
/**
* 判断可蔓延的方向,并返回蔓延的格子索引
* 判断可蔓延的方向,并返回蔓延终点的格子索引
* 判断可分裂的方向,并返回分裂终点的格子索引
* 判断可跳动的方向,并返回跳动终点的格子索引
*
* 4个方向随机,
* 得是基础元素,且无任何状态,可以有特效
* @param index
* @return 没有返回null,注意判断时可能有0
*/
function
judge
Spread
(
index
:
number
,
lattices
:
Lattice
[]):
number
{
function
judge
ActionIndex
(
index
:
number
,
lattices
:
Lattice
[]):
number
{
//四个方向尽量随机
var
arr
=
[
index
-
Tool
.
colNum
,
index
+
Tool
.
colNum
];
var
rc
=
Tool
.
indexToRc
(
index
);
...
...
@@ -587,40 +592,7 @@ function getBubbleType(index: number, lattices: Lattice[], baseElementTypes: num
return
Tool
.
randomT
(
arr
);
}
/**
* 判断可分裂的方向,并返回分裂终点的格子索引
* 判断和judgeSpread一样,但以防万一,单独写
* @param index
* @return 没有返回null,注意判断时可能有0
*/
function
judgeDivide
(
index
:
number
,
lattices
:
Lattice
[])
{
//四个方向尽量随机
var
arr
=
[
index
-
Tool
.
colNum
,
index
+
Tool
.
colNum
];
var
rc
=
Tool
.
indexToRc
(
index
);
var
col
=
rc
[
1
];
//列数大于0才可能有左边格子
if
(
col
>
0
)
arr
.
push
(
index
-
1
);
//列数不为最右边
if
(
col
<
Tool
.
colNum
-
1
)
arr
.
push
(
index
+
1
);
while
(
arr
.
length
)
{
var
rand
=
Math
.
floor
(
Math
.
random
()
*
arr
.
length
);
var
i
=
arr
.
splice
(
rand
,
1
)[
0
];
if
(
Tool
.
judgeBaseEle
(
lattices
[
i
])
&&
!
lattices
[
i
].
element
.
hasAnyState
())
{
return
i
}
}
return
null
}
/**
* 根据可跳的索引和所有的格子数据,返回
* @param jumpBallIndexs
* @param lattices
*/
function
returnAllJumps
(
jumpBallIndexs
:
number
,
lattices
:
Lattice
[]){
}
...
...
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