![](/img/trans.png)
[英]Determine viewcontroller's view size dynamically on viewDidLoad
[英]SpriteKit View not presenting Scene in ViewController's viewDidLoad
目標:一個紅色的矩形(屬於Brick類)應在藍色背景中出現,並帶有節點數和fps。
現實:灰色背景,節點數和fps(例如,沒有紅色矩形或藍色背景)
我有以下代碼:
GameViewController
import SpriteKit
class GameViewController: UIViewController {
override func loadView() {
self.view = SKView(frame: UIScreen.mainScreen().bounds)
}
override func viewDidLoad() {
super.viewDidLoad()
let scene: GameScene = GameScene()
let viewAsSKView = self.view as! SKView
viewAsSKView.showsFPS = true
viewAsSKView.showsNodeCount = true
viewAsSKView.backgroundColor = UIColor.blueColor()
viewAsSKView.presentScene(scene)
}
}
我最大的猜想是GameViewController出了點問題,但我不確定是什么原因。 viewDidLoad()必須已被調用,因為我得到了fps和節點數。
GameScene
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
let myBrick = Brick()
myBrick.position = CGPointMake(100, 100)
self.addChild(myBrick)
}
}
由於缺乏復雜性,我認為GameScene沒錯。
AppDelegate中
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window!.backgroundColor = UIColor.orangeColor()
self.window!.rootViewController = GameViewController()
self.window!.makeKeyAndVisible()
return true
}
我知道AppDelegate沒什么問題,因為如果將self.window!.rootViewController更改為UIViewController,則會顯示橙色屏幕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.