首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpriteKit的SKCropNode :位置和规模之间的关系?

SpriteKit的SKCropNode :位置和规模之间的关系?
EN

Stack Overflow用户
提问于 2016-04-25 21:48:48
回答 1查看 95关注 0票数 1

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

用于学习的代码很简单,如下所示:

代码语言:javascript
复制
    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添加scale的时候。例如,如果给定的图像被缩小到0.35,然后被分成5 x 5个部分,我不知道如何获取/显示{0,0}或{4,3},然后在原始位置显示它们。换句话说,我不能控制裁剪的内容和位置。

有没有人可以给我一个提示或者一个简短的导师,告诉我这些位置( sprite1,mask1和crop1)之间的关系,包括它们的比例,关于游戏的目的(例如,我不需要缩放所有的东西,只需要缩放和定位需要的东西)?或者,有没有其他更简单的实现方法?

EN

回答 1

Stack Overflow用户

发布于 2016-04-28 11:43:47

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

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

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36842513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档