草庐IT

Sprite-kit

全部标签

ios - 为什么我在 Storyboard 中的 SKView 子类(用于 Spritekit) View 不接受任何自动布局约束?

我在Storyboard中有一个名为_gameView的UIView,我在Storyboard中对其应用了约束。它是SKView的子类,所以我可以在其中展示我的场景,但问题是它在运行时永远不会从Storyboard中的自动布局中获得约束,为什么? 最佳答案 SpriteKit场景由一种特殊的UIView呈现,SKView,并且不要使用自动布局。只有UIKit可以-自动布局处理UIView的排列。 关于ios-为什么我在Storyboard中的SKView子类(用于Spritekit)Vi

ios - 无法使用 physicsbody 设置位置

我已经摆弄这个话题大约三个月了。我以为这只是苹果很快会修复的一个临时错误,并将其推迟到开发结束。现在我的游戏快结束了,但我仍然找不到好的解决方法:如果我有一个SKShapeNode并向其添加一个physicsbody,我就不能再使用setPosition:(CGPoint)方法来更改位置。我的对象总是放置在其父View的(0,0)处。我尝试在didSimulatePhysics方法中设置位置,以确保完成所有物理计算。我尝试使用SKAction从similar移动节点和其他建议questionshere.没有一个按预期工作。对我来说唯一(某种)可行的解决方案是使用这种变通方法:-(voi

ios - 当两个 body 没有联系时如何收到通知?

在DidBeginContact中,我喜欢在两个主体未接触时收到通知。我尝试使用!(NOT)运算符,但没有成功。if(!(firstBody.categoryBitMask==kBrickCategory&&secondBody.categoryBitMask==kCarCategory)){NSLog(@"Hit"); 最佳答案 didBeginContact仅在发生碰撞时被调用。您将update中的Bool设置为false并在didBeginContact中将其设置为true如果发生了碰撞。在didFinishUpdate中检查

ios - 在 Xcode SpriteKit 中,使用 Swift 在一个方向上展开 SKSpritenode

我想让一个SKSpritenode只在一个方向上展开,在本例中是向上展开。overridefuncdidMoveToView(view:SKView){varrightlegs=SKSpriteNode()rightlegs.size=CGSize(width:10,height:50)rightlegs.color=SKColor.yellowColor()rightlegs.position=CGPointMake(self.frame.width/2+20,self.frame.height/2-40)self.addChild(rightlegs)}overridefuncto

ios - 今天使用 SpriteKit 的扩展

我正在尝试制作一个小部件游戏,是否可以在TodayExtension中使用SpriteKit?我一直在搜索类似的帖子,但我只找到了与在AppleWatch扩展中使用SpriteKit相关的问题。 最佳答案 我还在今天屏幕上开发一些游戏。到目前为止,我已经找到了3个有效的解决方案:就像提到的使用UIKIT一样以最少的方式使用SpriteKit使用屏幕外图像进行渲染解决方案2的问题是,它非常不可靠。即使定期调用completionHandler!(NCUpdateResult.newData)也没有用。所以只是最后SKAction的有限

ios - 如何在Sprite kit和objective c中检测两个节点的碰撞点

我有两个SKSpriteNode,我知道如何检测它们是否在同一位置,但我不知道如何检测它们在节点的哪个位置发生了碰撞。我特别想知道其中一个节点碰撞的地方,因为我想在节点高度结束时添加不同的applyImpulse,这样另一个节点就会改变方向。 最佳答案 didBeginContact在2个物体碰撞时传递给SKPhysicsContact。SKPhysocsContact有一个属性contactPoint,它是一个CGPoint,是场景坐标中两个物理体之间的接触点。从这个和你的两个body碰撞时的位置,你可以计算出碰撞发生在body上

ios - 使用 Swift 在 SpriteKit 中将自定义 "number"图像添加到 SKLabelNode 作为分数

我基本上想在Singles中添加自定义字体编号(带有图像),并在我使用SpriteKit的游戏中将它们添加到我的分数中。这是字体图片样式它们是从0到9的数字一段时间以来,我一直在努力解决这个问题。我不确定您是否可以将它添加到SKLabelNode,或者您是否必须将它添加到一个类中。 最佳答案 SKLabelNode不允许位图字体。如果您的自定义字体是TTF,您将能够将自定义字体与SKLabelNode一起使用。这里有一个解释:SKlabelNodecustomfont在你的情况下,因为你想使用位图字体,你需要创建一个类来做到这一点。

ios - SpriteKit : Passing variable from GameViewController to GameScene

我在Storyboard中创建了一个菜单,它通过segue将一些信息传递给GameViewController。理想情况下,我可以使用该segue将信息直接传递到我需要的GameScene.swift,但我不确定这是一个选项,因为场景只是一个View而不是ViewController。因此,我将信息传递给GameViewController,效果很好。但是现在,我如何将它发送到GameScene.swift?从菜单转到GameViewControllerfuncpassToGame(game:String){performSegue(withIdentifier:"toGameSegu

ios - 类似于 Scenekit 中的 ContainsPoint

简单的问题:SceneKit中有没有类似SpritekitcontainsPoint的方法?我想HitTest可以工作,但我认为那只是为了检查2D触摸命中了哪个对象。 最佳答案 SCNGeometry和SCNNode都符合SCNBoundingVolume协议(protocol),它允许访问边界框和边界球属性。varboundingBox:(min:SCNVector3,max:SCNVector3)Theminimumandmaximumcornerpointsoftheobject’sboundingbox.varboundin

ios - 线程 1 : signal SIGABRT error in SpriteKit game

这个问题与我之前提出的关于我在SpriteKit中制作的Galaga游戏的问题有关。(Cannotassignvalueoftype'[SKNode]'totype'SKSpriteNode!')我只是继续讨论我的新问题。我有一个线程1信号:当我尝试在我的游戏中按下启动按钮时,AppDelegate出现SIGABRT错误(启动按钮是一个SKSpriteNode。)有时它会启动,但只有当我在非常特定的位置点击按钮时.否则,它会给我SIGABRT错误。它可能来self的touchesBegan函数中的代码,overridefunctouchesBegan(_touches:Set,with