【发布时间】:2021-01-11 21:47:10
【问题描述】:
我正在尝试使用 SwiftUI 和 SpriteKit 制作游戏。我希望能够在 ZStack 中布局游戏,并将游戏分层放在背景图像上。为此,我需要使 SKScene 的背景透明。但是当我这样做时,我添加到 SKScene 的节点不再显示。
这是我正在使用的编码:
import SwiftUI
import SpriteKit
import GameplayKit
class GameScene: SKScene {
override func didMove(to view: SKView) {
view.allowsTransparency = true
self.backgroundColor = .clear
view.alpha = 0.0
view.isOpaque = true
view.backgroundColor = SKColor.clear.withAlphaComponent(0.0)
if let particles = SKEmitterNode(fileNamed: "Mud") {
particles.position.x = 512
addChild(particles)
}
}
}
struct ContentView: View {
var scene: SKScene {
let scene = GameScene()
scene.size = CGSize(width: 300, height: 400)
scene.scaleMode = .fill
return scene
}
var body: some View {
ZStack {
Image("road")
.resizable()
.aspectRatio(contentMode: /*@START_MENU_TOKEN@*/.fill/*@END_MENU_TOKEN@*/)
.ignoresSafeArea()
SpriteView(scene: scene)
.ignoresSafeArea()
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)
}
}
}
SKScene 的背景是透明的,我可以在 ZStack 中看到分层的图像。但是,场景中的其他所有东西也是透明的,所以我根本看不到发射器效果。
我怎样才能使 SKScene 的背景透明?
【问题讨论】:
标签: sprite-kit swiftui