【发布时间】:2010-10-24 01:38:16
【问题描述】:
我正在使用 cocos2d 为 iPhone 编写一个应用程序,其中我有 4 个作为按钮的 Sprite。我想我会通过使用 2 个具有不同 .png 文件的精灵来实现按钮功能,这些文件代表按下/未按下状态。我认为这比使用动画更好。除了检测何时按下和释放按钮之外,我还需要检测何时发生两个按钮组合按下/释放(如和弦)。我什至可以将它推进到 3 和 4 按钮组合。我想实现的另一个功能是检测是否来自按钮内的轻弹并以另一个动作序列响应。
对此,最佳方法是什么?我会为四个按钮(它们呈方形)使用边界矩形/精灵并吞下触摸吗?那么我会使用较小的精灵矩形来确定触摸发生在哪一个上吗?或者我会让各个精灵进行检测,然后让他们检查其他按钮是否也被按下然后同时释放?我会为这两种方式中的任何一种使用 Bool 状态变量吗?
通过为每个按钮精灵制作一个菜单/菜单项,我使用 CCMenu 和 CCMenuitem 让这一切工作得很好;但是,我不知道如何检测一个菜单中的菜单项是否在按下和释放另一个菜单中的菜单项的同时被按下和释放。我使用了单独的菜单,因为如果我将同一个菜单与多个菜单项一起使用,那么一次只能按下一个。我说它工作得很好,这意味着它可以与单台和多台印刷机一起使用,但它将多台印刷机视为两个连续的印刷机,而不是同时印刷。 IE:单次按下导致运行单个动作序列(如预期的那样),同时按下组合导致为每个按钮运行单独的按钮动作序列,就好像我分别按下它们一样(我希望它运行一个特定的动作序列到那个按钮组合)。这就是为什么我决定尝试实现我自己的按钮系统而不是使用 CCMenu 系统可能会更好。离开 CCMenu 是否正确?
抱歉,描述太长了,但确实说得很具体。 B)
任何关于其他人如何实施或将实施这一点的见解将不胜感激!
【问题讨论】:
-
没人有什么想法吗?如果可以,请提供帮助。
-
抱歉,这里有点忙。我还可以建议您尝试将此问题复制并粘贴到 gamedev.stackexchange.com 中?它将获得更多游戏意见:) 道歉。
-
也试过在那里发帖,谢谢。
-
我会使用委托,每个精灵都有一个委托方法,该方法会返回到作为其父(委托)的 CCLayer,当它们被按下时,发送一条消息,增加 CCLayer 上的计数器,在释放或取消时,发送一个递减计数器。处理 CCLayer 上精灵按钮的实际功能。
标签: iphone button cocos2d-iphone touch sprite