c++ - 如何在 C++ 代码之上使用标准 Xcode GUI
问题描述
我有一本书为游戏开发者教授物理。该代码是通用的 C 风格代码。但是,这些示例使用 GUI 与代码交互(变量初始化、启动条件等)。GUI 代码没有实现,留给读者。理想情况下,在我的 MAC 上,我想使用 Xcode 中的 GUI 构建器来构建这些小界面,然后使用 GUI 运行代码。但是,我不想用 Swift 或 Objective-C 编写物理代码,我只想用 C++ 编写代码,以便将代码转移到工作中(这是 Windows 并使用 Visual Studios)。如果有人可以向我指出一个资源的方向,该资源解释了如何让 MAC GUI 调用 C++ 代码并在 Xcode 中完成这一切,那就太好了。
我已经进行了一些搜索,但我认为我没有使用正确的术语来获得正确的结果。
解决方案
这是非常广泛的。
一般原则是将物理代码放在自己的一组可移植 C++ 文件中。常规 C++ 和标头。基本结构暴露,可能暴露 std:: 容器但保持通用。
除此之外,在 xcode 中使用 UI 构建器,但只在您编写的代码中引用物理代码。这看起来像:
nice_physics.cpp
// portable code here
nice_physics.h
class NicePhysic
{
public:
int nice_function(float);
};
品牌名称_ui.cpp
// hook generated by your IDE
UGLY_DECL_TYPE UGLY_MACRO valueChanged(UGLY_TYPE i)
{
NicePhysic phys; // move this object to wherever the UI system you use allows it
// make whatever calls you need to your physics system
phys.nice_function(0.5);
}
推荐阅读
- docker - Nuxtjs 和 Docker:包文件已复制但仅部分安装?
- gdb - 具有优化二进制的多线程应用程序中 zmq 库中的核心转储
- c# - 将 Vector2Int 转换为 Vector3
- reactjs - 使用 Typescript 渲染 react antd 树不返回任何数据
- git - 推送标签上触发的 Github Action,删除标签并再次推送后会触发,但会使用旧版本的代码
- vue.js - VueJS Ecountering nextTick:IE中的“错误:无效参数”
- c - 如何使用简单的 Daemon C 代码在 Ubuntu 16.10 中启动 systemctl 服务
- apache-spark - 如何将 Spark DataFrame 并行推送到 ElasticSearch
- ajax - 更新 p:dialog 会清除同一对话框中的 p:message
- php - php - 如何防止 echo ¯ 创建¯ 字符,