将图像设置为 DrawingArea 的背景

Set an image as a background for a DrawingArea

我正在使用 gtkmm 和 cairo 开发一款平台游戏,但我找不到将图像设置为背景的方法,因此我不必在每次绘制事件时都重新绘制它。我正在将图像作为 pixbufs 进行管理。 这真的可能吗,还是我想错了?

重绘事件总是必要的。区别在于谁必须照顾他们。开罗等较低级别的图书馆要求您这样做。

也许你应该研究一下 Goocanvas。特别是对于您必须轻松移动事物并捕捉事件的游戏,比 Cairo 更高级别的库会很方便。 GooCanvas 还处理屏幕重绘。

你可以直接用GooCanvasImage把图片放进去,不用管它。

如果您不受 C++ 的束缚,那么请查看 PyGame for Python - 它不仅处理这些事件,还提供大量用于游戏编程的其他工具。