帮助需要使用GTK显示堆栈卡!

时间:2010-07-10 22:30:08

标签: c gtk

嘿,伙计们,我正在建立一个卡片游戏,显示一堆卡片(有些东西像纸牌)。我想知道你给我一些建议吗?另外,如果你可以指导我这样的教程(我已经通过了gtk doc)。

2 个答案:

答案 0 :(得分:1)

您应该检查GnomeGames中已经完成的操作:

Get the code并了解他们是如何做到的。似乎他们渲染了每张卡片: 例如,在Aisleriot源代码中,在game.h中,您可以定义一个存储一个插槽的所有卡的ArSlot结构。在那里,你可以看到它们定义了“扩展”联合,它只是定义卡片之间的偏移量。

因此,如果您想创建一堆卡片,您可以绘制它们中的每一个,或者如果您认为它太慢,只需绘制一些具有一个或两个像素的随机偏移的卡片,然后绘制最后一个顶部的卡片:使用此算法,您的堆卡看起来像一堆,并且可以快速在屏幕上呈现。

答案 1 :(得分:0)

不幸的是,GTK +中没有包含显示堆叠卡片的小部件,所以你必须自己写一个。你应该使用GtkDrawingArea(最好是通过子类化它),并在expose_event信号的处理程序中做你的绘图。要绘制你可以使用更基本的普通GDK,或者使用Cairo,这是更灵活的绘图库(无论如何,开放是由GTK +使用的,所以它不是额外的依赖。如果你想要更多,你甚至可以使用OpenGL(然后你必须使用GtkGlExt库。)

GTK Tutorial有一章专门用于创建自己的小部件。