我正在使用sfml来编写游戏,我认为,因为我在Xcode工作,我会制作一个Mac版本和一个Windows版本。在mac verision中,我认为利用NSMenu制作游戏菜单会更好。这是我到目前为止在一个名为main.mm的文件中尝试过的:
#include <iostream>
#import <AppKit/AppKit.h>
void Launch()
{
NSMenu* menu = [[NSMenu alloc] initWithTitle:@"string"];
}
int main()
{
std::cout << "Mac main\n";
Launch();
}
代码无法编译。 Xcode没有在代码本身中显示任何错误。知道为什么这不起作用吗?
答案 0 :(得分:1)
您必须{main} return
。此外,如果您使用的是AppKit,则应调用NSApplicationMain()
。对于游戏,这意味着您使用C ++编写游戏,并从Objective-C类调用C ++代码。
int main(int argc, char **argv)
{
std::cout << "Mac main\n";
return NSApplicationMain(argc, argv);
}
要调用您的C ++代码,我将创建一个应用程序委托并从-applicationDitFinishLaunching:
启动您的C ++代码。您可以在主nib文件和菜单中创建应用程序委托。
我不知道如何与SFML集成。我要么使用NSMenu
和AppKit,要么使用SFML并避免使用Objective C.。