SpriteKit Проблемы с cgImage на симуляторе Xcode, но не на устройстве - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь написать код, который процедурно создает растровые шрифты, и для этого я создал SKTexture, а затем преобразовал их в cgImage / UIImage (потому что это необходимо для инициализации SKTextureAtlas). Однако cgImage, похоже, не работает надежно на симуляторе, тогда как на устройстве. Следующий код иллюстрирует эту точку, если вы поместите ее в SKScene:


    let chars = "ABCDEFGHIJKLMNOP"
    
    var y: CGFloat = 0
    
    for each in chars {
        let letter = String(each)
        let label = SKLabelNode(text: letter)
        let view = SKView()
        let texture = view.texture(from: label)!
        let cgImage = texture.cgImage() // HERE IS WHERE IT GOES WRONG!
        let tex2 = SKTexture(cgImage: cgImage) // OR POSSIBLY HERE!
        let sprite = SKSpriteNode(texture: tex2)
        sprite.position.x = 100
        sprite.position.y = y
        addChild(sprite)
        y += 30
    }

В симуляторе некоторые символы не отображаются (и, как ни странно, это точно те же самые), тогда как на устройстве они все в порядке. Он определенно преобразует его в cgImage, а затем обратно в SKTexture, что создает проблему, если вы удалите этот код, он работает нормально, но я также получаю ту же проблему, если конвертирую cgImage в UIImage, поэтому я думаю, что это должен быть cgImage, у которого есть проблема . И такое разное поведение на симуляторе и на устройстве должно ли я думать, что это ошибка? Но я искал и не нашел никого, у кого были бы такие же проблемы. Если кто-нибудь знает, что идет не так или у него есть обходной путь, я был бы очень признателен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...