wxWidgets 和基于循环的应用程序
我的 wxWidgets 应用程序(游戏编辑器)与游戏库交互,该游戏库应在基于循环的方法中使用。游戏库有一个方法 mainLoop(),每秒被调用 N 次。游戏编辑器 UI 允许用户执行可以更改游戏库状态的操作。我想避免在调用 mainLoop() 时发生这种情况。仅当 mainLoop() 方法“运行”时,用户才应该能够更改游戏库的状态(添加或删除内容等)。
我该怎么做?游戏编辑器是为 Windows 平台编写的。我见过一个名为 wxEventLoopBase 的类,但我没有找到任何有用的东西(代码示例)。
My wxWidgets app (a game editor) interfaces with a game lib that should be used in a loop-based approach. The game lib has a method, mainLoop(), to be called N times per second. The game editor UI allow the users to do things that can change the state of the game lib. I want to avoid that this happens when the mainLoop() is called. Users should be able to change the state of the game lib (adding-removing things and so on) only when the mainLoop() method is 'running'.
How can i do this? The game editor is written for Windows platforms. I have seen a class called wxEventLoopBase, but i have not found anything useful about it (code examples).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以查看 wxTimer ,您可以在其中每隔几毫秒指定一个计时器回调,或者查看实现一个 OnIdle 方法,您可以在其中调用当没有任何 GUI 事件要处理时的主循环。
You might look at wxTimer where you can specify a timer callback every so many milliseconds or look at implementing an OnIdle method where you can call the mainloop when there are not any GUI events to process.