我试图让一个球在一个圆圈内弹跳,这样它就不会超出圆周。现在球在self.frame中反弹。如何让球在圆圈内弹跳?letsceneBody=SKPhysicsBody(edgeLoopFromRect:self.frame)sceneBody.friction=0self.physicsBody=sceneBodyvarball=SKShapeNode(circleOfRadius:9)ball.fillColor=SKColor.whiteColor()ball.position=view.centerball.physicsBody=SKPhysicsBody(circleOfRad
我正在为我正在构建的sprite工具包应用程序创建主菜单。在我的整个项目中,我一直使用SKScenes来保存我的关卡和实际游戏玩法。但是,现在我需要一个主菜单,其中包含“播放”、“级别”、“商店”等按钮...但是,我现在添加按钮的方式让我感觉不太舒服,就像这样:letcurrentButton=SKSpriteNode(imageNamed:button)//CreatetheSKSpriteNodethatholdsthebuttonself.addChild(currentButton)//AddthatSKSpriteNodetotheSKScene然后我像这样检查按钮的触摸:o
我有一个名为bombtower的局部变量。代码如下:ifcheckMark.contains(touchLocation){letbombTowerLevel1=SKSpriteNode(imageNamed:"bombtowertrial2")bombTowerLevel1.name="bombtower"//changelatermaybebombTowerLevel1.position=bombTowerGhost.positionbombTowerLevel1.zPosition=1//changelaterforhealthbombTowerLevel1.setScale(f
我不知道这两个函数有什么区别。首先:coin.run(SKAction.moveTo(y:-146.115,duration:0))第二个:coin.position.y=-146.115 最佳答案 SKAction直到下一帧才会被处理——紧接在update之后。如果您在didEvaluateActions之后调用.run,您的位置将不会更新,并且您可能会因此遇到错误。第二行代码将立即执行,无论您在SK循环中的位置如何。例如,如果您正在使用物理学,并在didBegin(contact)中调用.run(.move(,然后期望该Spri
在查看Apple使用SpriteKit的教程冒险游戏的源代码时,我一直看到变量被声明,并且在声明之后有左括号和“in”这个词。这是我使用的代码:letrightThumbstickHandler:GCControllerDirectionPadValueChangedHandler={dpad,x,yinletlength=hypotf(x,y)iflength就像那样,“dpad,x,yin”。有谁知道那些是什么/它们的用途是什么? 最佳答案 这是一个闭包定义,它捕获三个变量,其参数是dpad、x和y。in声明闭包执行的代码的实际
我基于spark模板创建了一个.sks粒子发射器。我的应用程序是普通应用程序(不是游戏)。当用户单击一个按钮时,我有一个新的ViewController,它以模态方式显示全屏,这样我就可以模糊背景。在这个模态中,我创建了一个View并给它一个SCNView类,见下图:如何加载粒子.sks文件以在ParticlesView的viewController上执行动画?更新如何在ViewController中加载SceneKit粒子系统? 最佳答案 如@mnuages所述,您可以使用.scnp文件代替.sks,这是一个SceneKit粒子系
刚开始使用Swift在iOS上使用SpriteKit。我有一个教程中的“Breakout”游戏,我想在每次球发射前实现倒计时,方法是在屏幕中间放置一个SKLabel,它在移除自身和游戏开始之前从5倒计时到1。倒计时进行时,您可以看到完整的游戏屏幕,包括墙壁、固定球等。我不知道在游戏循环的哪个位置执行此操作。如果我在didMoveToView中进行倒计时(我在其中创建墙并初始化球和桨),我永远不会看到它,但我会在日志中看到我的调试消息。我猜didMoveToView在SKScene出现之前被调用。我尝试在第一次调用“更新”时使用标志来调用倒计时功能,但我再次看到倒计时在屏幕上出现任何内容
对于我的SpriteKit游戏,我为我的SKSpriteNode使用单个pdf矢量图,而不是为游戏中每个实体的所有设备分辨率使用许多pngSprite。不必太担心游戏图形的好处有很大的帮助,但我的问题很简单,使用矢量图形在性能方面会是个坏主意吗? 最佳答案 等等,您没有使用PDF作为SKSpriteNode的纹理您可能正在使用PDF进入XcodeAssetCatalog,对吧?在这种情况下,首先这是一个非常好的主意,它不会影响您游戏的性能。事实上,当您将PDF图像加载到XcodeAssets中(并将ScaleFactors设置为Si
我想在我的主要GameScene中添加一个SKScene。SKReferenceNode似乎是一个很好的解决方案。我有:-GameScene.sks(主场景)-Countdown.sks(添加到GameScene的场景)-Countdown.swift(自定义类,如何初始化它?SKScene?SKReferenceNode?SKNode)我不知道如何使用我的倒计时类以编程方式添加我的倒计时。我试过:letpath=Bundle.main.path(forResource:"Countdown",ofType:"sks")letcd=SKReferenceNode(url:NSURL(f
我使用SpriteKit创建了一个简单的2D街机游戏,我正在尝试添加一个计分系统。游戏基本上是一个方形Sprite,它必须跳过各种障碍。所以我想要的是当玩家接触到整个游戏重新开始的对象时。游戏检测到接触(我之前测试过)但是当我移除我所有的child然后运行我的游戏的基本主要功能时,我注意到旧对象不断产生并相互困惑。funcdidBegin(_contact:SKPhysicsContact){if(contact.bodyA.categoryBitMask==PhysicsCategory.Player&&contact.bodyB.categoryBitMask==PhysicsCa