【问题标题】:SKCropNode of SpriteKit: relationship between positions and scales?SpriteKit的SKCropNode:位置和比例之间的关系?
【发布时间】:2016-04-25 13:48:48
【问题描述】:

我已经开始使用 SKCropNode 进行编程。我的目的是将给定的图像分割成更小的块(它们以后可能不是矩形)用于游戏(用户必须将这些块移动到正确的位置)。

学习代码如下:

    let center = CGPoint(x: self.frame.width * 0.5, y: self.frame.height * 0.5)
    let imageNamed = "image1.jpg"
    let sprite1 = SKSpriteNode(imageNamed: imageNamed)
    sprite1.position = center

    let mask1 = SKSpriteNode(color: SKColor.redColor(), size: CGSize(width: 400, height: 400))
    mask1.position = center

    let crop1 = SKCropNode()
    crop1.maskNode = mask1
    crop1.addChild(sprite1)

    crop1.position = CGPointZero
    self.addChild(crop1)

代码运行良好并显示裁剪的图像,我可以理解在更改一些东西(例如大小或位置)时,比如 sprite1。

但是,当改变 sprite1、mask1 和crop1 的几个位置时,我完全迷失了方向,特别是在为 sprite1 或crop1 添加比例时。例如,如果将给定图像缩小为 0.35,然后分成 5 x 5 块,我不知道如何获取/显示块 {0, 0} 或 {4, 3} 然后将它们显示在原始位置。换句话说,我无法控制裁剪的内容和位置。

关于游戏目的(例如,我不需要缩放所有内容,只需要缩放)(sprite1、mask1 和crop1)之间的关系,包括它们的比例并且只定位需要的位置)?或者有没有其他更简单的实现方式?

【问题讨论】:

    标签: xcode sprite-kit skspritenode skcropnode


    【解决方案1】:

    我必须自己回答。这里的答案不是关于位置、SKCropNode、SKSpriteNode 和掩码之间的关系,因为它对我来说仍然很复杂,而且 SKCropNode 类不是 SKSpriteNode 的子类,因此以后很难对其实例进行编程。这可能是该问题的解决方案:将给定的图像分割成更小的图像。

    解决方案很简单,从整体创建更小的 SKTexture:

    let wholeTex = SKTexture(imageNamed: "myimage.jpg")
    let tex1 = SKTexture(rect: CGRectMake(0.25, 0.25, 0.5, 0.5), inTexture: wholeTex)
    let sprite1 = SKSpriteNode(texture: tex1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多