【问题标题】:enum in Singleton cocos2d单例 cocos2d 中的枚举
【发布时间】:2012-01-31 13:07:52
【问题描述】:

如果我有两层(添加到parallaxNode)并且在每一层上我都添加了精灵,我想限制玩家无法移除精灵的顺序,你有什么建议?直到它首先删除以前的:sprite1、sprite2、sprite3 和 sprite4 等等。 我正在使用Juan's example 进行动态触摸检测

对此的动态选项是什么?

更新:

if([sprite tag] == tag_collection_1 && [sprite GetCanTrack]) {

//Set others to NO & call remove sprite method
[[TSprite FindByTag:tag_collection_number] SetCanTrack:NO];
[self removeSpriteMethod:touchLocation];
} else if ([sprite tag] == tag_collection_number && [sprite GetCanTrack]) {
// and so on
}

【问题讨论】:

    标签: iphone objective-c ipad enums cocos2d-iphone


    【解决方案1】:

    使用先进先出栈实现。如果你想移除精灵,你首先检查它是否在堆栈的底部,当你移除它时,你也将它从堆栈中弹出。实际上,您将拥有一个 NSMutableArray 并在删除它之前查看对象是否位于该位置的第一项。如果您按该顺序添加了 1,2,3,4,5 并且只想能够以相同的顺序删除它们,则首先检查您尝试删除的对象是否位于数组中的索引 0 处。

    【讨论】:

    • 你看过Juan's example吗?使用SetCanTrack:BOOL 方法会不会更容易?
    • 好吧,也许我没听懂这个问题。我猜你想对所有人执行 setCanTrack:NO 然后 setCanTrack:YES 到 2 如果 1 被跟踪,依此类推。那么解决方案应该是相似的,只需将它们放在数组中,当第一个对象被跟踪时,你对 [array objectAtIndex:[array indexOfObject:current]+1] 执行 setCanTracked:YES。
    猜你喜欢
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多