首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Clutter API中使用子Actor

在Clutter API中使用子Actor
EN

Stack Overflow用户
提问于 2012-05-28 13:59:48
回答 1查看 354关注 0票数 0

我一直在玩杂乱无章的游戏,对如何与演员和儿童演员合作感到有点困惑。让我们从一个简单的例子开始,这个例子给我带来了一些困惑。我创建了两个Clutter::矩形(使用Cluttermm绑定),并使第二个成为第一个的子级:

代码语言:javascript
复制
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创建按钮框?您是必须创建自己的参与者检测/事件管理系统,还是通过将子参与者而不是实际的父参与者添加到舞台来将事件回调连接到子参与者的唯一方法?

这让我非常困惑,考虑到目前缺乏文献,任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2012-05-29 18:33:49

矩形不是容器:您不能将孩子添加到容器中;或者,至少可以将参与者的父级设置为非容器参与者,但该参与者不会被绘制-这很可能不是您想要的。

您应该使用容器参与者并将矩形添加到该容器中。

但是,这对于Clutter≤1.8是有效的;在当前稳定版本的Clutter (1.10)中,有各种变化:

Clutt1.10取代了大部分已被弃用的them.

  • ClutterActor -即,您应该创建Actor实例并将子代添加到default;

  • ClutterRectangle可以包含子代,它们将由painted).

  • clutter_actor_set_parent()绘制在 1.10中已被弃用,尽管其行为尚未更改(向其添加子元素不会导致这些子代为painted).
  • clutter_actor_set_parent())在1.10中也已弃用,取而代之的是更像DOM的add_child()。

ClutterActor的应用编程接口参考应该对这个问题有一些启发:

http://developer.gnome.org/clutter/stable/ClutterActor.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10779964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档