草庐IT

Sprite-kit

全部标签

ios - 以一定速度在屏幕上随机移动物体

我需要让我的对象在屏幕上随机移动。当它们移动时,该对象正在寻找一定半径范围内的另一个对象。我找到了下面的链接,并实现了getDuration函数。但是我遇到了与主题所有者相同的故障。我可以看到应该可以通过删除运行操作来修复。Movinganobjectacrossthescreenatacertainspeed.(SpriteKit)视频:https://www.youtube.com/watch?v=jHE5RC-mvwU但是我现在已经试了好几种方案了,还是不行。当我停止Action时,我的对象就会停止移动。有人可以告诉我,在哪里终止我的Action,在moveToWaypoint中

ios - Spritekit (Swift) 是否允许使用两个不同的相机节点?

所以我正在从事一个需要使用两个或更多不同相机节点的项目。问题是当我要求激活和使用第二个摄像头节点时,我收到信号SIGABRT错误。我想我明白为什么会出现这个错误,因为已经有一个事件的相机节点。但是,我的问题是我是否可以在一个场景中的不同时间和不同位置使用两个摄像机节点。感谢您的任何帮助! 最佳答案 是的,你可以:classGameScene:SKScene{letcam1=SKCameraNode()letcam2=SKCameraNode()overridefuncdidMove(toview:SKView){addChild(c

Swift 无法覆盖子类中的变量

我正在使用Swift开发一个macOS项目,在我创建的几个类中重写变量时遇到了很多麻烦。在classTwo中,Xcode在线上显示错误Cannotoverridewithastoredproperty'texture';overridevartexture:SKTexture?这是我正在使用的部分代码。publicclassclassOne:SKSpriteNode{requiredpublicinit?(coderaDecoder:NSCoder){fatalError("init(coder:)hasnotbeenimplemented")}//Otherfunctions}还有第

ios - 在 UIKit 和 SpriteKit 之间转换 CGPoints 问题 : UIViews next to SKNodes

有很多关于此的帖子,但无论出于何种原因,我似乎无法获得正确的正确转换顺序。我正在尝试让UISliders直接位于SKLabels的下方。正如您在图片中看到的那样,其中一个slider根本没有显示,而另一个slider在完全错误的位置(音量slider靠近搜索标签):这是我目前为实现这一目标所做的尝试,尽管我已经尝试了一些其他配置,但都无济于事:classGameScene:SKScene{letseekSlider=UISlider(frame:CGRect(x:0,y:0,width:200,height:15))letvolSlider=UISlider(frame:CGRect(

Swift 和预制件?

由于我是SwiftiOS编程的新手,我对创建“预制件”有疑问?我有Unity背景,并且有类似预制件的东西,你可以多次实例化。在Swift或Xcode中有类似的东西吗?特别是我在SpriteKit中寻找它来创建带有child的SKNode副本 最佳答案 我认为最接近预制件的是类。您可以创建SKnode或任何其他节点的子类,例如SKSpriteNode,然后设置该类来执行您想要的操作。然后创建该类的一个实例。classBox:SKSpriteNode{init(){//Setupyournodethewayyouwantitsuper.

swift - SKPhysicsJointFixed 在移动一个节点时不会将节点保持在一起

我创建了2个SKSpriteNode,并通过SKPhysicsJointFixed将它们连接起来,以使它们粘在一起。问题是当我将SKAction.move(by:,duration:)应用于第一个时,它会单独移动。为什么会这样,我怎样才能将它们移动到一起?我搜索了很多,但似乎找不到任何新的或有用的信息。请帮忙。提前致谢。代码如下:importSpriteKitclassmyGame:SKScene{varnode1:SKSpriteNode!varnode2:SKSpriteNode!funccreateNode(_position:CGPoint,color:UIColor)->SK

ios - 只有当 Sprite 在摄像机/播放器的视野中时,是否有可能永远重复 SKaction ?

这是一个2D游戏:我有一定的生活质量SKactions永远重复,对我来说最大的两个是硬币旋转/上下摆动和水流。根据Apple的文档,SKactions是实例化的。因此,只要我将Action子类化,那么它只会运行“一次”,而不管它被使用了多少Sprite。例如,只要我的所有硬币都从同一个“硬币”类获取它们的操作,那么无论我有1个还是20个硬币,硬币操作所使用的内存占用都是相同的。综上所述,在摄像机/播放器不可见的情况下进行这些操作似乎是一种浪费。有没有一种方法可以让永远重复的Action在相机不可见时停用?我知道这违背了“永远”的目的,但据我所知,它要么选择某种静态持续时间,要么选择永远

swift - 使物体在特定区域时下落速度变慢 - sprite kit

标题说明了一切,我想让某个区域内的所有物体都比其他物体下落得慢,我很清楚我可以改变物理世界的引力,但我只需要一些物体缓慢下落,所以这不是一个选择。另外,这都是为了模拟水中的物体,所以如果有更好的方法来做到这一点,我们将不胜感激。任何帮助将不胜感激,谢谢! 最佳答案 增加physicsBody上的friction或linearDamping/angularDamping以增加对物体的阻力。如果你想让一切都慢下来,你也可以改变你的physicsWorld的speed设置(这将在水下设置中工作)

ios - 如何在 UIViews 和 SKNodes 之间转换点

我想转换CGPoint在UIView之间和SKNode,类似于您如何通过各自的View/图层在View/图层之间进行转换convert(_:to/from:)方法。正确的做法是什么? 最佳答案 这是我想出的:extensionSKNode{///Findpointinnoderelativetoit'scontainingSKView///sothatitcanbefurtherconvertedrelativetootherviews.funcpointInContainingView(_point:CGPoint)->(SKVi

ios - SKScene 如何与其容器 SKView 通信?

我在SKView中显示了一个SKScene。我想要一种将信息从场景发送到View的方法,以供以后与Controller一起使用。例如,考虑将ViewController作为SKView的委托(delegate),SKView需要在某个时间通知UIViewController它呈现的场景的一部分被点击。 最佳答案 SKScene有一个方便的实例成员.view来处理这种情况。要访问标准的SKView方法和属性,您可以像这样使用它:self.view?.addGestureRecognizer(pinchGestureRecognizer