草庐IT

Sprite-Kit

全部标签

swift - 如何将物理体赋予弧线?

我有两条弧形成一个圆(SKCropNode),每条都有不同的颜色。我知道我可以给整个圆一个circleOfRadius,但我想知道是否可以只给一个圆弧一个物理体来适应圆弧的形状。非常感谢帮助。 最佳答案 您可能希望避免使用SKCropNode来构建弧线。来自Apple的文档,Useclippingandeffectnodessparingly.Bothareverypowerful,butcanbeexpensive,especiallywhennestedtogetherwithinthenodetree.或者,您可以构建一个弧形

ios - Swift - 将背景图像添加到 Spritekit 场景

这是我的代码,我没有为我的图像InterfaceBakground.jepg使用Assets目录。相反,我只是将这个2048x1535图像拖到项目中。但是图像没有以正确的方式出现。我希望图像显示为背景图像,填满整个屏幕。importSpriteKitimportGameplayKitclassGameScene:SKScene{varbackground=SKSpriteNode(imageNamed:"InterfaceBakground.jpeg")overridefuncdidMove(toview:SKView){background.position=CGPoint(x:se

swift - SpriteKit : Howto make holes in layer with blendMode

我有一个添加了一些元素的简单场景。现在我想专注于一个带有mask的特定元素,并在与我想要专注的元素相同的位置切割一个整体。非常类似于我们在某些游戏上看到的,当它们第一次启动时显示某种教程。基本上,我添加了一个带alpha=0.7的全屏层(这样用户仍然可以看到所有内容),然后在特定位置添加一个圆圈作为该层的子层并设置blendMode=。减去它从这个全屏层“切”出一个圆圈,所以在这个圆圈内你有一个清晰的View。将所有元素添加到屏幕后,我有以下代码。//beforethiscodeiaddedsomebasicelementslikecirclesandbackgroundsletmas

swift - 以编程方式将按钮添加到 GameScene.swift 并在按下时转换场景

我一直在努力尝试实现一种添加按钮的方法,当按下按钮时,场景会转换到我的第二个View。我读过其他帖子,但在Swift3中的某些方面运气为零。我真的很困惑并且尝试过但失败了很多次。希望你能帮忙!谢谢!SpriteKit中的Swift3。 最佳答案 过渡到新View是什么意思?在制作SpriteKit游戏时,我们倾向于在SKScenes而不是View之间进行转换。所以不要尝试为每个场景创建不同的View或ViewController,直接在SKScenes之间转换即可。关于按钮,有很多可用的教程。您基本上创建一个SKSpriteNode

swift - 在 SpriteKit 中使用 Action

这里是Swift菜鸟,所以请多多包涵!我一直在按照教程将Action实现到我的SpriteKit(Swift3)游戏中。我有以下代码:classGameScene:SKScene{letplayer=SKSpriteNode(imageNamed:"Airplane")overridefuncdidMove(toview:SKView){backgroundColor=SKColor.whiteplayer.position=CGPoint(x:size.width*0.1,y:size.height*0.5)addChild(player)ifmotionManager.isAcce

swift - 如何让物体不停地朝一个方向移动

我正在使用SpriteKit在Swift3中开发一个小游戏,我想将敌人移动到角色的方向,但敌人总是在到达角色的初始位置时停止。我这样做:enemigo.name="enemigo"enemigo.position=CGPoint(x:280,y:100)enemigo.xScale=1/1enemigo.yScale=1/15addChild(enemigo)letmovement1=CGVector(dx:(enemigo.position.x-personaje.position.x)*10,dy:(enemigo.position.y-personaje.position.y)*

swift - 创建无图像的无尽背景

我正在使用Swift和SpriteKit创建一个简单的游戏。我想添加一个无尽的背景(垂直),我只找到了带图像背景的答案,但我需要在没有图像的情况下做到这一点,只有背景颜色。我考虑过检查播放器是否在frame.maxY中,如果是,则将其移回起点,但我想知道是否有更好的主意。//Doesnotmatterwhichringwechoseasallring's'y'positionisthesame.funcmoveBackgroundUp(){if((mPlayer.position.y>=self.frame.maxY)||(mRingOne.position.y>=self.frame

swift - `SKScene.nodes()` 为触摸位置提供了太多节点

我试图让节点位于触摸位置,但遇到了.nodes()返回父节点和位于同一“位置”的其他节点的问题。我已经尝试了十几种不同的代码配置,但似乎无法找到使用SKScene.convert()或SKScene.convertPoint()的正确顺序和其他人....基本上,我有一个垂直层次的节点树。顶部是父节点,下面的每个节点都是直接在顶部的节点的子节点...(见下图)问题:当我点击最底部的节点时,在我的场景中运行.nodes()得到了多次点击……我试图只获取我指定位置的节点单击...当我单击某处时,我不希望打印相同“位置”或相同“.position”的父节点或其他节点...我只是想只获取精确位置

ios - 为 SpriteKit 中的函数添加延迟

我希望只允许玩家每0.7秒发射一枚导弹。我该怎么做呢?这是我的代码。我已经尝试过我在这个网站上找到的其他方法,但它们不起作用。funcfireTorpedo(){if!self.player.isPaused{ifisSoundEffect==true{self.run(SKAction.playSoundFileNamed("Rocket",waitForCompletion:false))}lettorpedoNode=SKSpriteNode(imageNamed:"Rocket")torpedoNode.position=player.positiontorpedoNode.p

swift - 为什么不调用单独类上的 SKPhysicsContactDelegate

我一直在尝试向我的GameScene添加联系人委托(delegate):self.physicsWorld.contactDelegate=ContactManager()但是,我通过将联系人委托(delegate)(ContactManager类)放在单独的类中来执行此操作,以避免在我的GameScene上有那么多代码。这是我的联系人代表:classContactManager:NSObject,SKPhysicsContactDelegate{funcdidBegin(_contact:SKPhysicsContact){print("theytouched!")}}问题在于,当对