答案 0 :(得分:1)
您应该检查GnomeGames中已经完成的操作:
Get the code并了解他们是如何做到的。似乎他们渲染了每张卡片: 例如,在Aisleriot源代码中,在game.h中,您可以定义一个存储一个插槽的所有卡的ArSlot结构。在那里,你可以看到它们定义了“扩展”联合,它只是定义卡片之间的偏移量。
因此,如果您想创建一堆卡片,您可以绘制它们中的每一个,或者如果您认为它太慢,只需绘制一些具有一个或两个像素的随机偏移的卡片,然后绘制最后一个顶部的卡片:使用此算法,您的堆卡看起来像一堆,并且可以快速在屏幕上呈现。
答案 1 :(得分:0)
不幸的是,GTK +中没有包含显示堆叠卡片的小部件,所以你必须自己写一个。你应该使用GtkDrawingArea(最好是通过子类化它),并在expose_event
信号的处理程序中做你的绘图。要绘制你可以使用更基本的普通GDK,或者使用Cairo,这是更灵活的绘图库(无论如何,开放是由GTK +使用的,所以它不是额外的依赖。如果你想要更多,你甚至可以使用OpenGL(然后你必须使用GtkGlExt库。)
GTK Tutorial有一章专门用于创建自己的小部件。