草庐IT

SKAction

全部标签

swift - 停止正在运行的 SKAction - Sprite Kit

以下代码将为旋转设置动画。letsomething:SKSpriteNode=SKSpriteNode()funcstart(){letrotateAction=SKAction.rotateToAngle(CGFloat(M_PI),duration:10.0)something.runAction(SKAction.sequence([rotateAction]))}现在我想在动画持续时间内停止动画。有没有类似下面的?我想在用户触摸屏幕时停止动画。funcstop(){something.SKAction.stop()} 最佳答案

ios - 等待 [SKAction playSoundFileNamed :waitForCompletion:]

好吧,这个让我觉得自己像个彻头彻尾的白痴。我的游戏中有一种方法,旨在通过一次弹出一个字母来为文本框中的文本设置动画。在我的DDTextBox类中,有一个名为animateText的动画方法。这是它的编码:for(NSUIntegeri=1;i它的目的是使名为textBoxText的节点发生变化,因此它是字符串_text的子字符串,直到索引i,然后是等到声音文件结束直到它移动到下一个字符。目前,声音播放一次,所有文字同时弹出。有问题的音频文件长约200毫秒。我该怎么做才能一遍又一遍地播放同一个文件?我会在[selfrunAction:completion:]的方法调用之外声明SKActi

ios - 修改正在运行的 SKAction 的速度

我有这个代码:@implementationMyScene{SKAction*delayAction;}Insideamethod:delayAction=[SKActionwaitForDuration:3.0];[selfrunAction:[SKActionrepeatActionForever:[SKActionsequence:@[delayAction,[SKAction...]]]]]withKey:@"myKey"];然后我想减少加类时间。(此方法在更新时调用:)所以我尝试了:-(void)updateVelocity{NSLog(@"duration:%f",dela

iOS SpriteKit SKAction 完成调用不起作用/产生奇怪的结果

我正在尝试根据命令让SKNode移动到屏幕上。我已经设置了以下SKAction链,以便1)节点向上移动并离开屏幕,然后2)节点向下移动到起始位置,然后3)开始四处移动。我已经使用以下代码来尝试实现这一点:SKAction*moveUp=[SKActionmoveTo:shipIntroSpot1duration:3.0];SKAction*moveDown=[SKActionmoveTo:shipSpot1duration:ship1MovementSpeed];[selfenumerateChildNodesWithName:@"ship1"usingBlock:^(SKNode*n

ios - SKAction moveTo 在应该下降时上升

我正在学习SpriteKit教程here创建一个简单的sprite套件射击游戏,您可以在其中制作一艘向小行星发射激光的spaceship。我想让激光(每个激光都是一个SKSpriteNode)移动到我点击的位置。我在touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event方法中正确获得触摸。但是,当我在SKSpriteNode上设置SKAction时,它会在我点击的位置的y方向上移动。即图像窗口的宽度(x)500和高度(y)400。当我在坐标(300,100)触摸屏幕时,激光似乎移动到坐标(300,300)。我已验证touchLocat

ios - SKAction playSoundFileNamed ERROR

我在使用受控定时器间隔发射大约80次激光后出现此错误,因此它每0.2秒发射一次。*由于未捕获的异常“加载资源失败”而终止应用程序,原因:“无法加载资源squish.mp3”*首先抛出调用栈:这是我用来播放声音和创建激光的代码。squish.mp3是一个在对象被销毁时播放的音频文件。谁能帮忙?SKAction播放声音不是很好吗?SKAction*sound=[SKActionplaySoundFileNamed:@"lazer.mp3"waitForCompletion:NO];[selfrunAction:sound];[selfremoveActionForKey:@"sound"]

ios - 检查 SKAction 是否正在运行

如何检查SKAction是否已完成其动画?我需要检查我的操作是否已经完成或仍在执行它的操作。之后我想创建一个bool值以避免在主要操作期间执行多个操作。SKAction*lionJumpActionComplete=[lionNodeactionForKey:@"lionIsJumping"];lionJumpActionComplete=[SKActionsequence:@[lionJumpActionUp,lionJumpActionFly,lionJumpActionDown,lionJumpActionPause]];if(lionJumpActionComplete){re

ios - SKAction 序列是否真的等到 Action 结束?

我有以下代码:-(void)aggravatedSeek:(SKSpriteNode*)target{_isAggravated=YES;SKAction*action=[SKActionrunBlock:^{doublerandTime=0.2;NSLog(@"%f",randTime);[selfmoveToSpriteNode:targetwithTimeInterval:randTime];}];//SKAction*repeatAction=[SKActionrepeatAction:actioncount:6];SKAction*rep=[SKActionsequence:

ios - SKAction序列临时延迟(初始延迟?)

所以在我正在构建的游戏中,我想重复一个Action,但我希望它有一个初始延迟。例如,该Action会在用户开始游戏后三秒执行,但在第一次执行后,不再有三秒延迟。我能做些什么来解决这个问题?提前致谢! 最佳答案 您可以使用SKAction进行延迟,然后将其放在您的sequence的开头。Applegives一些关于序列的示例代码:SKAction*moveUp=[SKActionmoveByX:0y:100.0duration:1.0];SKAction*zoom=[SKActionscaleTo:2.0duration:0.25];

ios - SKAction 改变 SKShapeNode 的颜色

我正在使用SKAction的repeatActionForever方法来更改SKShapeNode的颜色。这是我的代码:SKShapeNode*ship=[SKShapeNodenode];[shipsetPath:CGPathCreateWithRoundedRect(CGRectMake(-15,-15,40,17),6.25,6.25,nil)];ship.fillColor=[SKColorredColor];ship.glowWidth=3;[shiprunAction:[SKActionrepeatActionForever:[SKActionsequence:@[[SKA