gpt4 book ai didi

ios - 在 iOS 8 的 SpriteKit 中使用 xScale 翻转 Sprite 不会翻转 SKPhysicsBody

转载 作者:搜寻专家 更新时间:2023-10-31 22:16:48 25 4
gpt4 key购买 nike

我有一个设置,其中有一个空的 SKSpriteNode(“播放器”),它有 N 个 SKSpriteNode 作为 child ( body 部位,例如“ ARM ” ).每个 child 都有一个像这样创建的 SKPhysicsBody:

sprite.physicsBody = SKPhysicsBody(texture: sprite.texture, size: sprite.texture!.size())

当我尝试翻转整个 Sprite (“玩家”)时

self.xScale = -1

所有纹理都正确翻转,但 SKPhysicsBody 不受影响。我如何正确地翻转包含所有子项及其 SKPhysicsBody 的整个 Sprite ?

最佳答案

从水平翻转的纹理创建 physicsBody 的一种方法是使用图像编辑软件(例如 Photoshop)创建输入图像的翻转版本。另一种方法是使用核心图形翻转原始图像。以下是如何执行此操作的示例:

func flippedTextureWithImageNamed(name:NSString) -> SKTexture
{
let image = UIImage(named:name)

UIGraphicsBeginImageContext(image.size);
let context = UIGraphicsGetCurrentContext()

CGContextTranslateCTM(context, image.size.width, image.size.height)
CGContextScaleCTM(context, -1.0, -1.0)

CGContextDrawImage(context, CGRectMake(0.0, 0.0, image.size.width, image.size.height), image.CGImage)

let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext();

return SKTexture(image: newImage)
}

关于ios - 在 iOS 8 的 SpriteKit 中使用 xScale 翻转 Sprite 不会翻转 SKPhysicsBody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26204646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com