当节点通过屏幕上的某个y坐标时,如何更新精灵工具包中的分数?

时间:2015-08-28 02:42:09

标签: ios objective-c sprite-kit

在我的精灵工具包游戏中,当节点移过另一个节点时,会对一个点进行评分。我试图编码这个机制,以便当障碍物节点的y坐标大于玩家节点的y坐标时,对一个点进行评分。但是,这不起作用。当大于号更改为小于符号时,此代码将起作用,并且一旦障碍物出现在屏幕上,分数就会更新。我只希望在障碍物通过玩家时更新分数。任何帮助将不胜感激,谢谢

    if (obstacle1.position.y > person1.position.y) {
    scoreNumber++;
    scoreLabelNode.text = [NSString stringWithFormat:@"%i", scoreNumber];
    }

1 个答案:

答案 0 :(得分:0)

如果您的播放器位于屏幕底部且障碍物从顶部开始,则应使用正确的if语句:

if (obstacle1.position.y < person1.position.y)

但是,如果您的玩家位于顶部并且障碍物从底部开始,则正确的if语句为:

if (obstacle1.position.y > person1.position.y)

您必须为障碍物添加一些BOOL属性,以便不会因同一障碍而一次又一次地增加您的分数。另一种选择是将所有障碍物放在一个阵列中(用于评分),并在阵列通过玩家后从阵列中移除任何障碍物。