C语言 GTK+ 上的 2D 老虎机类型动画



我在Linux下使用C和GTK编写了一个基本的老虎机模拟。老虎机是 5 个卷轴,每个卷轴有 3 个符号。为了"动画化"旋转动作,我只是使用带有 GtkImages 数组 3,5 的动画 GIF。

我想让它看起来像一个合适的老虎机,每个卷轴都有一个垂直动画。我想我需要从卷轴上的符号构建像素图或像素图,使用 g_timer_add() 更改 GtkImage 上像素图的可见部分。我是Gtk+的新手,所以如果有人有一些这种类型的动画或好的文档的简单例子,我将永远感激不尽。

谢谢。

使用 GtkDrawingArea 而不是 GtkImage,因此您可以根据需要绘制。将所有可能的图像放在垂直 PNG 图像中,就像展开卷轴一样。然后将其加载到pixbuf中,使用开罗为其创建一个表面。您只需要使用开罗绘制该大图像的一小部分,您可以通过该大图像的垂直偏移来引用该子集。使用带g_timer_add的计时器使其每秒刷新足够的帧数(计算所需的速度)。不要认为定时器回调是理所当然的,回调的触发可能会有延迟。最佳效果是通过使用 GTimer 来实现的,在您想要使卷轴旋转的时间开始,并在g_timer_add回调中,测量自启动 GTimer 以来经过的时间。这将允许您计算图像的偏移量。

最新更新