Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何正确地从C++;发动机到obj-c程序?_C++_Objective C_Coding Style_Opengl Es_Callback - Fatal编程技术网

C++ 如何正确地从C++;发动机到obj-c程序?

C++ 如何正确地从C++;发动机到obj-c程序?,c++,objective-c,coding-style,opengl-es,callback,C++,Objective C,Coding Style,Opengl Es,Callback,首先是情况: 在目标C程序中实现C++编写的引擎。准确地说,iphonexcode。它使用OpenGL绘制所有内容。它有“renderFrame”方法,每帧调用一次(大约每秒50次)。用户有许多导航到其他Objective C视图的按钮。这些按钮在C++引擎中也被绘制和处理。当用户按下其中一个时,C++引擎向按钮按下的程序发出回调(这样程序可以改变视图)。 我的工作方式是: 因为有一个“renderFrame”方法,所以每次都要返回整数值。大多数时候它是0。但当它返回其他东西时,它就有了意义。例

首先是情况:

在目标C程序中实现C++编写的引擎。准确地说,iphonexcode。它使用OpenGL绘制所有内容。它有“renderFrame”方法,每帧调用一次(大约每秒50次)。用户有许多导航到其他Objective C视图的按钮。这些按钮在C++引擎中也被绘制和处理。当用户按下其中一个时,C++引擎向按钮按下的程序发出回调(这样程序可以改变视图)。 我的工作方式是:

因为有一个“renderFrame”方法,所以每次都要返回整数值。大多数时候它是0。但当它返回其他东西时,它就有了意义。例如,如果“renderFrame”返回2,则表示按下了第二个按钮。为了处理所有这些返回值,我必须构建相当大的IFs块

因此,我的问题是:

因为我是一个新的程序员,我想知道这是一个好的方法,还是只有初级程序员才能想到的方法。这个引擎将被移植到许多其他系统,包括android甚至PC,所以我不知道我是否可以,是否应该实现其他类型的回调系统。我还想知道这是否会给我带来性能问题,以及什么是更专业的方法

另外,目前我已经实现了20多次这样的回调,一切都很好。每一帧我都能立即做出准确的反应


谢谢你的建议。

这是一个糟糕的设计,原因有很多。首先,如果发生了多个事件,会发生什么?一次点击两个按钮?你发送2+3吗?你是否忽略了一个,希望它不重要

当您需要发送的不仅仅是一个二进制事实时会发生什么?如果您想发送单击的按钮以及发生的位置,该怎么办?或者你需要传输一个数字或字符


您应该有一个回调类,类似MyGraphicsCallbacks,具有Button1Clicked(int locationX,int locationY)等函数,然后在它们各自的事件发生时调用这些函数。

如果这个问题不好,请至少告诉我原因。谢谢您的回答。尽管多点触控目前处于禁用状态,但稍后可能会启用。款式越小,越早换越好。我现在将朝着正确的方向前进。