【发布时间】:2011-09-26 12:39:42
【问题描述】:
首先是情况:
Objective C 程序中实现了 C++ 编写的引擎。准确地说是 iPhone xcode。它使用 OpenGL 来绘制一切。它有“renderFrame”方法,每帧调用一次(大约每秒 50 次)。用户有许多按钮可以导航到其他 Objective C 视图。这些按钮也是在 C++ 引擎中绘制和处理的。当用户按下其中一个按钮时,C++ 引擎会向程序发送一个按钮被按下的回调(因此程序可以更改视图)。
我的工作方式:
由于有一个“renderFrame”方法,我让它每次都返回整数值。大多数时候它是0。但是当它返回别的东西时,它就有意义了。例如,如果“renderFrame”返回 2,则表示按下了第二个按钮。为了处理所有这些返回值,我必须构建大量的 IF。
所以我的问题:
由于我是一名新程序员,我想知道这是否是一种好方法,还是只有初级人才可能想出的方法。这个引擎将被移植到包括android甚至PC在内的许多其他系统上,所以我不知道我是否可以以及是否应该实现其他类型的回调系统。我也想知道这是否会给我带来性能问题以及更专业的方法。
附:目前我已经实现了 20 多个这样的回调,一切正常。我可以在每一帧中立即准确地做出反应。
感谢您的建议。
【问题讨论】:
-
如果这个问题不好,至少告诉我原因。
标签: c++ objective-c coding-style opengl-es callback