Skip to content

Commit

Permalink
Update 03.3-Update Method.md
Browse files Browse the repository at this point in the history
  • Loading branch information
kislyl committed Oct 21, 2014
1 parent 006da46 commit 0d42161
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions 03.3-Update Method.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
更新方法
========================

# 目标
# 目的

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

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

# 更新方法模式
# (更新方法)模式

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

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

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

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

Expand Down Expand Up @@ -435,7 +435,7 @@ void Skeleton::update(double elapsed)

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

# 设计的一些考虑
# 设计决策

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

Expand Down

0 comments on commit 0d42161

Please sign in to comment.