游戏编程模式------套路

https://blog.csdn.net/lhcmt1/article/details/80601414  //原文

https://gpp.tkchu.me/behavioral-patterns.html  //博客

一:序列模式:

1. 双缓冲模式

工作原理:

   例如计算机的渲染系统。一帧代表显卡读取的帧,一帧代表显卡写入的帧。

何时使用:

  可能有可见的错误(撕裂之类的)或者行为不正确。   

  • 我们需要维护一些被增量修改的状态。
  • 在修改到一半的时候,状态可能会被外部请求。
  • 我们想要防止请求状态的外部代码知道内部的工作方式
  • 我们想要读取状态,而且不想等着修改完成。

注意点:

  <1. 交换需要时间,而且交换时,没有代码可以接触到任何一个状态。

  <2. 耗费内存。

2. 游戏循环----//?

将游戏的进行和玩家的输入解耦,和处理器速度解耦。

1. 注意:

例如:

<1. 假设有一颗子弹跨过屏幕:   float有四舍五入偏差,同样的浮点数。每次两个浮点数相加,时间越长,偏差越大,使得最终子弹移动后的位置在性能高/低手机上的位置是不一样的。

<2. 游戏物理引擎做的是实际机制法则的近似。 比如一些阻尼运算被小心的安排成以固定时间间隔运行。

追逐时间

游戏中渲染通常不会被动态时间间隔影响到。 利用这点。 以固定的时间间隔更新游戏,因为这让所有事情变得简单,物理和AI也更加稳定。 

我们将渲染拉出了更新循环。 这释放了一大块CPU时间。 最终结果是游戏以固定时间步长模拟,该时间步长与硬件不相关。 只是使用低端硬件的玩家看到的内容会有抖动。

如何管电量消耗?

减少GPU

3. 更新方法

通过每次处理一帧的行为模拟一系列独立对象。

二、行为模式

模式

本章的模式有助于快速定义和完善大量的行为。

类型对象定义行为的类别而无需完成真正的类。 

子类沙盒定义各种行为的安全原语。

字节码,最先进,将行为从代码中分离,放入数据文件中。

字节码

指令集 定义了可执行的底层操作。 一系列的指令被编码为字节序列。 虚拟机 使用 中间值栈 依次执行这些指令。 通过组合指令,可以定义复杂的高层行为。

子类沙盒

用一系列由基类提供的操作定义子类中的行为。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Debug_horizon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值