我试图让一个球在一个圆圈内弹跳,这样它就不会超出圆周。现在球在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
我基于spark模板创建了一个.sks粒子发射器。我的应用程序是普通应用程序(不是游戏)。当用户单击一个按钮时,我有一个新的ViewController,它以模态方式显示全屏,这样我就可以模糊背景。在这个模态中,我创建了一个View并给它一个SCNView类,见下图:如何加载粒子.sks文件以在ParticlesView的viewController上执行动画?更新如何在ViewController中加载SceneKit粒子系统? 最佳答案 如@mnuages所述,您可以使用.scnp文件代替.sks,这是一个SceneKit粒子系
对于我的SpriteKit游戏,我为我的SKSpriteNode使用单个pdf矢量图,而不是为游戏中每个实体的所有设备分辨率使用许多pngSprite。不必太担心游戏图形的好处有很大的帮助,但我的问题很简单,使用矢量图形在性能方面会是个坏主意吗? 最佳答案 等等,您没有使用PDF作为SKSpriteNode的纹理您可能正在使用PDF进入XcodeAssetCatalog,对吧?在这种情况下,首先这是一个非常好的主意,它不会影响您游戏的性能。事实上,当您将PDF图像加载到XcodeAssets中(并将ScaleFactors设置为Si
我使用SpriteKit创建了一个简单的2D街机游戏,我正在尝试添加一个计分系统。游戏基本上是一个方形Sprite,它必须跳过各种障碍。所以我想要的是当玩家接触到整个游戏重新开始的对象时。游戏检测到接触(我之前测试过)但是当我移除我所有的child然后运行我的游戏的基本主要功能时,我注意到旧对象不断产生并相互困惑。funcdidBegin(_contact:SKPhysicsContact){if(contact.bodyA.categoryBitMask==PhysicsCategory.Player&&contact.bodyB.categoryBitMask==PhysicsCa
我希望实现的结果:我有一个节点,它几乎是一个带辐条的自行车车轮。当用户用胶带粘住屏幕时,我希望轮子不仅会弹跳,而且会随着每次点击而旋转。我现在拥有的:节点当前会在用户点击屏幕时反弹,就像它应该的那样。但是它不旋转。我仍在学习Swift,因此非常感谢任何帮助或建议。代码:wheelNode=SKSpriteNode(imageNamed:"wheel")wheelNode.zPosition=1wheelNode.position=CGPoint(x:self.frame.midX,y:self.frame.midY)wheelNode.physicsBody=SKPhysicsBody
在我的SKScene中,我正在制作一个简单的太空射击游戏。无论在哪个iPhone上玩游戏,我如何才能确保我的敌人总是出现在屏幕尺寸内?换句话说,我如何计算场景大小的最大和最小X坐标,更重要的是,我如何根据运行游戏的iPhone了解当前场景大小? 最佳答案 不要根据iPhone型号调整场景大小,让Sprite-kit做这种工作:scene.scaleMode=SKSceneScaleMode.ResizeFillThesceneisnotscaledtomatchtheview.Instead,thesceneisautomatica
我知道我可以在GameScene.swift中使用以下内容来引用我在关卡编辑器中创建的Sprite:ball=childNode(withName:"ball")as?SKSpriteNode如果我想从Ball类中引用那个球怎么办?以下是我认为可行的方法。我错了。在关卡编辑器中,我为球指定了自定义类Ball。1.我在GameScene.sks中创建了一个球Sprite并为其分配了Ball的自定义类:这是我自定义的Ball类。(你可以忽略这些内容,因为它不起作用。)classBall:SKSpriteNode{init(){letsize=CGSize(width:35,height:3
我正在尝试这样做一段时间。我有一个名为PlayScene的游戏的主场景。我那里有一个暂停按钮。当玩家点击该按钮时,我想加载另一个名为PauseScene的场景。为了直观地创建该场景,我使用Sprite工具包关卡编辑器。所以我有两个文件PauseScene.swift和PauseScene.sks。但是.sks内容(目前只是背景)并没有取消存档。我真的不知道我在哪里会犯错误。所以这是我通过位于PlayScene的暂停按钮进行的转换fortouch:AnyObjectintouches{letlocation=touch.locationInNode(self)ifself.nodeA
我正在学习Swift以创建适用于iOS的游戏,但我正在努力弄清楚Sprite将如何与背景发生碰撞和交互。基本游戏是一个球,您引导它走下迷宫,但迷宫可能比屏幕大几倍。迷宫可以是一个大的位图,也可以由图block组成,但我还没有决定如何让球与迷宫互动。我可以制作迷宫Sprite节点中的所有图block,然后让SpriteKit解决它,但我认为这不是一个很好的选择。然后是SpriteKit边缘体,如图所示-https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/SpriteKit_P
我在场景编辑器中设置我的SKSpriteNode的用户数据:然后我尝试获取它,使用:letsprite:SKSpriteNode=self.childNode(withName:"sprite")as?SKSpriteNodeletnumero:Int=sprite.userdata?.valueForKey("numero")as!Int但我得到了nil值:“fatalerror:在展开可选值时意外发现nil”我还尝试使用以下方法初始化userData:sprite.userData?=NSMutableDictionary()但同样的结果... 最佳答案