Полностью новое для SpriteKit. В настоящее время у меня есть UIView, и я хочу добавить к нему узел спрайта (например, небольшой UIImageView, но я хочу анимацию для него, используя SpriteKit). Поэтому я не инициализировал свой проект как игровой проект, как это было найдено почти во всех учебниках для SpriteKit. Я нашел записку здесь: link и то, что я сейчас STH как:SpriteKit: использование SKView в UIView вместо инициализации игрового проекта
func initializeImage() {
let imageView = SKView()
imageView.frame = CGRect(x: self.frame.width/2 - Constants.imageWidth/2, y: self.frame.height - Constants.imageHeight, width: Constants.imageWidth, height: Constants.imageHeight)
// so place it somewhere in the bottom middle of the whole frame
let sheet = SpriteSheet(texture: ...)
let sprite = SKSpriteNode(texture: sheet.itemFor(column: 0, row: 0))
sprite.position = imageView.center //basically the same position as the imageView.frame's x and y value
let scene = SKScene(size: imageView.frame.size)
scene.backgroundColor = SKColor.clear
scene.addChild(sprite)
imageView.presentScene(scene)
self.frame.addSubview(imageView)
}
SpriteSheet похож на это: sprite sheet; он существенно сокращает атлас изображения и делит его на более мелкие изображения. Я отслеживал процесс, и этот шаг действительно дает меньшее изображение (var 'sprite'). Но при запуске у меня теперь есть только черный квадрат (должен быть размер, определенный константами). Если я установлю scene.backgroundColor на белый, тогда он белый. Могу ли я узнать, как я должен исходить отсюда, как мне заставить спрайт появиться?
Возможно, вы можете взглянуть на аналогичный вопрос [здесь] (http://stackoverflow.com/questions/42383395/metal-crash-upon-adding-skspritenode-to-skeffectnode) – user3765506