gpt4 book ai didi

ios - 我的 Sprite 节点不会出现在我的场景中

转载 作者:行者123 更新时间:2023-11-29 05:40:29 25 4
gpt4 key购买 nike

我创建了一个 SKScene 并使用 addChild 将我的 SKSpriteNode 放置在场景中。这表明该节点位于右下角,但看不到 Sprite 。一切看起来似乎都不错,但没有结果。我的 scene.scaleMode 是 .aspectFill,我已经确保 SKSpriteNode(imageNamed: "GreenBlock") 是正确的。我已经看过很多次了,但我不明白为什么它不会显示在屏幕上......

这是一个非常简单的任务。我见过其他人也这样做,而且效果很好。我已经尝试了所有我能想到的...

我的 View Controller

import UIKit
import SpriteKit

class GreenSnakeController: UIViewController {

override func loadView() {
self.view = SKView()
}

override func viewDidLoad() {
super.viewDidLoad()

if let SKView = self.view as! SKView? {
let scene = GameScene(size: view.bounds.size)

SKView.ignoresSiblingOrder = true
SKView.showsFPS = true
SKView.showsNodeCount = true
scene.scaleMode = .resizeFill
SKView.presentScene(scene)
}

self.navigationController?.navigationBar.isHidden = true
}

override func viewDidAppear(_ animated: Bool) {
navigationController?.navigationBar.barStyle = .black
}

override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}

override var prefersHomeIndicatorAutoHidden: Bool {
return true
}
}

我的游戏场景类

import UIKit
import SpriteKit

class GameScene: SKScene {

var snakeBlock: SKSpriteNode!

override func didMove(to view: SKView) {
layoutScene()
}

func layoutScene() {
backgroundColor = #colorLiteral(red: 0.262745098, green: 0.262745098, blue: 0.262745098, alpha: 1)

snakeBlock = SKSpriteNode(imageNamed: "GreenBlock")
snakeBlock.size = CGSize(width: frame.size.width/8.0, height: frame.size.width/8.0)
snakeBlock.position = CGPoint(x: frame.midX, y: frame.midY)
addChild(snakeBlock)
}
}

我希望屏幕上显示一些内容,尽管它表明有两个节点,但我只看到第一个节点的场景。

最佳答案

import UIKit
import SpriteKit

class GameViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

if let view = self.view as! SKView? {
// Load the SKScene from 'GameScene.sks'
if let scene = SKScene(fileNamed: "GameScene") {
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill

// Present the scene
view.presentScene(scene)
}

view.ignoresSiblingOrder = true

view.showsFPS = true
view.showsNodeCount = true
}

self.navigationController?.navigationBar.isHidden = true
}

override var shouldAutorotate: Bool {
return true
}

override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
if UIDevice.current.userInterfaceIdiom == .phone {
return .allButUpsideDown
} else {
return .all
}
}

override var prefersStatusBarHidden: Bool {
return true
}


override func loadView() {
self.view = SKView()
}


override func viewDidAppear(_ animated: Bool) {
navigationController?.navigationBar.barStyle = .black
}

override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}

override var prefersHomeIndicatorAutoHidden: Bool {
return true
}
}

只需更改Apple推荐的viewDidLoad(),当我尝试它时,它就对我有用。让我知道这是否适合您

关于ios - 我的 Sprite 节点不会出现在我的场景中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56605139/

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