c++ - 我应该在游戏中使用引用还是按值传递常用数组 [C++]

标签 c++ optimization parameter-passing

这真的很简单,我想我只是想得到一些反馈。

长话短说,我是一个 super 新手编程,最近(大约 6 个月前)我开始做一些游戏编程,而且进展顺利。我可以让一切正常工作,所以这不是我的问题。相反,这与传递对象有关。

几乎我在游戏循环中多次传递相同的对象或变量。因此,对于相机,相机用于绘制所有对象。因此,首先将相机传递给容器对象(就像绘制动画帧一样,动画对象包含帧),然后传递给单个对象,然后进行绘制。现在,这最多只能通过相机 3 次,所以不用担心。

更令人担忧的是类似的多次传递,但具有构成 map 的瓷砖阵列。首先,数组被传递给玩家或敌人的“更新”函数,然后传递给单独的移动和输入函数以检查碰撞,并在这些函数中传递给碰撞检测函数。所以无论如何,几乎发生的事情是对象(在这种情况下,大约 100~1000 个图 block 的数组)在每个游戏循环中被传递 4-5 次。所以我只是想知道我是否应该只使用常量引用而不是一遍又一遍地传递它。

非常小的开销问题,我想我知道答案,但我不想更改所有这些功能只是为了发现我让应用程序变得更慢(不是因为它以大约 800 fps 的速度运行,对吧现在)。

最佳答案

如果您可以修改您的编程风格以包含使您的代码性能更好的技术,而无需在维护或可读性方面付出任何代价,那么您绝对应该这样做。

除此之外,优化应仅限于您知道需要它的情况,因为您实际上已经测量了您的性能并发现它存在不足。

关于c++ - 我应该在游戏中使用引用还是按值传递常用数组 [C++],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196780/

相关文章:

Java:如何根据输入引用类变量?

c# - 参数可以是常量吗?

c++ - 表达式无法识别函数c++中的指针

c++ - 如何通过 QSslSocket 分别发送两个字节?

python - 贝叶斯随机最优控制,MCMC

java - 是否最好预先计算 for 循环的条件语句部分?

c++ - 在 C++ 中将内存分配给 char*

c++ - 以编程方式确定我正在运行的发行版

iphone - 绘图线的优化,CAShapeLayer 的可能替代品

c++ - 解析一个位域参数,如何解析unsigned long中的 "discard"位?