@@ -71,8 +71,8 @@ worldState = _createScene(worldState)
71
71
``` ts
72
72
export let createState = (): worldState => {
73
73
return {
74
- normalHeros : Map (),
75
- superHeros : Map ()
74
+ normalHeroes : Map (),
75
+ superHeroes : Map ()
76
76
}
77
77
}
78
78
```
@@ -87,14 +87,14 @@ WorldUtils
87
87
export let setNormalHeroState = (worldState : worldState , normalHero : normalHero , normalHeroState : normalHeroState ) => {
88
88
return {
89
89
... worldState ,
90
- normalHeros : worldState .normalHeros .set (normalHero , normalHeroState )
90
+ normalHeroes : worldState .normalHeroes .set (normalHero , normalHeroState )
91
91
}
92
92
}
93
93
94
94
export let setSuperHeroState = (worldState : worldState , superHero : superHero , superHeroState : superHeroState ) => {
95
95
return {
96
96
... worldState ,
97
- superHeros : worldState .superHeros .set (superHero , superHeroState )
97
+ superHeroes : worldState .superHeroes .set (superHero , superHeroState )
98
98
}
99
99
}
100
100
```
@@ -127,7 +127,7 @@ export let api = {
127
127
我们将一个英雄的数据保存在一个state中,然后用一个索引与其关联。具体就是:
128
128
normalHero、superHero其实就是一个number类型的id值
129
129
normalHeroState、superHeroState分别保存了一个普通英雄、一个超级英雄的数据(比如position、velocity)
130
- normalHero与normalHeroState一一关联,这个关联体现在前者是WorldState->normalHeros这个Hash Map的Key,后者是它的Value
130
+ normalHero与normalHeroState一一关联,这个关联体现在前者是WorldState->normalHeroes这个Hash Map的Key,后者是它的Value
131
131
同理,superHero与superHeroState关联
132
132
133
133
World封装了操作Hero的API
@@ -137,13 +137,13 @@ NormalHero的相关代码如下:
137
137
WorldUtils
138
138
``` ts
139
139
export let getNormalHeroState = (worldState : worldState , normalHero : normalHero ): normalHeroState => {
140
- return worldState .normalHeros .get (normalHero )
140
+ return worldState .normalHeroes .get (normalHero )
141
141
}
142
142
143
143
export let setNormalHeroState = (worldState : worldState , normalHero : normalHero , normalHeroState : normalHeroState ) => {
144
144
return {
145
145
... worldState ,
146
- normalHeros : worldState .normalHeros .set (normalHero , normalHeroState )
146
+ normalHeroes : worldState .normalHeroes .set (normalHero , normalHeroState )
147
147
}
148
148
}
149
149
```
@@ -188,14 +188,14 @@ SuperHero的相关代码如下:
188
188
WorldUtils
189
189
``` ts
190
190
export let getSuperHeroState = (worldState : worldState , superHero : superHero ): superHeroState => {
191
- return worldState .superHeros .get (superHero )
191
+ return worldState .superHeroes .get (superHero )
192
192
}
193
193
194
194
195
195
export let setSuperHeroState = (worldState : worldState , superHero : superHero , superHeroState : superHeroState ) => {
196
196
return {
197
197
... worldState ,
198
- superHeros : worldState .superHeros .set (superHero , superHeroState )
198
+ superHeroes : worldState .superHeroes .set (superHero , superHeroState )
199
199
}
200
200
}
201
201
```
@@ -291,10 +291,10 @@ World
291
291
``` ts
292
292
export let update = (worldState : worldState ): worldState => {
293
293
return {
294
- normalHeros : worldState .normalHeros .map (normalHeroState => {
294
+ normalHeroes : worldState .normalHeroes .map (normalHeroState => {
295
295
return NormalHero .update (normalHeroState )
296
296
}),
297
- superHeros : worldState .superHeros .map (superHeroState => {
297
+ superHeroes : worldState .superHeroes .map (superHeroState => {
298
298
return SuperHero .update (superHeroState )
299
299
})
300
300
}
@@ -359,15 +359,15 @@ export let loop = (worldState, [update, renderOneByOne, renderInstances]) => {
359
359
World
360
360
``` ts
361
361
export let renderOneByOne = (worldState : worldState ): void => {
362
- worldState .superHeros .forEach (superHeroState => {
362
+ worldState .superHeroes .forEach (superHeroState => {
363
363
console .log (" OneByOne渲染 SuperHero..." )
364
364
})
365
365
}
366
366
367
367
export let renderInstances = (worldState : worldState ): void => {
368
- let normalHeroStates = worldState .normalHeros
368
+ let normalHeroStates = worldState .normalHeroes
369
369
370
- console .log (" 批量Instance渲染 NormalHeros ..." )
370
+ console .log (" 批量Instance渲染 NormalHeroes ..." )
371
371
}
372
372
```
373
373
@@ -385,17 +385,17 @@ export let renderInstances = (worldState: worldState): void => {
385
385
更新SuperHero
386
386
OneByOne渲染 SuperHero...
387
387
OneByOne渲染 SuperHero...
388
- 批量Instance渲染 NormalHeros ...
389
- {"normalHeros ":{"144891":{"position":[0,0,0],"velocity":1},"648575":{"position":[2,2,2],"velocity":1}},"superHeros ":{"497069":{"position":[6,6,6],"velocity":1,"maxFlyVelocity":10},"783438":{"position":[0,0,0],"velocity":1,"maxFlyVelocity":10}}}
388
+ 批量Instance渲染 NormalHeroes ...
389
+ {"normalHeroes ":{"144891":{"position":[0,0,0],"velocity":1},"648575":{"position":[2,2,2],"velocity":1}},"superHeroes ":{"497069":{"position":[6,6,6],"velocity":1,"maxFlyVelocity":10},"783438":{"position":[0,0,0],"velocity":1,"maxFlyVelocity":10}}}
390
390
```
391
391
392
392
首先进行了初始化;
393
393
然后更新了所有的人物,包括两个普通英雄和两个超级英雄;
394
394
然后依次渲染了2个超级英雄,以及一次性批量渲染了所有的普通英雄;
395
395
最后打印了WorldState
396
396
397
- 我们看到normalHeros中有一个的position为 [ 2,2,2] ,说明该普通英雄进行了move操作;superHeros中有一个的position为 [ 6,6,6] ,说明该超级英雄进行了move和fly操作
398
- normalHeros和superHeros中的Key因为是随机生成的id值 ,所以每次打印时值都不一样
397
+ 我们看到normalHeroes中有一个的position为 [ 2,2,2] ,说明该普通英雄进行了move操作;superHeroes中有一个的position为 [ 6,6,6] ,说明该超级英雄进行了move和fly操作
398
+ normalHeroes和superHeroes中的Key因为是随机生成的id值 ,所以每次打印时值都不一样
399
399
400
400
401
401
@@ -841,7 +841,7 @@ export let renderInstances = (worldState: worldState): void => {
841
841
return hasInstanceComponent (gameObjectState )
842
842
})
843
843
844
- console .log (" 批量Instance渲染 NormalHeros ..." )
844
+ console .log (" 批量Instance渲染 NormalHeroes ..." )
845
845
}
846
846
```
847
847
@@ -858,7 +858,7 @@ export let renderInstances = (worldState: worldState): void => {
858
858
更新PositionComponent
859
859
OneByOne渲染 SuperHero...
860
860
OneByOne渲染 SuperHero...
861
- 批量Instance渲染 NormalHeros ...
861
+ 批量Instance渲染 NormalHeroes ...
862
862
{"gameObjects":{"304480":{"positionComponent":{"gameObject":304480,"position":[0,0,0]},"velocityComponent":{"gameObject":304480,"velocity":1},"flyComponent":{"gameObject":304480,"maxVelocity":10},"instanceComponent":null},"666533":{"positionComponent":{"gameObject":666533,"position":[2,2,2]},"velocityComponent":{"gameObject":666533,"velocity":1},"flyComponent":null,"instanceComponent":{"gameObject":666533}},"838392":{"positionComponent":{"gameObject":838392,"position":[0,0,0]},"velocityComponent":{"gameObject":838392,"velocity":1},"flyComponent":null,"instanceComponent":{"gameObject":838392}},"936933":{"positionComponent":{"gameObject":936933,"position":[6,6,6]},"velocityComponent":{"gameObject":936933,"velocity":1},"flyComponent":{"gameObject":936933,"maxVelocity":10},"instanceComponent":null}}}
863
863
```
864
864
@@ -1465,7 +1465,7 @@ export let render = (worldState: worldState): void => {
1465
1465
return hasInstanceComponent (worldState .instanceComponentManagerState , gameObject )
1466
1466
})
1467
1467
1468
- console .log (" 批量Instance渲染 NormalHeros ..." )
1468
+ console .log (" 批量Instance渲染 NormalHeroes ..." )
1469
1469
}
1470
1470
```
1471
1471
@@ -1483,7 +1483,7 @@ RenderInstancesSystem则是获得所有挂载InstanceComponent组件的gameObjec
1483
1483
更新PositionComponent: 3
1484
1484
OneByOne渲染 SuperHero...
1485
1485
OneByOne渲染 SuperHero...
1486
- 批量Instance渲染 NormalHeros ...
1486
+ 批量Instance渲染 NormalHeroes ...
1487
1487
{"gameObjectManagerState":{"maxUID":4},"positionComponentManagerState":{"maxIndex":4,"buffer":{},"positions":{"0":2,"1":2,"2":2,"3":0,"4":0,"5":0,"6":6,"7":6,"8":6,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0},"gameObjectMap":{"0":0,"1":1,"2":2,"3":3},"gameObjectPositionMap":{"0":0,"1":1,"2":2,"3":3}},"velocityComponentManagerState":{"maxIndex":4,"buffer":{},"velocitys":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1},"gameObjectMap":{"0":0,"1":1,"2":2,"3":3},"gameObjectVelocityMap":{"0":0,"1":1,"2":2,"3":3}},"flyComponentManagerState":{"maxIndex":1,"buffer":{},"maxVelocitys":{"0":10,"1":10,"2":10,"3":10,"4":10,"5":10,"6":10,"7":10,"8":10,"9":10},"gameObjectMap":{"0":2,"1":3},"gameObjectFlyMap":{"2":0,"3":1}},"instanceComponentManagerState":{"maxUID":1,"gameObjectMap":{"0":0,"1":1},"gameObjectInstanceMap":{"0":0,"1":1}}}
1488
1488
```
1489
1489
0 commit comments