草庐IT

iphone - 使 SKScene 的背景透明不起作用...这是一个错误吗?

有没有一种方法可以使SKScene的背景透明,并通过透明度在另一个场景上呈现该场景。想法是让所呈现场景的背景像这样:self.backgroundColor=[SKColorcolorWithRed:0.0fgreen:0.0fblue:0.0falpha:0.5f];什么东西能让看到背后的景象变暗。但是这样做是行不通的。背景完全不透明。有办法吗? 最佳答案 在iOS8中,可以设置场景的SKView为允许透明,设置场景的背景色为透明。然后将看到SKView后面的View。UIView*parentView=...;[parentVi

在 SKScene 类中快速更改 SKSpriteNode 图像

我在SKScene类下定义了SKSpriteNode,之后如何更改SKSpriteNode图像,例如:classGameScene:SKScene{varplayer=SKSpriteNode(imageNamed:"player")}我想在某些Action中将图像从“player”更改为“player1”。我没有继承SKNode类,所以我不能使用SKTexture方法来做。 最佳答案 SKScene是SKNode的子类,因此您实际上继承了它。您可以使用SKTexture像这样更改图像:player.texture=SKTextur

在 SKScene 类中快速更改 SKSpriteNode 图像

我在SKScene类下定义了SKSpriteNode,之后如何更改SKSpriteNode图像,例如:classGameScene:SKScene{varplayer=SKSpriteNode(imageNamed:"player")}我想在某些Action中将图像从“player”更改为“player1”。我没有继承SKNode类,所以我不能使用SKTexture方法来做。 最佳答案 SKScene是SKNode的子类,因此您实际上继承了它。您可以使用SKTexture像这样更改图像:player.texture=SKTextur

swift - SpriteKit-如何放大和缩小 SKScene?

如果我在SpriteKit中制作一个具有大“世界”的游戏,并且我需要用户可以选择放大和缩小SKScene,我该怎么做这个?或者,为了让事情更简单,在didMoveToView函数中,我如何将更多的世界呈现到用户设备的屏幕上(不使用world.runAction(SKAction.scaleTo(0.5))或其他东西)? 最佳答案 有一个专门为此构建的SKCameraNode。SKCameraNode将视口(viewport)定义到您的场景中。您创建一个相机节点并将其分配给场景的相机属性。letcameraNode=SKCameraN

swift - SpriteKit-如何放大和缩小 SKScene?

如果我在SpriteKit中制作一个具有大“世界”的游戏,并且我需要用户可以选择放大和缩小SKScene,我该怎么做这个?或者,为了让事情更简单,在didMoveToView函数中,我如何将更多的世界呈现到用户设备的屏幕上(不使用world.runAction(SKAction.scaleTo(0.5))或其他东西)? 最佳答案 有一个专门为此构建的SKCameraNode。SKCameraNode将视口(viewport)定义到您的场景中。您创建一个相机节点并将其分配给场景的相机属性。letcameraNode=SKCameraN

ios - 如何从 GameScene 中的 ViewController 调用方法

我有一个在我的viewController中有一个自定义segue的方法,看起来像这样:funcgameOver(){performSegueWithIdentifier("GameOver",sender:nil)}我在GameScene.swift中这样调用方法:GameViewController().gameOver()我仔细检查了segue名称,它是正确的。每当我在我的GameScene.swift文件中调用它时,我都会收到SIGABRT消息,但我不知道为什么。我尝试仅使用println()消息调用该函数并且它起作用了。任何关于为什么会发生这种情况以及我如何成功调用GameS

ios - 如何从 GameScene 中的 ViewController 调用方法

我有一个在我的viewController中有一个自定义segue的方法,看起来像这样:funcgameOver(){performSegueWithIdentifier("GameOver",sender:nil)}我在GameScene.swift中这样调用方法:GameViewController().gameOver()我仔细检查了segue名称,它是正确的。每当我在我的GameScene.swift文件中调用它时,我都会收到SIGABRT消息,但我不知道为什么。我尝试仅使用println()消息调用该函数并且它起作用了。任何关于为什么会发生这种情况以及我如何成功调用GameS

ios - 从 SKscene (SpriteKit) 呈现 UIViewController

互联网上有几篇帖子询问如何正确组合SpriteKit和Storyboard/Interfacebuilder。特别是没有人能够从SKscene移动到所需的UIViewController。网上的解决方案都没有真正解决这个问题!真的不能这样做吗??如果是这样,那将是SpriteKit的一个重大限制...... 最佳答案 您不能直接从SKScene移动到另一个UIViewController。但是,SKScene已经包含在UIViewController中。您可以使用delegation将方法调用从场景传递到它的Controller。然

ios - 如何让SKSpriteNode重新出现在它的SKScene的对面?

我已经尝试使用SpriteKit一段时间了,对于我的SKSpriteNode在其SKScene范围内移动的一些“最佳实践”输入,我将不胜感激。我使用加速度计对SKSpriteNode的PhysicsBody属性施加力,以便以类似弹珠的方式在屏幕上移动节点。目前,我使用self.physicsBody=[SKPhysicsBodybodyWithEdgeLoopF​​romRect:self.frame]设置场景的PhysicsBody,这样大理石就可以简单地从场景的边缘反弹。我希望一旦弹珠移出我的场景边界(1),它就会以相同的速度重新出现在我场景的另一侧(2),而不是从场景的边缘弹起。

ios - 在 SKScene/Sprite Kit 中关闭同时触摸

我目前正在开发一款游戏,用户一次只能用一根手指触摸。我正在使用SKScene并尝试寻找禁用多点触控功能的方法,但没有找到任何结果。我正在考虑在调用touchesBegan()和touchesEnded()之间的所有触摸时手动调用“return”,但该方法也有缺陷(SpriteKitSKScenemissingtouchesEnded)。所以我的问题是:如何在SKScene中一次只允许触摸一次? 最佳答案 SKView继承自UIView,所以,在didMoveToView中添加:self.view.multipleTouchEnabl