我正在使用最新的Xcode测试版在SpriteKit和Swift中创建一个游戏(好吧,我已经在Obj-C中移植了一个游戏)。我有一个问题,就是SpriteKit似乎没有正确渲染我的精灵,使它们的尺寸小于它应该的尺寸。如果我提供原生iPhone分辨率的背景,请使用以下代码添加它:
let background = SKSpriteNode(imageNamed: backgroundName)
background.position = CGPoint(x: self.size.width / 2, y: self.size.height / 2)
self.addChild(background)
产生这个:
精灵图像小于它应该的尺寸,因为图像是640x1136。我错过了什么吗?
编辑:嗯,似乎图像渲染的尺寸减小了约50%。使它们大50%显示正确,但它们的尺寸错误(大50%)......编辑2:嗯,这里证明了我使用的图像处于正确的分辨率:
答案 0 :(得分:1)
我遇到了同样的问题。您必须只声明一次纹理,然后在每个精灵中加载它。如果你 的println( “精灵:\(精灵)”) 你的精灵,你会看到纹理缺失。
class test : SKSpriteNode
{
let textureImage = SKTexture(imageNamed:"spriteImage")
func load sprites() {
sprite = SKSpriteNode(texture: textureImage )
}
}
答案 1 :(得分:1)
要做到这一点,你需要做的就是这个(在didMoveToView中):
self.size = view.frame.size // makes the size of the scene the same size as the frame, idk
let background = SKSpriteNode(imageNamed: "background") // if you actually need this tho
background.size = self.frame.size
答案 2 :(得分:0)
确保您的场景没有缩放或以某种奇怪的方式设置。我使用最新的xcode / spritekit进行的测试可以处理大小的图像。