File tree 1 file changed +4
-4
lines changed
1 file changed +4
-4
lines changed Original file line number Diff line number Diff line change 1
1
更新方法
2
2
========================
3
3
4
- # 目标
4
+ # 目的
5
5
6
6
通过对所有对象实例同时进行帧更新来模拟一系列相互独立的游戏对象。
7
7
@@ -117,7 +117,7 @@ while (true)
117
117
118
118
游戏循环维护一个动态对象集合,这使得向关卡里添加或移除对象十分便捷——只要往集合里增加或移除就好。问题已解决,我们甚至可以将关卡文件用某种文件格式存储,以供我们的关卡设计师们使用。
119
119
120
- # 更新方法模式
120
+ # (更新方法)模式
121
121
122
122
游戏世界维护一个对象集合。每个对象实现一个更新方法来在每帧模拟自己的行为。而游戏循环在每帧对集合中所有的对象调用其更新方法以实现同步的游戏世界更新。
123
123
@@ -223,7 +223,7 @@ for (int i = 0; i < numObjects_; i++)
223
223
224
224
> 假如在更新循环中你加入了多线程,采用延迟修改的方法较好,因为这可以避免更新期间线程同步带来的巨大开销。
225
225
226
- # 例子
226
+ # 示例
227
227
228
228
这一模式十分浅显,从例子里我们就能看出其要点。这并不意味着它没用,而正因为它的简单才使得它好用——它是一个简明而不加任何修饰的解决方案。。但为了更具体地阐明此方法,我们还是来看一个基本的实现例子。让我们从这个代表着骷髅和雕像的Entity类来开始吧:
229
229
@@ -435,7 +435,7 @@ void Skeleton::update(double elapsed)
435
435
436
436
现在,骷髅移动的距离随着时间间隔而增长。你同样能看到处理变时步长时额外增加的复杂度。骷髅可能在很长的时间差下超出其巡逻范围,我们需要小心地对这一情况进行处理。
437
437
438
- # 设计的一些考虑
438
+ # 设计决策
439
439
440
440
这样一个简单的设计模式,并无太多可选项。但它也仍有选择的余地~
441
441
You can’t perform that action at this time.
0 commit comments