编译完clutter之后,需要写一个hello world。这里我参考了资料1,具体的流程如下:
在源代码目录下创建目录myapp,同时创建文件example.c,加入如下代码:
#include#include// six empty rectangles and our stageClutterActor *stage = NULL;ClutterActor *rect1 = NULL;ClutterActor *rect2 = NULL;ClutterActor *rect3 = NULL;ClutterActor *rect4 = NULL;ClutterActor *rect5 = NULL;ClutterActor *rect6 = NULL;// the create_rect() function needs to create actual rectangles rather than text boxesClutterActor *create_rect(ClutterColor col) {ClutterActor *rect = clutter_rectangle_new_with_color(&col);clutter_actor_set_size(rect, 256, 128);clutter_actor_set_position(rect, 256, 256);clutter_actor_set_anchor_point(rect, 128, 64);clutter_container_add_actor (CLUTTER_CONTAINER (stage), rect);clutter_actor_show (rect);return rect;}void move_rect(ClutterActor *rect) {clutter_actor_animate (rect,// CLUTTER_LINEAR, // animate in linearCLUTTER_EASE_IN_OUT_BACK, // animate like iphone500,"x", (float)(rand() % 512),"y", (float)(rand() % 512),"rotation-angle-z", (float)(rand() % 360),NULL);}// we'll be filling in this function latervoid on_stage_button_press (ClutterStage *stage, ClutterEvent *event, gpointer data) {move_rect(rect1);move_rect(rect2);move_rect(rect3);move_rect(rect4);move_rect(rect5);move_rect(rect6);}int main(int argc, char *argv[]) {ClutterColor stage_color = { 0, 0, 0, 255 };ClutterColor red = { 255, 0, 0, 128 };ClutterColor green = { 0, 255, 0, 128 };ClutterColor blue = { 0, 0, 255, 128 };ClutterColor yellow = { 255, 255, 0, 128 };ClutterColor cyan = { 0, 255, 255, 128 };ClutterColor purple = { 255, 0, 255, 128 };clutter_init (&argc, &argv);stage = clutter_stage_get_default();clutter_actor_set_size (stage, 512, 512);clutter_stage_set_color (CLUTTER_STAGE(stage), &stage_color);rect1 = create_rect(red);rect2 = create_rect(green);rect3 = create_rect(blue);rect4 = create_rect(yellow);rect5 = create_rect(cyan);rect6 = create_rect(purple);g_signal_connect (stage, "button-press-event", G_CALLBACK (on_stage_button_press), NULL);clutter_stage_set_title(CLUTTER_STAGE(stage), "Spinny boxes ahoy!");clutter_actor_show (stage);clutter_main ();return EXIT_SUCCESS;}
然后,在msys控制台下,切换到myapp目录执行如下命令
libtool --mode=link gcc -Wall -g -o example.exe example.c /-I/clutter-work/clutter-cross/include /`PKG_CONFIG_PATH=/clutter-work/clutter-cross/lib/pkgconfig pkg-config clutter-win32-1.0 --cflags --libs`
这样会生成example.exe,执行以下,效果不错吧。具体细节参考参考资料1。
源代码目录下有参考文档,位于clutter-1.2.12/doc/reference目录下。
参考资料:
Clutter初学者教程
本文介绍了如何使用Clutter图形库创建一个简单的六边形动画应用。通过实例代码演示了从项目搭建、图形创建到动画实现的全过程,并提供了编译及运行指导。
3

被折叠的 条评论
为什么被折叠?



