Skip to content

Commit fd0f5f2

Browse files
committed
feat(积木模式): finish update
1 parent 468b9e9 commit fd0f5f2

File tree

29 files changed

+669
-54
lines changed

29 files changed

+669
-54
lines changed

packages/ECS模式/article.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1583,16 +1583,22 @@ worldState的positionComponentManagerState的positions有3个连续的值是2、
15831583

15841584
我们来看看模式的相关角色:
15851585

1586-
总体来看,分为五个部分:用户、World、System层、Manager层、Component+GameObject层,它们的依赖关系是用户依赖World,World依赖System层,System层依赖Manager层,Manager层依赖Component+GameObject层
1586+
总体来看,分为用户、World、System层、Manager层、Component+GameObject层五个部分,它们的依赖关系是用户依赖World,World依赖System层,System层依赖Manager层,Manager层依赖Component+GameObject层
15871587

15881588

15891589
System层负责实现行为的逻辑
15901590
Manager层负责管理场景数据,即管理GameObject和组件的数据
15911591
Component+GameObject层为组件和GameObject,它们现在只是有一个number类型的数据的值对象
15921592

15931593

1594+
我们看下用户这个部分:
1595+
1596+
- Client
1597+
该角色是用户
1598+
1599+
15941600

1595-
我们看下World这一层
1601+
我们看下World这个部分
15961602

15971603
- World
15981604
该角色是门户,提供了API,实现了初始化和主循环的逻辑

packages/积木模式/article.md

Lines changed: 84 additions & 50 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<mxfile host="Electron" modified="2023-05-03T06:56:58.155Z" agent="5.0 (Macintosh; Intel Mac OS X 11_4_0) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="w_isb2KpPI6H8DxJOSv0" version="14.6.13" type="device"><diagram id="ALCwJFILAu1DAOGFF905" name="第 1 页">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</diagram></mxfile>
1+
<mxfile host="Electron" modified="2023-05-13T00:39:28.335Z" agent="5.0 (Macintosh; Intel Mac OS X 11_4_0) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="kJu9An2krnSiWgt9_4mN" version="14.6.13" type="device"><diagram id="ALCwJFILAu1DAOGFF905" name="第 1 页">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</diagram></mxfile>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<mxfile host="Electron" modified="2023-05-12T00:39:48.664Z" agent="5.0 (Macintosh; Intel Mac OS X 11_4_0) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="wHKlPWp1XyZeSRkr5dv7" version="14.6.13" type="device"><diagram id="_nywk-HueDYWiFCjRjqK" name="第 1 页">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</diagram></mxfile>
1+
<mxfile host="Electron" modified="2023-05-13T00:26:33.246Z" agent="5.0 (Macintosh; Intel Mac OS X 11_4_0) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="DgT20sMBGmdVDoOSKgOB" version="14.6.13" type="device"><diagram id="_nywk-HueDYWiFCjRjqK" name="第 1 页">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</diagram></mxfile>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
.DS_Store
2+
.merlin
3+
.idea/
4+
.vscode/
5+
jest_0/
6+
reference/
7+
node_modules/
8+
mine/
9+
ocaml/
10+
11+
lib/bs/
12+
13+
coverage
14+
15+
dist/
16+
17+
npm-debug
18+
19+
.bsb.lock
20+
21+
yarn.lock
22+
23+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"name": "director_block_implement",
3+
"version": "0.0.1",
4+
"scripts": {
5+
"watch": "tsc -w -noEmit",
6+
7+
"webpack:dev-server": "NODE_ENV=development webpack-dev-server --open 'Chrome' --config webpack.config.devserver.js"
8+
},
9+
"devDependencies": {
10+
"typescript": "^4.2.3",
11+
"ts-node": "^10.9.1"
12+
}
13+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export type dependentBlockProtocolNameMap = {
2+
sceneManagerBlockProtocolName: string,
3+
renderBlockProtocolName: string
4+
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import { getBlockService as getBlockServiceBlockManager, createBlockState as createBlockStateBlockManager, getDependentBlockProtocolNameMap as getDependentBlockProtocolNameMapBlockManager, api, state as blockManagerState, blockProtocolName } from "block_manager/src/BlockManagerType"
2+
import { service as directorService } from "director_block_protocol/src/service/ServiceType"
3+
import { service as renderService } from "render_block_protocol/src/service/ServiceType"
4+
import { state as renderState } from "render_block_protocol/src/state/StateType"
5+
import { service as sceneManagerService } from "sceneManager_block_protocol/src/service/ServiceType"
6+
import { dependentBlockProtocolNameMap } from "./DependentMapType"
7+
8+
//假实现
9+
let requestAnimationFrame = (func) => {
10+
}
11+
12+
let _loop = (api: api, blockManagerState: blockManagerState, sceneManagerBlockProtocolName: blockProtocolName, renderBlockProtocolName: blockProtocolName) => {
13+
//依赖于SceneManager Block Protocol来调用SceneManager Block的服务的update函数
14+
let sceneManagerService = api.getBlockService<sceneManagerService>(blockManagerState, sceneManagerBlockProtocolName)
15+
16+
blockManagerState = sceneManagerService.update(blockManagerState)
17+
18+
//依赖于Render Block Protocol来调用Render Block的服务的render函数
19+
let renderService = api.getBlockService<renderService>(blockManagerState, renderBlockProtocolName)
20+
21+
blockManagerState = renderService.render(blockManagerState)
22+
23+
requestAnimationFrame(
24+
(time) => {
25+
_loop(api, blockManagerState, sceneManagerBlockProtocolName, renderBlockProtocolName)
26+
}
27+
)
28+
}
29+
30+
export let getBlockService: getBlockServiceBlockManager<
31+
dependentBlockProtocolNameMap,
32+
directorService
33+
> = (api, { sceneManagerBlockProtocolName, renderBlockProtocolName }) => {
34+
return {
35+
init: (blockManagerState) => {
36+
//依赖于SceneManager Block Protocol来调用SceneManager Block的服务的init函数
37+
let sceneManagerService = api.getBlockService<sceneManagerService>(blockManagerState, sceneManagerBlockProtocolName)
38+
39+
blockManagerState = sceneManagerService.init(blockManagerState)
40+
41+
//依赖于Render Block Protocol来调用Render Block的服务的init函数
42+
let renderService = api.getBlockService<renderService>(blockManagerState, renderBlockProtocolName)
43+
44+
blockManagerState = renderService.init(blockManagerState)
45+
46+
return blockManagerState
47+
},
48+
loop: (blockManagerState) => {
49+
_loop(api, blockManagerState, sceneManagerBlockProtocolName, renderBlockProtocolName)
50+
},
51+
}
52+
}
53+
54+
export let createBlockState: createBlockStateBlockManager<
55+
renderState
56+
> = () => {
57+
return null
58+
}
59+
60+
export let getDependentBlockProtocolNameMap: getDependentBlockProtocolNameMapBlockManager = () => {
61+
return {
62+
"sceneManagerBlockProtocolName": "sceneManager_block_protocol",
63+
"renderBlockProtocolName": "render_block_protocol"
64+
}
65+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"compilerOptions": {
3+
"target": "ES6",
4+
"module": "commonjs",
5+
"moduleResolution": "node",
6+
"sourceMap": true,
7+
"resolveJsonModule": true,
8+
"esModuleInterop": true,
9+
"jsx": "react",
10+
// "noEmit": true,
11+
// "noUnusedLocals": true,
12+
// "noUnusedParameters": true,
13+
"noImplicitAny": false,
14+
"noImplicitReturns": true,
15+
"lib": [
16+
"DOM",
17+
"ESNext",
18+
],
19+
"types": []
20+
// "strict": true
21+
},
22+
"include": [
23+
"./src"
24+
]
25+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
.DS_Store
2+
.merlin
3+
.idea/
4+
.vscode/
5+
jest_0/
6+
reference/
7+
node_modules/
8+
mine/
9+
ocaml/
10+
11+
lib/bs/
12+
13+
coverage
14+
15+
dist/
16+
17+
npm-debug
18+
19+
.bsb.lock
20+
21+
yarn.lock
22+
23+

0 commit comments

Comments
 (0)