这是我正在玩的SpriteKit测试应用程序中的一些简单代码:letwait=SKAction.waitForDuration(1)letperform=SKAction.runBlock({self.checkAnswer()})letcheckAnswerSeq=SKAction.sequence([wait,perform])我在第二行收到“'SKAction'不可转换为'(Selector,onTarget:AnyObject!)->SKAction!'”错误。有什么想法吗? 最佳答案 问题的起因是您的runBlock是单个
我目前正在制作一个飞扬的鸟克隆,并且在我的didMoveTOView方法中有一个SKAction(runActionForever)。但是,一旦我死了,我想终止该操作,然后弹出屏幕。overridefuncdidMoveToView(view:SKView){varendlessAction=SKAction.runActionForever(spawn,delay)}funcdied(){endlessAction.....?screenDied.position=CGPoint(self.frame.x/2,self.frame.y/2)addChild(screenDied)}现
我需要移动一个节点而不是SKAction来使用速度因为在这个问题MovingNodeontopofamovingplatform我希望节点随平台移动,但由于平台没有速度,我无法使用EpicByte建议这就是我移动节点的方式//Movenodeverticallyletup=SKAction.moveByX(0,y:200,duration:moveDuration);letdown=SKAction.moveByX(0,y:-200,duration:moveDuration);node.runAction(SKAction.repeatActionForever(SKAction.s
我有一个生成敌人然后将它们移动到屏幕上的序列,它本质上是这样写的moveAndRemoveEnemy=SKAction.sequence([moveEnemy,removeEnemy])enemy.runAction(moveAndRemoveEnemy)问题是我想在序列中添加另一个Action,在敌人被移除后更新分数。我尝试制作一个单独的方法来增加分数,将其称为SKAction.runBlock()并将其插入到序列中,如letupdateScore=SKAction.runBlock{self.increaseScore()}moveAndRemoveEnemy=SKAction.s
我正在spritekit中做一个小项目,但无法完全弄清楚。我正在使用SKAction.animateWithTextures动画Sprite并在数组中移动。工作正常,就像它应该的那样。问题是我想要一个在动画开始时启动的函数和一个在动画结束时启动的函数。我看到有一个.animationDidStart(CAAnimation),但因为我正在做的不是CAAnimation,所以我不能真正使用它。我正在使用的方法是否有类似的东西?正如您可能会或可能不会告诉我的那样,我对swift还是很陌生。提前感谢您的帮助。 最佳答案 我会创建一系列操作
方法.removeFromParent()不会移除Sprite。怎么了?overridefunctouchesBegan(touches:Set,withEventevent:UIEvent?){guardtouches.first!=nilelse{return}letmyShot=SKSpriteNode()letmyShotAnimation=SKAction.repeatActionForever(SKAction.animateWithTextures(myShotTexture,timePerFrame:0.01))myShot.size=CGSizeMake(200,20
我有一个节点熊,上面有两个skactions(在一个组中)。Actionbearmove是循环的,而moveUp不是,moveUP应该只发生一次。letmoveUp=SKAction.moveTo(y:50,duration:1.0)letbearAnimate=[SKTexture(imageNamed:"image1"),SKTexture(imageNamed:"image2"),SKTexture(imageNamed:"image3"),SKTexture(imageNamed:"image2")]letbearmove=SKAction.animate(with:bearA
我正在使用SpriteKit在Swift3中玩游戏,我想一直重复一个Action,但我做不到。我想重复didMoveToView函数中的操作。在Swift2中将是这样的:overridefuncdidMoveToView(view:SKView){...runAction(SKAction.repeatActionForever(SKAction.sequence([SKAction.runBlock(spawnEnemy),SKAcion.waitForDuration(2.5)])))...}请注意,我要重复的操作是spawnEnemy()。我尝试使用实现Swift3的新函数来执行
我的应用程序中有一个背景图像,它从上到下移动并重复。我希望在x时间后屏幕上显示不同的图像。这样行吗?什么时候最好删除初始背景以避免层数过多?overridefuncdidMove(toview:SKView){letbgTexture=SKTexture(imageNamed:"bg1.png")letmoveBGanimation=SKAction.move(by:CGVector(dx:0,dy:-bgTexture.size().height),duration:4)letshiftBGAnimation=SKAction.move(by:CGVector(dx:0,dy:bgT
这是一个2D游戏:我有一定的生活质量SKactions永远重复,对我来说最大的两个是硬币旋转/上下摆动和水流。根据Apple的文档,SKactions是实例化的。因此,只要我将Action子类化,那么它只会运行“一次”,而不管它被使用了多少Sprite。例如,只要我的所有硬币都从同一个“硬币”类获取它们的操作,那么无论我有1个还是20个硬币,硬币操作所使用的内存占用都是相同的。综上所述,在摄像机/播放器不可见的情况下进行这些操作似乎是一种浪费。有没有一种方法可以让永远重复的Action在相机不可见时停用?我知道这违背了“永远”的目的,但据我所知,它要么选择某种静态持续时间,要么选择永远