gpt4 book ai didi

ios - 将对象从一个 CCLayer 拖放到另一个 CCLayer

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:09:17 25 4
gpt4 key购买 nike

我的 CCScene 中有三层. MainLayer其中包含 GameLayerHUDLayer .这是现在的样子:

[ z-Order        ] | [ Layer ]
==============================
3 ( Top Most ) | HUDLayer
2 ( Middle ) | GameLayer
1 ( Bottom ) | MainLayer

我在我的 ccTouchBegan 上添加了触摸监听器( ccTouchMovedccTouchEndedMainLayer )这叫GameLayer的方法 getTouchedObject( CCPoint p_Loc )它返回该层中的触摸对象。

我现在能够成功“触摸”MainLayer 中的特定对象.现在,我要做的是将触摸到的对象拖放到HUDLayer中。 .当我只使用一层时,我可以毫无问题地拖放不同的对象,但需要实现 CCLayer s 来了所以我将主要层分为三个不同的层。

答案不必是 cocos2d-x。我了解一点 Obj-C,可以将 Obj-C 翻译成 C++,因此欢迎 cocos2d 回答。提前致谢。

最佳答案

最简单的方法可能是:

  1. 在名为HoverLayer 或其他名称的最顶部添加一个新的CCLayer。这是为了模块化。
  2. 一旦 Sprite 在任何层上被触摸,就将其从该层中移除,并将其作为 HoverLayer 的子级添加到同一位置。用户不会“看到”任何更改。
  3. 触摸时,拖动 Sprite 后,检测 Sprite 是否在 HUDLayer 内。
  4. HoverLayer 中移除 Sprite 并将其添加到适当的图层。

注意事项:

  • 您可以使用 HUDLayer 代替 HoverLayer,但是您的类会很乱。
  • 当然,如果您在拖动时将触摸的 Sprite 保持在 GameLayer 处,它最终会在某个时候落在 HUDLayer 后面,因此请将 Sprite 移动到顶部层是必须的。
  • 实现给定解决方案的代码很简单。真的,没什么特别的。

关于ios - 将对象从一个 CCLayer 拖放到另一个 CCLayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12346032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com