在我的sprite-Kit游戏中,我的游戏经历了各种场景,我希望在这些场景中某些变量可用。见下图:所以标题屏幕加载了主游戏屏幕。当“波”结束时(所有目标完成或所有生命丢失),结束场景会显示一些统计数据。然后,如果玩家还剩生命,则再次加载主游戏,如果没有,则再次显示标题屏幕。我希望玩家的分数和剩余生命数在主游戏场景和最终场景中可用;应该在所有场景中保持高分。我为这些使用全局变量,而我的大多数变量是在类下定义的属性。我第一次必须这样做(对于我添加高分或多条生命之前的score属性)我在每个场景中使用了一个score属性,并在我为下一个场景做presentScene时在场景之间传递它,但这看
标题说明了一切。我如何在swift和spritekit中使用sprite表?我搜索了谷歌、堆栈交换和苹果文档,但我无法弄清楚这一点。 最佳答案 在xcode7中,您可以使用Images.xcassets创建Sprite图集。点击Images.xcassets点击左下角的加号选择“新Sprite图集”然后您可以将所有图像拖放到图集中如果您使用适当的后缀(@2x和@3x)拖入所有三种图像尺寸,它会自动为您填充图像。然后要在代码中使用这些Assets,只需编写:letatlas=SKTextureAtlas(named:"Sprites"
我正在尝试将一个值保存到sprite的用户数据中并能够读取它。这就是我所拥有的,由于某种原因,该值永远不会被保存并保持为零。importSpriteKitletframe=SKScene()funccreateSprite(){letsprite=SKSpriteNode()sprite.userData?.setValue("100",forKeyPath:"key")frame.addChild(sprite)}createSprite()forchildinframe.childrenwherechildisSKSpriteNode{print(child.userData?.v
我现在正在使用SpriteKit,我遇到了一个看似简单但在互联网上找不到任何问题的问题。我有三个形状像平行四边形的按钮,它们堆叠在一起,看起来像这样:Screenshotofbuttonsletbutton=SKSpriteNode(imageNamed:"playbutton")letleaderButton=SKSpriteNode(imageNamed:"leaderbutton")lethomeButton=SKSpriteNode(imageNamed:"homebutton")button.position=CGPoint(x:size.width/2,y:size.hei
所以我创建了一个游戏,你可以点击球让它们跳起来。每次点击都会得到一分。为什么当我达到10点时我的Sprite开始闪烁。我认为它与update(timeInterval)方法有关。这可能是错误或错误的编码。importSpriteKitclassGameScene:SKScene{letbackgroundNode=SKSpriteNode(imageNamed:"redbackground")overridefuncdidMoveToView(view:SKView){backgroundNode.position=CGPoint(x:CGRectGetMidX(self.frame)
我在搞一个xcode项目,我试图让一个红球SKShapeNode在我触摸它时四处移动。我自己在触摸开始类中的源代码没有做到这一点。我的代码有什么缺陷,我需要做什么才能修复它。importSpriteKitclassGameScene:SKScene{//RectangleSkeletionsvarleftWallRect=CGRect(x:0,y:0,width:40,height:1000)varball=SKShapeNode(circleOfRadius:25);overridefuncdidMoveToView(view:SKView){//DeclaretheSpritesi
在Swift中有什么方法可以告诉我什么时候SKSpriteNode实际上已经从场景中移除了吗?我不认为它实际上是在调用removeFromParent时完成的,但我认为它是稍后完成的,当Sprite-Kit认为这样做很方便时。我试图了解完整的生命周期,我注意到即使在该Sprite已被删除之后,Sprite仍然可以参与didBeginContact中的接触和碰撞。如果我打印出children的内容(即包含场景中所有子项的数组),我会看到Sprite在removeFromParent调用后立即被删除,但Sprite仍然可用(至少,对于这次SK游戏循环的执行)。编辑:这个问题来self之前关
我是sprite套件的新手。我试过与2名玩家一起玩简单的球弹跳游戏,另一名玩家正在缓慢地跟踪球。但是我发现了一个问题。当我将线移动到球(带边缘)时,球从屏幕上消失了。另一次没问题,球弹跳。有什么问题?我有一个GameScene、sks和ViewController。我的Sprite节点来自sks。如果有人解释这种情况。会更好。我在下面附上了我所做的。我的游戏场景:classGameScene:SKScene{varball=SKSpriteNode()varenemy=SKSpriteNode()varmain=SKSpriteNode()overridefuncdidMove(tov
我学习SpriteKit游戏开发是为了好玩,但我遇到了一个看似简单的问题,却让我很困惑。基本上,在我缩放一个带纹理的SKSpriteNode之后,框架不是我所期望的。我已经想出了一些技巧来强制它达到我想要的效果,但我试图了解发生了什么。任何想法表示赞赏!这是我没有缩放的代码:funcaddSpaceship(){letspaceship=SKSpriteNode.init(imageNamed:"rocketship.png")spaceship.name="spaceship"//spaceship.setScale(0.50)letdebugFrame=SKShapeNode.in
我正在制作一个sprite套件游戏,我正在使用plist文件来设置每个级别的属性。我的plist文件中的一个属性是一个名为patterns的字典,它包含n个项目,其中每个项目都是一个block,手写x和y位置。该模型非常适合我正在制作的游戏类型,因为它可以非常方便地快速正确设置关卡。但是,由于缺乏编码经验,我面临一个无法自行解决的缺点:有些关卡有多达290个block,因此当应用程序尝试读取关卡时,应用程序会卡住大约5秒钟。这对用户来说非常烦人。一开始我的方法是:读取plist文件,并为每个项目调用使用其imageNamed""方法将block创建为SKSpriteNode的方法。我认