我一直在玩杂乱无章的游戏,对如何与演员和儿童演员合作感到有点困惑。让我们从一个简单的例子开始,这个例子给我带来了一些困惑。我创建了两个Clutter::矩形(使用Cluttermm绑定),并使第二个成为第一个的子级:
Glib::RefPtr<Clutter::Rectangle> rect = Clutter::Rectangle::create();
rect->set_color(Clutter::Color(255, 0, 0, 255));
rect->set_size(100, 100);
rect->set_position(500,500);
rect->show();
stage->add_actor(rect);
Glib::RefPtr<Clutter::Rectangle> rect2 = Clutter::Rectangle::create();
rect2->set_color(Clutter::Color(0, 255, 0, 255));
rect2->set_size(100, 100);
rect2->set_position(0,0);
rect2->set_parent(rect);
rect2->show();据我所知,这应该使两个矩形可见,但rectangle2不是。尽管它是第一个矩形的父类,但在哪里都找不到它。为什么会这样呢?set_parent()的真正含义是什么?
这种困惑更深一层。今天早些时候,我试图编写一个更复杂的复合参与者,它由许多参与者(例如矩形等)组成。虽然这项任务在视觉上是成功的,但在尝试将事件回调附加到这些子角色时,我遇到了严重的困难--事实上,据我所知,事件永远不会到达父角色的孩子。
这让我非常困惑。例如,如何使用clutter创建按钮框?您是必须创建自己的参与者检测/事件管理系统,还是通过将子参与者而不是实际的父参与者添加到舞台来将事件回调连接到子参与者的唯一方法?
这让我非常困惑,考虑到目前缺乏文献,任何帮助都将不胜感激!
发布于 2012-05-29 18:33:49
矩形不是容器:您不能将孩子添加到容器中;或者,至少可以将参与者的父级设置为非容器参与者,但该参与者不会被绘制-这很可能不是您想要的。
您应该使用容器参与者并将矩形添加到该容器中。
但是,这对于Clutter≤1.8是有效的;在当前稳定版本的Clutter (1.10)中,有各种变化:
Clutt1.10取代了大部分已被弃用的them.
ClutterActor的应用编程接口参考应该对这个问题有一些启发:
http://developer.gnome.org/clutter/stable/ClutterActor.html
https://stackoverflow.com/questions/10779964
复制相似问题