繁体   English   中英

使用特定的image.png或image.jpg调整SKSpriteNode和SKPhysicsBody

[英]Adjust SKSpriteNode and SKPhysicsBody with specific image.png or image.jpg

我正在开发具有某些特殊形状的角色的游戏,并在此行中创建一个SKSpriteNode对象:

let rockl:SKSpriteNode = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: newweight*ancho/16, height: alto/5))

我要为此行分配一个身体:

rockl.physicsBody = SKPhysicsBody(rectangleOfSize: pipeBotton.size)

并且我用以下行分配图像:

rockl.texture = SKTexture(imageNamed: "character.png")
rockl.texture.filteringMode = SKTextureFilteringMode.Nearest

但是边框与图像的边框不同。 如何调整对象以适应图像? 或创建自定义形状的技术是什么?

您将要使用SKPhyiscsBody(texture, size)创建physicsBody 从文档:

当精灵的形状要复制到其物理主体中时,请使用此方法。 将纹理缩放到新大小,然后进行分析。 将创建一个新的物理主体,其中包括纹理中具有非零alpha值的所有纹理像素。 该机体的形状试图在性能和准确性之间取得良好的平衡。 例如,如果保留细节会导致明显的性能损失,则可以忽略这些细节。

您还可以直接使用纹理创建SKSpriteNode ,而不是先使用纯色创建它:

let rocklTexture = SKTexture(imageNamed: "character.png")
rocklTexture.filteringMode = SKTextureFilteringMode.Nearest

let rocklSize = CGSize(width: newweight*ancho/16, height: alto/5)

let rockl = SKSpriteNode(texture: rocklTexture, size: rocklSize)
rockl.physicsBody = SKPhysicsBody(texture: rocklTexture, size: rocklSize)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM