我正在使用 SpriteKit 制作游戏,但我的视图只占据了屏幕上看似安全的区域。如何扩展此视图?

Posted

技术标签:

【中文标题】我正在使用 SpriteKit 制作游戏,但我的视图只占据了屏幕上看似安全的区域。如何扩展此视图?【英文标题】:I am using SpriteKit to make a game, but my view only takes up what appears to be the safe area of the screen. How do I expand this view? 【发布时间】:2020-12-10 18:24:17 【问题描述】:

我正在使用 SpriteKit 制作游戏,我希望它使用整个屏幕。但是,现在,它只使用看起来是安全的区域。如何让视图占据整个屏幕?下面是我正在使用的 GameViewController 代码:

class GameViewController: UIViewController 

    override func viewDidLoad() 
        super.viewDidLoad()
        if let view = self.view as! SKView? 
            // Load the SKScene from 'GameScene.sks'
            let scene = MenuScene(size: UIScreen.main.bounds.size)
            // Set the scale mode to scale to fit the window
            scene.scaleMode = .fill
            // Present the scene
            view.presentScene(scene)
            view.ignoresSiblingOrder = true
            view.showsFPS = false
            view.showsNodeCount = false
        
    

【问题讨论】:

【参考方案1】:

如果您使用 SwiftUI,您可以使用 SpriteView 将场景呈现为视图。然后,您可以应用视图修饰符.ignoresSafeArea() 使其占据整个屏幕。

无论如何,我是一个新手,但这就是我所做的,它对我有用。不过,可能有更好的方法。

下面是我所说的一个例子:

import SwiftUI
import SpriteKit

struct ContentView: View 
    var body: some View 
        SpriteView(scene: MenuScene(size: UIScreen.main.bounds.size), transition: SKTransition.reveal(with: .down, duration: 1.0))
            .ignoresSafeArea()
    

【讨论】:

以上是关于我正在使用 SpriteKit 制作游戏,但我的视图只占据了屏幕上看似安全的区域。如何扩展此视图?的主要内容,如果未能解决你的问题,请参考以下文章

SpriteKit 在触摸时移动物理身体(空气曲棍球游戏)

SpriteKit 游戏中的高 CPU 使用率

SpriteKit 中的无限滚动背景

应用程序激活后保持游戏暂停?

如何在不同的 SpriteKit 场景中显示 iAd 横幅

在 SpriteKit 中,如何制作我的英雄精灵的裁剪(带有透明段)图像?