在不同平台上绘制像素到屏幕上的方法

5
简而言之:我想以最基本的方式在屏幕上显示像素数据,同时保持跨平台兼容性。
我知道之前有类似的问题被问过,但它们似乎没有朝着我所寻找的方向发展。
基本上,我正在制作自己的小型游戏库,我打算用它来制作自己的2D像素艺术游戏。所有像素处理都由我自己负责,现在我一直在寻找绝对最小化的解决方案,用于建立一个窗口、监听其事件(鼠标、键盘、窗口事件)并将我的像素绘制到它上面。如果该库可以处理线程和/或音频,那就更好了。
目前,我不需要OpenGL支持,也不确定以后会不会需要。实际上,除了上述提到的功能,我真的不需要任何其他功能。我应该自己挖掘Windows、X11和OSX API,还是有一个真正极简的框架可供使用?制作自己的跨平台极简框架是否真的很费力?如果这不是一个大问题,出于纯粹的好奇心,我可能会考虑这个解决方案。
如果您对制作自己的框架和寻找有用工具有任何见解,我愿意倾听。
谢谢!

SDL怎么样?有几个GUI库适用于它,比如Cegui。 - Kerrek SB
你的问题有点令人困惑。你是在寻找一种本地跨平台GUI框架(例如QT)还是可以插入渲染器的东西(例如Cegui或TWL)? - David Titarenco
嗯,我猜这并不奇怪,只是有点困惑。我不太确定如何描述我的问题。基本上,我想以最基本的方式在屏幕上显示像素信息,同时又不放弃跨平台兼容性。我会看看Cegui和TWL。谢谢。 - Emanuel
使用SDL或Allegro。在OpenGL中使用纹理四边形也是处理图形的一种选择,但你需要额外的库来处理键盘/鼠标等操作。 - ninjalj
1个回答

11

最完整而简单的库是SDL。它跨越Windows、Mac、Linux等平台。使用它,您可以:

  • 创建游戏窗口(或将游戏全屏)
  • 处理键盘和鼠标事件
  • 访问单个像素(添加SDL_Draw以获取绘制像素、线条、圆形等函数)
  • 播放音效
  • 播放背景音乐
  • 线程函数
  • 支持OpenGL,如果您意识到需要。

请注意,通过直接寻址单个像素来处理绘图可能不会在游戏很复杂时获得良好的性能。我建议保持对OpenGL和硬件加速这个美妙世界的探索之门敞开。


1
在寻找了很多解决方案后,我发现这是更好的解决方案。感谢大家的时间! - Emanuel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接