@@ -63,7 +63,7 @@ let worldState = createState()
63
63
worldState = _createScene (worldState )
64
64
```
65
65
66
- 我们首先创建了worldState ,用来保存所有的数据;
66
+ 我们首先创建了WorldState ,用来保存所有的数据;
67
67
然后创建了场景,包括两个普通英雄和两个超级英雄,其中第一个普通英雄进行了移动,第一个超级英雄进行了移动和飞行
68
68
69
69
@@ -77,7 +77,7 @@ export let createState = (): worldState => {
77
77
}
78
78
```
79
79
80
- createState函数创建并返回了worldState ,它包括两个分别用来保存所有的normalHero和所有的superHero的容器-Hash Map
80
+ createState函数创建并返回了WorldState ,它包括两个分别用来保存所有的normalHero和所有的superHero的容器-Hash Map
81
81
82
82
83
83
@@ -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 ->normalHeros这个Hash Map的Key,后者是它的Value
131
131
同理,superHero与superHeroState关联
132
132
133
133
World封装了操作Hero的API
@@ -392,7 +392,7 @@ OneByOne渲染 SuperHero...
392
392
首先进行了初始化;
393
393
然后更新了所有的人物,包括两个普通英雄和两个超级英雄;
394
394
然后依次渲染了2个超级英雄,以及一次性批量渲染了所有的普通英雄;
395
- 最后打印了worldState
395
+ 最后打印了WorldState
396
396
397
397
我们看到normalHeros中有一个的position为[ 2,2,2] ,说明该普通英雄进行了move操作;superHeros中有一个的position为[ 6,6,6] ,说明该超级英雄进行了move和fly操作
398
398
normalHeros和superHeros中的Key因为是随机生成的id值,所以每次打印时值都不一样
@@ -525,7 +525,7 @@ export let createState = (): worldState => {
525
525
}
526
526
```
527
527
528
- createState函数创建并返回了worldState ,它现在是包括所有的GameObject的容器Hash Map
528
+ createState函数创建并返回了WorldState ,它现在是包括所有的GameObject的容器Hash Map
529
529
530
530
531
531
@@ -577,7 +577,7 @@ export let api = {
577
577
这里与之前一样,我们将一个GameObject的数据保存在一个state中,然后用一个索引与其关联。具体就是:
578
578
gameObject其实就是一个number类型的id值,
579
579
gameObjectState保存了一个GameObject的数据
580
- gameObject与gameObjectState一一关联,这个关联体现在前者是worldState ->gameObjects这个Hash Map的Key,后者是它的Value
580
+ gameObject与gameObjectState一一关联,这个关联体现在前者是WorldState ->gameObjects这个Hash Map的Key,后者是它的Value
581
581
582
582
World封装了操作GameObject和组件的API
583
583
@@ -865,10 +865,10 @@ OneByOne渲染 SuperHero...
865
865
运行结果的步骤与之前一样
866
866
不同之处在于:
867
867
更新人物变为更新positionComponent;
868
- 打印的worldState不一样
868
+ 打印的WorldState不一样
869
869
870
870
871
- 我们看下打印的worldState :
871
+ 我们看下打印的WorldState :
872
872
gameObjects包括了4个gameObject的数据;
873
873
有一个gameObject的positionComponent的position为[ 2,2,2] ,说明该gameObject进行了move操作;
874
874
有一个gameObject的positionComponent的position为[ 6,6,6] ,说明该gameObject进行了move和fly操作
@@ -931,7 +931,7 @@ World不再管理所有的gameObject,但是仍然实现了初始化和主循
931
931
932
932
我们看下System这一层:
933
933
有多个System,每个System实现一个行为逻辑
934
- 其中,CreateStateSystem实现创建worldState的逻辑,worldState包括了所有的Manager的state ;
934
+ 其中,CreateStateSystem实现创建WorldState的逻辑,WorldState包括了所有的Manager的state ;
935
935
UpdateSystem实现更新所有人物的position的逻辑,具体是更新所有PositionComponent的position;
936
936
MoveSystem实现一个人物的移动,具体是使用了挂载到该人物对应的 gameObject上的一个positionComponent和一个velocityComponent,更新了该positionComponent的position;
937
937
FlySystem实现一个人物的飞行,具体是使用了挂载到该人物对应的gameObject上的一个positionComponent、一个velocityComponent、一个flyComponent,更新了该positionComponent的position;
@@ -976,7 +976,7 @@ Client代码:
976
976
let worldState = createState ({ positionComponentCount: 10 , velocityComponentCount: 10 , flyComponentCount: 10 })
977
977
```
978
978
979
- 这里通过调用CreateStateSystem的createState函数来创建worldState
979
+ 这里通过调用CreateStateSystem的createState函数来创建WorldState
980
980
981
981
现在我们来看下CreateStateSystem的createState代码:
982
982
``` ts
@@ -991,7 +991,7 @@ export let createState = ({ positionComponentCount, velocityComponentCount, flyC
991
991
}
992
992
```
993
993
994
- createState函数创建的worldState包括了各个Manager的state
994
+ createState函数创建的WorldState包括了各个Manager的state
995
995
996
996
因为Data Oriented组件的state在创建时要创建包括该种组件的所有组件数据的ArrayBuffer,所以需要知道组件的最大个数,因此这里的createState函数接收了三种Data Oriented组件的最大个数
997
997
@@ -1489,10 +1489,10 @@ OneByOne渲染 SuperHero...
1489
1489
1490
1490
运行结果的步骤与之前一样
1491
1491
不同之处在于:
1492
- 打印的worldState不一样
1492
+ 打印的WorldState不一样
1493
1493
1494
1494
1495
- 我们看下打印的worldState :
1495
+ 我们看下打印的WorldState :
1496
1496
gameObjectManagetState的maxUID为4,说明创建了4个gameObject;
1497
1497
positionComponentManagerState的maxIndex为4,说明创建了4个positionComponent;
1498
1498
positionComponentManagerState的positions有3个连续的值是2、2、2,说明进行了一次move操作;有另外3个连续的值是6、6、6,说明进行了一次move操作和一次fly操作;
@@ -1542,7 +1542,7 @@ Component+GameObject层为组件和GameObject,它们现在只是有一个numbe
1542
1542
下面的角色属于System层:
1543
1543
1544
1544
- CreateStateSystem
1545
- 该角色负责创建worldState
1545
+ 该角色负责创建WorldState
1546
1546
1547
1547
- OtherSystem
1548
1548
该角色代表除了CreateStateSystem以外的System
0 commit comments