是否可以创建仅显示纹理的一部分的SKSpriteNode
?
例如,我可以创建一个大小 100x100 的正方形,显示大小 720x720 的纹理的特定区域,例如从x1=300
到{{1} }和x2=400
到y1=600
?
谢谢你的帮助。
答案 0 :(得分:4)
尝试这样的事情:
import SpriteKit
import GameplayKit
class GameScene: SKScene {
let visibleArea = SKSpriteNode(color: .black, size: CGSize(width:100,height:100))
let parentNode = SKSpriteNode(color: .white, size: CGSize(width:200, height:200))
override func didMove(to view: SKView) {
let cropNode = SKCropNode()
let texture = SKSpriteNode(imageNamed: "Spaceship")
visibleArea.position = CGPoint(x: 0, y: 100)
cropNode.maskNode = visibleArea
cropNode.addChild(texture)
addChild(cropNode)
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
let location = touch.location(in: self)
let previousPosition = touch.previousLocation(in: self)
let translation = CGPoint(x: location.x - previousPosition.x , y: location.y - previousPosition.y )
visibleArea.position = CGPoint(x: visibleArea.position.x + translation.x , y: visibleArea.position.y + translation.y)
}
}
}
Overriden touchesMoved方法就是因为更好的例子。我在这里做的是:
结果如下:
答案 1 :(得分:2)
如果你想将纹理分解为较小的纹理块以用作拼图,那么你想使用bash
以下是如何使用它的示例:
HttpClientBuilder clientBuilder = HttpClients.custom();
clientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(3, false));
您现在有一个子纹理块可用于其他节点。