繁体   English   中英

如何仅使用 GTK3、C 和 Cairo 制作基本动画

[英]How to do basic animation with GTK3,C and Cairo only

假设我有一个 GTK 窗口,其中有一个绘图区域和一个按钮。

  1. 当应用程序运行时,它会显示球。
  2. 当按下按钮时,它将开始从一侧弹跳到另一侧。
  3. 当再次按下按钮时,它停止弹跳。

此外,该窗口还会在左下角(绘图区域内)显示球的当前 XY 坐标。

我只想使用CGTK3CAIRO

我在谷歌上搜索并找到了一个动画示例,而不是 GTk3,而是 GTK 的先前版本。 这些不适用于 GTK3。 我还阅读了 CAIRO 的官方、zetecode 的教程和其他一些网站。 我没有找到任何解决我的问题的方法。

我知道如何用 OpenGL 做到这一点,这很容易,但我不能对 CAIRO 和 GTK3 应用相同的逻辑。 请不要建议使用 GtkGlExt。 不想使用它。

这里有个注释(即使您没有显示一些代码):这些年来,cairo开发人员一直在努力使其代码兼容。 正如我在cairo-doc上引用的那样:“始终保证从发行版到任何更高版本(发行版,快照,开发)的兼容性。”

到目前为止(我所知道的),开罗只有6个主要版本。 与gtk中的cairo的交互是由Gdk完成的,根据您尝试执行的操作,代码(谷歌搜索)我想它将仅包含GtkDrawingArea,cairo_t,cairo_arc,cairo_move_to,GtkButton(带有2个GCallbacks)和一些gdk -cairo交互函数,gtk_widget_translate_coordinates(),GRand / random()和循环。 这些项目从Gtk + 2.0开始就存在,并且现在仍然存在。 如果代码不起作用,请尝试删除“坐标小部件”部分(可能使用自定义GtkWidget)。 尝试将坐标放置在GtkDrawingArea之外(即GtkWindow);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM