簡體   English   中英

SpriteKit的SKCropNode:位置和尺度之間的關系?

[英]SKCropNode of SpriteKit: relationship between positions and scales?

我已經開始使用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)位置(sprite1,mask1和crop1)之間關系的提示或簡短的導師(例如,我不需要擴展除縮放和位置之外的所有內容)需要什么)? 或者還有其他更簡單的方法可以實現嗎?

我必須自己回答。 這里的答案不是關於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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM