我已经使用C ++创建了一个gameboy颜色模拟器,并准备开始开发前端,该前端将显示模拟器的视口,发出音频,并显示一些调试信息。
我正在研究使用Kivy来创建UI前端和boost.python(看起来非常有前途)来在C ++核心和python UI之间进行交互。
我希望在我的前端拥有:
Kivy会允许我做这一切吗?我看到它依赖于glew和sdl2,这应该照顾图形和音频要求,对吧?是否有可以让我创建反汇编和内存查看器的小部件?
答案 0 :(得分:1)
显示模拟器图形的窗口,在每个帧上更新原始位图
不确定究竟是多少,但是你可以通过Kivy和Python访问纹理和OpenGL的很大一部分,所以这可能是可行的。
显示一些调试信息的窗口,大型可滚动文本框
使用RecycleView和Label的核心。 ListView有一个例子,但是由于新的更改它有点破碎。但是,以类似的方式可以为RecycleView
完成发出由模拟器生成的音频的方法
如果可以将其传递给提供者,应该没有问题。我在Kivy中看到内置音频支持的唯一问题是暂停和搜索,因为那些afaik未实现(最有可能)或被破坏。但是对于Gstreamer它应该可以工作。
接受键盘输入以控制游戏。
键盘和多点触控开箱即用Kivy,你只需要(用于键盘)扩展一个方法和(用于触摸)检查与小部件的碰撞
是否有可以让我创建反汇编和内存查看器的小部件?
没有。至少我所知道的都不会开箱即用。如果通过反汇编表示文本,则将其转储到可以处理文本的小部件中。然而,内存查看器不存在,您需要创建自己的小部件。如果你和Kivy一起工作至少一段时间并不难。
Kivy默认不做3D。有“插件”可以允许你这样的事情,但我没有看到任何仍然保持,所以有这个东西。另外我看到代码不是C,而是C ++所以我不确定如何将它们绑定在一起。 Cython应该是这里的救援^^