Swift 如何向SceneKit添加视图?

Swift 如何向SceneKit添加视图?,swift,scenekit,Swift,Scenekit,我对斯威夫特非常陌生,目前正在编写一款小型高尔夫游戏。 然而,球员可以击球n次 我如何制作一个简单的视图来显示玩家还剩多少点击数?有几种方法。最常见的方法是将spritekit场景覆盖在scenekit场景上。在spritekit场景中,可以更新标签元素 代码可能看起来像 let overlay = SKScene(fileNamed: "yourspritekitscene.sks") yourScnView.overlaySKScene = menuOverlay 也可以将spriteki

我对斯威夫特非常陌生,目前正在编写一款小型高尔夫游戏。 然而,球员可以击球n次


我如何制作一个简单的视图来显示玩家还剩多少点击数?

有几种方法。最常见的方法是将spritekit场景覆盖在scenekit场景上。在spritekit场景中,可以更新标签元素

代码可能看起来像

let overlay = SKScene(fileNamed: "yourspritekitscene.sks")
yourScnView.overlaySKScene = menuOverlay

也可以将spritekit场景指定为场景中3D对象上的纹理。或者,您也可以在倒计时时将数字设置为您交换的纹理

我想你想要这样的东西:

首先,我建议你创建一个函数,在游戏重新启动时调用,在那里你可以重置场景,重置玩家的移动,等等

您可以这样做:

func restart(){
//Everything you need to restart the game
}
若要稍后调用,您只需:

restart()
好的,我们现在来看看你问的问题: 声明一个Int变量,该变量包含玩家的移动次数:

var playerMoves = 10 //Whatever number you want 
好的,您有一个包含移动次数的变量,现在您必须在场景中显示它,为此,创建一个SKLabelNode:

let moveLabel = SKLabelNode()
现在,将标签文本设置为与您的播放器移动相等,设置位置、Z位置、字体,无论您想要什么:

moveLabel.text = "\(playerMoves)" //add this line to restart function that i mentioned and also set the variable playerMoves to "n" again.
moveLabel.position = ....
moveLabel.fontSize = ....
moveLabel.zPosition = ... //A number higher than any other zPosition
addChild(moveLabel) //Don't forget to add the label to scene!
就这样!现在你必须在玩家每次移动时更新玩家移动,为此我假设你在某种程度上控制玩家移动(使用更新功能、触摸开始、创建功能等)

所以…当玩家采取一个动作时:

playerMoves -= 1 
moveLabel.text = "\(playerMoves)"
就这样!!!:)希望有帮助

如果这就是你想要的(显示玩家在屏幕上向左移动),那就是你必须做的,你不需要创建一个视图或类似的东西。。。