考虑一下:您在 Cocos2D 2.0 上创建了一个新项目。您拥有传统的 Helloworld 层。您使用以下结构向其添加层:
Helloworld (cclayer)
│
┕━ baseLayer (cclayer)
│
┕━ myReducedNode [CCSprite node]
│
┕━ myFullSprite (ccsprite)
│
┕━ smallSprite (ccsprite)
- myReducedNode 是 baseLayer 中的一个节点,使用 [CCSprite 节点] 创建并应用了比例尺,因此,当我应用该比例尺时,我同时减少了 myFullSprite 和所有 smallSprites。
- myFullSprite 是 myReducedNode 内的 1024x768 点精灵。
- smallSprites 是 myFullSprite 中的 230x348 点精灵。
考虑一下这种疯狂:
- 首先,我将 1 的比例应用于 myReducedNode。当我拖动 smallSprite 并检查它的坐标时,一切都很好。如果我将 smallSprite 定位在 myFullSprite 的左上角,我将 smallSprite 的中心坐标读取为 (115,594),这是正确的值。
- 我将 0.8 比例应用于 myReducedNode。将 smallSprite 拖到 myFullSprite 的左上角,cocos 现在报告 smallSprite 的中心为 (17,641) ?????????!!!!!!
我说的是局部坐标,我的意思是,smallSprite 的位置在 myFullSprite 内部。
这是什么原因造成的?这个数字没有明显的逻辑......这个数字与应用于顶部节点的比例无关。
我在这里想念什么?我在墙上敲了几天的头,试图弄清楚这个谜题!!!!谢谢。
更多信息。我希望这有助于弄清楚为什么坐标有这些值......
- baseLayer 在 Helloworld 上的位置是 (612, 389)。
- myReducedNode 在 baseLayer 上的位置是 (0,0)。
- myFullSprite 在 myReducedNode 上的位置是 (0,0)