我遇到了一個我在Swift中工作的橫向方向遊戲的問題。它是從肖像模式教程和代碼改編的,但是我已經在項目設置中設置了正確的方向,並且在GamePlayScene.sks文件中設置了尺寸(並在構建之前保存)Swift中寬度屬性的問題
如果我添加一個精靈在主didMoveToView功能,如背景,則width屬性按預期工作:
let background : SKSpriteNode = SKSpriteNode(imageNamed:"background")
background.position = CGPoint(x: self.frame.minX, y: self.frame.minY)
background.anchorPoint = CGPoint(x: 0, y: 0)
background.size.width = self.frame.size.width
然而,當我嘗試在物理對象的地面,從我GroundNode.swift類叫加,我只能通過使用類似的設置讓地面伸展一半的屏幕。就好像節點認爲屏幕突然變成肖像一樣。
我在主函數上面的代碼後立即發出這樣的代碼:
var ground = GroundNode(size: CGSizeMake(self.frame.size.width, 100))
ground.zPosition = 20
self.addChild(ground)
,這是我的地面節點類的縮寫版本:
import Foundation
import SpriteKit
class GroundNode: SKSpriteNode {
init(size: CGSize) {
super.init(texture: nil, color: UIColor.blackColor(), size: size)
self.name = "Ground"
setUpPhysicsBody()
}
func setUpPhysicsBody(){
self.physicsBody = SKPhysicsBody(rectangleOfSize: size)
self.position = CGPoint(x: 0, y: 0)
self.physicsBody?.affectedByGravity = false
self.physicsBody?.dynamic = false
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
這是結果,當我跑我的項目:
正如您所看到的,背景儘可能地符合預期,但地面節點僅覆蓋屏幕的一半。它也不會與任何意圖站在它上面的物體正確交互......它們漂浮在上面很多,是的,當我移除地面時,它們正確地穿過,儘管這可能是因爲它們的節點類也遭受了同樣的問題。
想法請?
地面節點實際上是左邊的黑色矩形。它通常會設置爲clearColor()。實際的地面,即草地,現在是BG圖像的一部分。但是,謝謝。 – Ne0nblade 2015-02-10 14:07:00