繁体   English   中英

当节点在屏幕上通过某个y坐标时,如何更新Sprite Kit中的分数?

[英]How do I update the score in sprite kit when a node passes a certain y coordinate on the screen?

在我的Sprite Kit游戏中,当一个节点经过另一个节点时会得分。 我尝试对这种机制进行编码,以便当障碍节点的y坐标大于玩家节点的y坐标时,会得到一个点。 但是,这不起作用。 当大于号更改为小于号,并且障碍物出现在屏幕上时,分数就会更新,此代码将起作用。 我只想在障碍物通过玩家时更新分数。 任何帮助将不胜感激,谢谢

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

如果您的播放器在屏幕的底部,而障碍物从屏幕的顶部开始,则正确的if语句应为:

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

但是,如果您的播放器在顶部,而障碍物从底部开始,则正确的if语句为:

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

您将必须为障碍添加一些BOOL属性,以免同一障碍物的得分不断增加。 另一种选择是将所有障碍物排在一个数组中(以得分为目的),并在障碍物通过玩家后将其从数组中清除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM