对象出现在SpriteKit的屏幕底部



我正在学习SpriteKit和Swift,我正试图使5个小图像"刷出"在屏幕的顶部,并滑到底部。这是我到目前为止得到的,添加在didMoveToView方法中。

    var myArray = NSMutableArray()
    myArray.addObject(NSNumber(int: 40))
    myArray.addObject(NSNumber(int: 80))
    myArray.addObject(NSNumber(int: 120))
    myArray.addObject(NSNumber(int: 160))
    myArray.addObject(NSNumber(int: 200))
    for item in myArray
    {
        let location = CGPoint(x: CGFloat(item.floatValue), y: 1)
        let sprite = SKSpriteNode(imageNamed: "myImage")
        sprite.xScale = 0.5
        sprite.yScale = 0.5
        sprite.position = location
        let action = SKAction.moveToY(-4, duration: 4.5)
        sprite.runAction(action)
        addChild(sprite)
    }

但是所有的对象都出现在底部。我试图改变y的位置,与相同的结果…

谢谢!

需要增加y坐标。假设轴系统左下角是(0,0)右上方是(self.frame.size.width,self.frame.size.height)

你可能还想阅读锚点-一个对象的默认锚点是0.5,0.5,所以如果你把它定位在它的一半(+ 1像素)将出现在顶部。如果你想让它从屏幕外弹出,你需要改变锚点或位置

尝试将您的位置变量更改为:

let location = CGPoint(x: CGFloat(item.floatValue) , y:self.size.height)

这将设置y值到屏幕的顶部,并将节点移动到那里。

最新更新