分数var更新随机加倍

时间:2016-03-07 05:11:37

标签: xcode swift sprite-kit ios9 sprite

我正在制作游戏,目前我正在制作评分系统。但是,我面临着一个愚蠢的问题。我的得分var总是在调用时用一元运算符(+ =)增加1,它有时会将值更新2点而不是1点,并且它会随机进行。我编写了一个协议,我符合我的GameScene类,并且我总是在sprite之间有联系时调用该方法。

func wasCollected(item: gold) {

    score += item.pointValue
}

这个方法可以被调用两次而不是一次吗?因为在控制台中,当我尝试在随机时刻收集单个点时,我看到数字按顺序更新2。我还试图通过仅使用score ++而不是访问item.pointValue属性来解决此问题,但问题仍然存在。

这是我在自定义类中设置text属性时调用的方法,根据我的断点,只需单次执行该方法即可获得两次字符。我做错了什么?基本上我正在使用这种方法,我有一个位图图形,我用它作为我的数字的字体。

        for var i:NSInteger = 0; i < text.length; i++
        {

            //Get character in text for current position in loop
            //Getting the scalar encoded value
            let scalarEncoded:unichar = text.characterAtIndex(i)
            //Decoding the scalar
            let scalarDecoded = Character(UnicodeScalar(scalarEncoded))
            //Build texture name from character and font name
            let textureName:NSString = "\(fontName)\(scalarDecoded)"
            print(textureName)

            if i < children.count
            {
                //Reuse existing node
                letter = children[i] as! SKSpriteNode
                letter.texture = graphicsAtlas.textureNamed(textureName as String)
                letter.size = letter.texture!.size()
            }
            else
            {
                //Create a new node if not exist
                letter = SKSpriteNode(texture: graphicsAtlas.textureNamed(textureName as String))
                letter.anchorPoint = CGPointZero
                self.addChild(letter)
            }
            letter.position = pos
            pos.x += letter.size.width + letterSpacing
            totalSize.width = letter.size.width + letterSpacing

            if totalSize.height < letter.size.height
            {
                totalSize.height = letter.size.height
            }

        }

0 个答案:

没有答案