2
嗨,我是新來的精靈套件,並且由於某些原因,使用self.frame.size.width或.height將按鈕或子視圖定位在場景中時,它們未居中而是有時候完全脫離屏幕。有誰知道如何將框架大小設置爲iPhone/iPad的使用大小?將場景的框架設置爲iPhone屏幕的大小
這裏是我的代碼呈現子視圖時,當球員失去
func presentGameOverView() {
if firstTime == true {
let gameOverView = UIView()
gameOverView.frame = CGRectMake(self.frame.size.width/2.0, self.frame.size.height/2.0, 200, 200) //should be center of screen
gameOverView.backgroundColor = UIColor.redColor()
playGameOverSound()
self.view?.addSubview(gameOverView)
firstTime = false
}
}
這裏是gameViewController.swift
extension SKNode {
class func unarchiveFromFile(file : NSString) -> SKNode? {
if let path = NSBundle.mainBundle().pathForResource(file, ofType: "sks") {
var sceneData = NSData(contentsOfFile: path, options: .DataReadingMappedIfSafe, error: nil)!
var archiver = NSKeyedUnarchiver(forReadingWithData: sceneData)
archiver.setClass(self.classForKeyedUnarchiver(), forClassName: "SKScene")
let scene = archiver.decodeObjectForKey(NSKeyedArchiveRootObjectKey) as GameScene
archiver.finishDecoding()
return scene
} else {
return nil
}
}
}
類GameViewController的一部分:UIViewController中{
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene {
// Configure the view.
let skView = self.view as SKView
skView.showsFPS = true
skView.showsNodeCount = true
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true
/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill
//display banner Ads
//self.canDisplayBannerAds = true
skView.presentScene(scene)
}
}
是啊,但由於某種原因未在gamescene出現。我不知道爲什麼,但框架是比屏幕尺寸大得多從未有過這種情況發生之前,當我println(self.frame.size.width) println(self.frame.size.height) 我得到1024和768 – 2015-02-10 00:34:22
你使用的是sks文件嗎? – rakeshbs 2015-02-10 00:34:59
當我創建一個精靈場景GameScene.sks是在項目文件夾...但我所有的代碼是在GameScene.swift – 2015-02-10 00:37:58