我创建了一个用于形状识别的SpriteKit游戏,其中有两个相同的形状,一个位于场景的下半部分,而另一个要匹配的场景位于场景的上方。我通过调用其他类的方法创建这些形状,其中包含创建形状的代码。
我能够以正确的方式完成所有事情并且工作正常。但我无法找到如何使上侧形状静止。平均用户必须能够仅将下侧形状拖动到上侧形状以进行匹配,但是不应该能够拖动上侧形状以匹配下侧形状。到目前为止,我已经在Apple的SpriteKit编程指南中进行了搜索,但是没有这样的线索可以帮助我完成上述任务。
如果有人可以帮助我。
答案 0 :(得分:1)
简单的方法是在创建它们时设置它们的名称。使用常量是一种简单的方法,因此您可以确保添加/检查正确的名称。
static NSString * const kCanMoveMe = @"movable";
static NSString * const kCanNotMoveMe = @"not-movable";
// for example
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:imageName];
sprite.name = kCanMoveMe
SKSpriteNode *sprite2 = [SKSpriteNode spriteNodeWithImageNamed:imageName];
sprite.name = kCanNotMoveMe
然后当您触摸检查名称,然后您知道是否可以移动它。
答案 1 :(得分:0)
您还可以利用SKNode .userData属性存储实际精灵的自定义节点数据,如果它是可移动的,或者任何其他游戏特定数据。
答案 2 :(得分:0)
我建议继承SKSpriteNode并添加isMoveable
BOOL属性来指定它是否能够被移动。
其他答案肯定会有效,但两者都缺乏通过Xcode代码完成功能正确命名和访问属性的优势。
例如,在Xcode中,您可以键入mySprite.i
,isMoveable
BOOL属性可供选择代码完成。