【问题标题】:Given the following information, how is my sprite on the screen?鉴于以下信息,我的精灵在屏幕上的表现如何?
【发布时间】:2012-06-21 20:41:51
【问题描述】:

我真的很难理解 cocos2d 2.0 以及它的图层和坐标是如何工作的。我有一个包含单个精灵的单层场景。以下是统计数据:

图层:位置:(0,0) 产地:(-384, -430) 尺寸:(768、860)(与视图相同) 锚点:(0.5,0.5) 忽略AnchorPointForPosition:否 规模:1.0

Sprite: 位置: (768, 860) 来源:(499.5、413.5) 尺寸:(537、893) 锚点:(0.5, 0.5)

我在层的初始化中添加精灵。

精灵是如何定位在 iPad 模拟器中的视图中心的?如果有人能帮我画一张心理图(或真实的:)),那真的很有帮助。

这张图片显示了我对展示位置的理解,它没有任何意义。 如果这是一个不好的问题或不是正确的论坛,请告诉我,我会将其移至正确的位置。

【问题讨论】:

标签: cocos2d-iphone


【解决方案1】:

锚点是节点上的相对点。 (0.f, 0.f) 对应于左下角,(1.f, 1.f) 对应于右上角。您为节点设置的位置是为锚点设置的。当然,如果它的属性isRelatieveAnchorPointYES

所以,如果锚点是(0.5f,0.5f),你设置节点的中心位置。这就是为什么您的图层以其中心放置在世界坐标的 (0.f, 0.f) 中的原因。

但是内部坐标总是从当前节点的 (0.f, 0.f) 开始计算。因此,如果您使用精灵的锚点 (0.5, 0.5f) 将精灵添加到 (768.f, 860.f),精灵的中心将定位到相对于父图层原点的坐标。

我希望我描述得足够清楚 =)

【讨论】:

  • 换句话说:节点位置(通常)相对于其父位置。
  • 是的,我不认为场景是基础节点。所以在我的例子中,图层位于左下角并以该位置为中心。所以当我在图层的左上角添加精灵并将精灵放在它的锚点上时,它实际上是在屏幕上居中的。我写了一篇关于它的帖子,因为它有点令人困惑。 http://beckerwebsite.com/?p=164
猜你喜欢
  • 1970-01-01
  • 2022-06-13
  • 2012-07-07
  • 2022-12-11
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多