我有一个SKSpriteNode对象,它有一系列要永远运行的Action。这些Action很简单,可以先移到最右边,然后再回到最左边。当用户在应用中输入一些值时,我需要反转方向,即。e.如果Sprite向右移动,我需要让它向左移动,反之亦然。我怎样才能做到这一点? 最佳答案 我会这样做:(在swift中)funcmovament(){ifisMovingRight==true{runAction(SKAction.sequence([SKAction.moveByX(10,y:0,duration:0.05),SKAction.pe
我正在使用SpriteKit制作2D游戏,我需要添加一种方法来在每50点后加速游戏。我想出了一个方法,可以根据需要增加速度,但是我必须在更新方法中每增加50点复制、粘贴和调整一个if语句。我的解决方案的另一个问题是我必须在加速后立即增加我的分数,因为如果不是这样游戏就会完全加速,尽管我不知道为什么。到目前为止,这是我的解决方案://insidetheupdatemethod//pointsareaddedwhenanenemyisdestroyed//pointSpeedisthefloatvariablethatisusedtochangepositionsif(points==4)
我在Storyboard中有一个名为_gameView的UIView,我在Storyboard中对其应用了约束。它是SKView的子类,所以我可以在其中展示我的场景,但问题是它在运行时永远不会从Storyboard中的自动布局中获得约束,为什么? 最佳答案 SpriteKit场景由一种特殊的UIView呈现,SKView,并且不要使用自动布局。只有UIKit可以-自动布局处理UIView的排列。 关于ios-为什么我在Storyboard中的SKView子类(用于Spritekit)Vi
我已经摆弄这个话题大约三个月了。我以为这只是苹果很快会修复的一个临时错误,并将其推迟到开发结束。现在我的游戏快结束了,但我仍然找不到好的解决方法:如果我有一个SKShapeNode并向其添加一个physicsbody,我就不能再使用setPosition:(CGPoint)方法来更改位置。我的对象总是放置在其父View的(0,0)处。我尝试在didSimulatePhysics方法中设置位置,以确保完成所有物理计算。我尝试使用SKAction从similar移动节点和其他建议questionshere.没有一个按预期工作。对我来说唯一(某种)可行的解决方案是使用这种变通方法:-(voi
在DidBeginContact中,我喜欢在两个主体未接触时收到通知。我尝试使用!(NOT)运算符,但没有成功。if(!(firstBody.categoryBitMask==kBrickCategory&&secondBody.categoryBitMask==kCarCategory)){NSLog(@"Hit"); 最佳答案 didBeginContact仅在发生碰撞时被调用。您将update中的Bool设置为false并在didBeginContact中将其设置为true如果发生了碰撞。在didFinishUpdate中检查
我想让一个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
我正在尝试制作一个小部件游戏,是否可以在TodayExtension中使用SpriteKit?我一直在搜索类似的帖子,但我只找到了与在AppleWatch扩展中使用SpriteKit相关的问题。 最佳答案 我还在今天屏幕上开发一些游戏。到目前为止,我已经找到了3个有效的解决方案:就像提到的使用UIKIT一样以最少的方式使用SpriteKit使用屏幕外图像进行渲染解决方案2的问题是,它非常不可靠。即使定期调用completionHandler!(NCUpdateResult.newData)也没有用。所以只是最后SKAction的有限
我有两个SKSpriteNode,我知道如何检测它们是否在同一位置,但我不知道如何检测它们在节点的哪个位置发生了碰撞。我特别想知道其中一个节点碰撞的地方,因为我想在节点高度结束时添加不同的applyImpulse,这样另一个节点就会改变方向。 最佳答案 didBeginContact在2个物体碰撞时传递给SKPhysicsContact。SKPhysocsContact有一个属性contactPoint,它是一个CGPoint,是场景坐标中两个物理体之间的接触点。从这个和你的两个body碰撞时的位置,你可以计算出碰撞发生在body上
我基本上想在Singles中添加自定义字体编号(带有图像),并在我使用SpriteKit的游戏中将它们添加到我的分数中。这是字体图片样式它们是从0到9的数字一段时间以来,我一直在努力解决这个问题。我不确定您是否可以将它添加到SKLabelNode,或者您是否必须将它添加到一个类中。 最佳答案 SKLabelNode不允许位图字体。如果您的自定义字体是TTF,您将能够将自定义字体与SKLabelNode一起使用。这里有一个解释:SKlabelNodecustomfont在你的情况下,因为你想使用位图字体,你需要创建一个类来做到这一点。
我在Storyboard中创建了一个菜单,它通过segue将一些信息传递给GameViewController。理想情况下,我可以使用该segue将信息直接传递到我需要的GameScene.swift,但我不确定这是一个选项,因为场景只是一个View而不是ViewController。因此,我将信息传递给GameViewController,效果很好。但是现在,我如何将它发送到GameScene.swift?从菜单转到GameViewControllerfuncpassToGame(game:String){performSegue(withIdentifier:"toGameSegu