Skip to content

Commit 0559b85

Browse files
committed
Merge branch 'master' of github.com:yyc-git/3DProgramPattern
2 parents eede0bc + 1d89240 commit 0559b85

File tree

6 files changed

+37
-37
lines changed

6 files changed

+37
-37
lines changed

ECS模式代码/story_after/src/world/World.ts

100755100644
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export let renderInstances = (worldState: worldState): void => {
5252
return hasInstanceComponent(gameObjectState)
5353
})
5454

55-
console.log("批量Instance渲染 NormalHeros...")
55+
console.log("批量Instance渲染 NormalHeroes...")
5656
}
5757

5858
export let api = {

ECS模式代码/story_before/src/World.ts

100755100644
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { setNormalHeroState, setSuperHeroState } from "./WorldUtils";
66

77
export let createState = (): worldState => {
88
return {
9-
normalHeros: Map(),
10-
superHeros: Map()
9+
normalHeroes: Map(),
10+
superHeroes: Map()
1111
}
1212
}
1313

@@ -21,25 +21,25 @@ export let addSuperHero = (worldState: worldState, [superHeroState, superHero]):
2121

2222
export let update = (worldState: worldState): worldState => {
2323
return {
24-
normalHeros: worldState.normalHeros.map(normalHeroState => {
24+
normalHeroes: worldState.normalHeroes.map(normalHeroState => {
2525
return NormalHero.update(normalHeroState)
2626
}),
27-
superHeros: worldState.superHeros.map(superHeroState => {
27+
superHeroes: worldState.superHeroes.map(superHeroState => {
2828
return SuperHero.update(superHeroState)
2929
})
3030
}
3131
}
3232

3333
export let renderOneByOne = (worldState: worldState): void => {
34-
worldState.superHeros.forEach(superHeroState => {
34+
worldState.superHeroes.forEach(superHeroState => {
3535
console.log("OneByOne渲染 SuperHero...")
3636
})
3737
}
3838

3939
export let renderInstances = (worldState: worldState): void => {
40-
let normalHeroStates = worldState.normalHeros
40+
let normalHeroStates = worldState.normalHeroes
4141

42-
console.log("批量Instance渲染 NormalHeros...")
42+
console.log("批量Instance渲染 NormalHeroes...")
4343
}
4444

4545
export let api = {

ECS模式代码/story_before/src/WorldStateType.ts

100755100644
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ import { state as normalHeroState, hero as normalHero } from "./NormalHeroStateT
33
import { state as superHeroState, hero as superHero } from "./SuperHeroStateType"
44

55
export type state = {
6-
normalHeros: Map<normalHero, normalHeroState>,
7-
superHeros: Map<superHero, superHeroState>
6+
normalHeroes: Map<normalHero, normalHeroState>,
7+
superHeroes: Map<superHero, superHeroState>
88
}

ECS模式代码/story_before/src/WorldUtils.ts

100755100644
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,24 @@ import { state as superHeroState, hero as superHero } from "./SuperHeroStateType
33
import { state as worldState } from "./WorldStateType";
44

55
export let getNormalHeroState = (worldState: worldState, normalHero: normalHero): normalHeroState => {
6-
return worldState.normalHeros.get(normalHero)
6+
return worldState.normalHeroes.get(normalHero)
77
}
88

99
export let setNormalHeroState = (worldState: worldState, normalHero: normalHero, normalHeroState: normalHeroState) => {
1010
return {
1111
...worldState,
12-
normalHeros: worldState.normalHeros.set(normalHero, normalHeroState)
12+
normalHeroes: worldState.normalHeroes.set(normalHero, normalHeroState)
1313
}
1414
}
1515

1616
export let getSuperHeroState = (worldState: worldState, superHero: superHero): superHeroState => {
17-
return worldState.superHeros.get(superHero)
17+
return worldState.superHeroes.get(superHero)
1818
}
1919

2020

2121
export let setSuperHeroState = (worldState: worldState, superHero: superHero, superHeroState: superHeroState) => {
2222
return {
2323
...worldState,
24-
superHeros: worldState.superHeros.set(superHero, superHeroState)
24+
superHeroes: worldState.superHeroes.set(superHero, superHeroState)
2525
}
2626
}

ECS模式代码/story_improve/src/system/RenderInstancesSystem.ts

100755100644
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ export let render = (worldState: worldState): void => {
77
return hasInstanceComponent(worldState.instanceComponentManagerState, gameObject)
88
})
99

10-
console.log("批量Instance渲染 NormalHeros...")
10+
console.log("批量Instance渲染 NormalHeroes...")
1111
}

packages/ECS模式/article.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ worldState = _createScene(worldState)
7171
```ts
7272
export let createState = (): worldState => {
7373
return {
74-
normalHeros: Map(),
75-
superHeros: Map()
74+
normalHeroes: Map(),
75+
superHeroes: Map()
7676
}
7777
}
7878
```
@@ -87,14 +87,14 @@ WorldUtils
8787
export let setNormalHeroState = (worldState: worldState, normalHero: normalHero, normalHeroState: normalHeroState) => {
8888
return {
8989
...worldState,
90-
normalHeros: worldState.normalHeros.set(normalHero, normalHeroState)
90+
normalHeroes: worldState.normalHeroes.set(normalHero, normalHeroState)
9191
}
9292
}
9393

9494
export let setSuperHeroState = (worldState: worldState, superHero: superHero, superHeroState: superHeroState) => {
9595
return {
9696
...worldState,
97-
superHeros: worldState.superHeros.set(superHero, superHeroState)
97+
superHeroes: worldState.superHeroes.set(superHero, superHeroState)
9898
}
9999
}
100100
```
@@ -127,7 +127,7 @@ export let api = {
127127
我们将一个英雄的数据保存在一个state中,然后用一个索引与其关联。具体就是:
128128
normalHero、superHero其实就是一个number类型的id值
129129
normalHeroState、superHeroState分别保存了一个普通英雄、一个超级英雄的数据(比如position、velocity)
130-
normalHero与normalHeroState一一关联,这个关联体现在前者是WorldState->normalHeros这个Hash Map的Key,后者是它的Value
130+
normalHero与normalHeroState一一关联,这个关联体现在前者是WorldState->normalHeroes这个Hash Map的Key,后者是它的Value
131131
同理,superHero与superHeroState关联
132132

133133
World封装了操作Hero的API
@@ -137,13 +137,13 @@ NormalHero的相关代码如下:
137137
WorldUtils
138138
```ts
139139
export let getNormalHeroState = (worldState: worldState, normalHero: normalHero): normalHeroState => {
140-
return worldState.normalHeros.get(normalHero)
140+
return worldState.normalHeroes.get(normalHero)
141141
}
142142

143143
export let setNormalHeroState = (worldState: worldState, normalHero: normalHero, normalHeroState: normalHeroState) => {
144144
return {
145145
...worldState,
146-
normalHeros: worldState.normalHeros.set(normalHero, normalHeroState)
146+
normalHeroes: worldState.normalHeroes.set(normalHero, normalHeroState)
147147
}
148148
}
149149
```
@@ -188,14 +188,14 @@ SuperHero的相关代码如下:
188188
WorldUtils
189189
```ts
190190
export let getSuperHeroState = (worldState: worldState, superHero: superHero): superHeroState => {
191-
return worldState.superHeros.get(superHero)
191+
return worldState.superHeroes.get(superHero)
192192
}
193193

194194

195195
export let setSuperHeroState = (worldState: worldState, superHero: superHero, superHeroState: superHeroState) => {
196196
return {
197197
...worldState,
198-
superHeros: worldState.superHeros.set(superHero, superHeroState)
198+
superHeroes: worldState.superHeroes.set(superHero, superHeroState)
199199
}
200200
}
201201
```
@@ -291,10 +291,10 @@ World
291291
```ts
292292
export let update = (worldState: worldState): worldState => {
293293
return {
294-
normalHeros: worldState.normalHeros.map(normalHeroState => {
294+
normalHeroes: worldState.normalHeroes.map(normalHeroState => {
295295
return NormalHero.update(normalHeroState)
296296
}),
297-
superHeros: worldState.superHeros.map(superHeroState => {
297+
superHeroes: worldState.superHeroes.map(superHeroState => {
298298
return SuperHero.update(superHeroState)
299299
})
300300
}
@@ -359,15 +359,15 @@ export let loop = (worldState, [update, renderOneByOne, renderInstances]) => {
359359
World
360360
```ts
361361
export let renderOneByOne = (worldState: worldState): void => {
362-
worldState.superHeros.forEach(superHeroState => {
362+
worldState.superHeroes.forEach(superHeroState => {
363363
console.log("OneByOne渲染 SuperHero...")
364364
})
365365
}
366366

367367
export let renderInstances = (worldState: worldState): void => {
368-
let normalHeroStates = worldState.normalHeros
368+
let normalHeroStates = worldState.normalHeroes
369369

370-
console.log("批量Instance渲染 NormalHeros...")
370+
console.log("批量Instance渲染 NormalHeroes...")
371371
}
372372
```
373373

@@ -385,17 +385,17 @@ export let renderInstances = (worldState: worldState): void => {
385385
更新SuperHero
386386
OneByOne渲染 SuperHero...
387387
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}}}
390390
```
391391

392392
首先进行了初始化;
393393
然后更新了所有的人物,包括两个普通英雄和两个超级英雄;
394394
然后依次渲染了2个超级英雄,以及一次性批量渲染了所有的普通英雄;
395395
最后打印了WorldState
396396

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值,所以每次打印时值都不一样
399399

400400

401401

@@ -841,7 +841,7 @@ export let renderInstances = (worldState: worldState): void => {
841841
return hasInstanceComponent(gameObjectState)
842842
})
843843

844-
console.log("批量Instance渲染 NormalHeros...")
844+
console.log("批量Instance渲染 NormalHeroes...")
845845
}
846846
```
847847

@@ -858,7 +858,7 @@ export let renderInstances = (worldState: worldState): void => {
858858
更新PositionComponent
859859
OneByOne渲染 SuperHero...
860860
OneByOne渲染 SuperHero...
861-
批量Instance渲染 NormalHeros...
861+
批量Instance渲染 NormalHeroes...
862862
{"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}}}
863863
```
864864

@@ -1465,7 +1465,7 @@ export let render = (worldState: worldState): void => {
14651465
return hasInstanceComponent(worldState.instanceComponentManagerState, gameObject)
14661466
})
14671467

1468-
console.log("批量Instance渲染 NormalHeros...")
1468+
console.log("批量Instance渲染 NormalHeroes...")
14691469
}
14701470
```
14711471

@@ -1483,7 +1483,7 @@ RenderInstancesSystem则是获得所有挂载InstanceComponent组件的gameObjec
14831483
更新PositionComponent: 3
14841484
OneByOne渲染 SuperHero...
14851485
OneByOne渲染 SuperHero...
1486-
批量Instance渲染 NormalHeros...
1486+
批量Instance渲染 NormalHeroes...
14871487
{"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}}}
14881488
```
14891489

0 commit comments

Comments
 (0)