gpt4 book ai didi

ios - SpriteKit View 不在 ViewController 的 viewDidLoad 中呈现场景

转载 作者:搜寻专家 更新时间:2023-11-01 07:33:01 34 4
gpt4 key购买 nike

目标:蓝色背景中应出现一个红色矩形(属于 Brick 类),其中包含节点数和 fps。

现实:灰色背景和节点数和 fps(例如,没有红色矩形或蓝色背景)

我有以下代码:

游戏 View Controller

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 和节点数。

游戏场景

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,我会看到橙色屏幕。

最佳答案

您的场景没有大小。您可以通过使用大小初始化程序初始化场景以编程方式设置大小。

let scene: GameScene = GameScene(size:view.bounds.size)

或者将场景的缩放模式设置为 ResizeFill,这样场景的大小将始终调整大小以匹配 SKView 的大小:

scene.scaleMode = SKSceneScaleMode.ResizeFill

此外,您可能还想查看答案 here了解有关 Sprite Kit 缩放的更多信息。

关于ios - SpriteKit View 不在 ViewController 的 viewDidLoad 中呈现场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31393283/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com