Skip to content

Commit 0d42161

Browse files
committedOct 21, 2014
Update 03.3-Update Method.md
1 parent 006da46 commit 0d42161

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed
 

‎03.3-Update Method.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
更新方法
22
========================
33

4-
# 目标
4+
# 目的
55

66
通过对所有对象实例同时进行帧更新来模拟一系列相互独立的游戏对象。
77

@@ -117,7 +117,7 @@ while (true)
117117
118118
游戏循环维护一个动态对象集合,这使得向关卡里添加或移除对象十分便捷——只要往集合里增加或移除就好。问题已解决,我们甚至可以将关卡文件用某种文件格式存储,以供我们的关卡设计师们使用。
119119

120-
# 更新方法模式
120+
# (更新方法)模式
121121

122122
游戏世界维护一个对象集合。每个对象实现一个更新方法来在每帧模拟自己的行为。而游戏循环在每帧对集合中所有的对象调用其更新方法以实现同步的游戏世界更新。
123123

@@ -223,7 +223,7 @@ for (int i = 0; i < numObjects_; i++)
223223

224224
> 假如在更新循环中你加入了多线程,采用延迟修改的方法较好,因为这可以避免更新期间线程同步带来的巨大开销。
225225
226-
# 例子
226+
# 示例
227227

228228
这一模式十分浅显,从例子里我们就能看出其要点。这并不意味着它没用,而正因为它的简单才使得它好用——它是一个简明而不加任何修饰的解决方案。。但为了更具体地阐明此方法,我们还是来看一个基本的实现例子。让我们从这个代表着骷髅和雕像的Entity类来开始吧:
229229

@@ -435,7 +435,7 @@ void Skeleton::update(double elapsed)
435435

436436
现在,骷髅移动的距离随着时间间隔而增长。你同样能看到处理变时步长时额外增加的复杂度。骷髅可能在很长的时间差下超出其巡逻范围,我们需要小心地对这一情况进行处理。
437437

438-
# 设计的一些考虑
438+
# 设计决策
439439

440440
这样一个简单的设计模式,并无太多可选项。但它也仍有选择的余地~
441441

0 commit comments

Comments
 (0)
Please sign in to comment.