swift 如何调整多个图像中的每个图像的大小,使每个图像都填满目标帧(扩展或收缩)?

ars1skjm  于 11个月前  发布在  Swift
关注(0)|答案(1)|浏览(84)

我有多个镜像,在不同的时间我需要替换SKSpriteNode的目标镜像。
这些多个图像中的每一个具有不同的大小。

目标SKSpriteNode有一个固定帧,我希望保持固定。

目标通过以下方式创建:

myTarget = SKSpriteNode(imageNamed: “target”)

myTarget.size = CGSize(…)
myTarget.physicsBody = SKPhysicsBody(rectangleOf: myTarget.size)

如何调整多个图像中的每一个图像的大小,以使每个图像填满目标帧(展开或收缩)?

假设目标是一个鞋盒,每个图像是一个气球,膨胀或收缩以填充鞋盒。
我尝试过以下失败的方法,即它改变目标的大小以适应新的图像。简而言之,它做的与我想要的完全相反。

let newTexture = SKTexture(imageNamed: newImage)
let changeImgAction = SKAction.setTexture(newTexture, resize: true)
myTarget.run(changeImgAction)

再次,保持myTarget的帧固定,并更改newTexture的大小以适应上面的帧。

4nkexdtk

4nkexdtk1#

通过docs
resize:如果为true,则重新调整子画面的大小以匹配新纹理。否则,子画面的大小保持不变。
所以,如果我理解正确的话,你根本不需要将resize设置为true

let newTexture = SKTexture(imageNamed: newImage)
let changeImgAction = SKAction.setTexture(newTexture)
myTarget.run(changeImgAction)

相关问题