【问题标题】:Adjust SKSpriteNode and SKPhysicsBody with specific image.png or image.jpg使用特定的 image.png 或 image.jpg 调整 SKSpriteNode 和 SKPhysicsBody
【发布时间】:2014-09-03 18:53:13
【问题描述】:

我正在开发一个具有某种特定形状的角色的游戏,我正在使用这条线创建一个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

但是边框和图片的边框不一样。如何将对象调整为图像?或者创建自定义形状的技术是什么?

【问题讨论】:

    标签: iphone swift xcode6-beta6


    【解决方案1】:

    您需要使用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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多