我在尝试使用[SKActionscaleBy:duration:]使一个圆圈变大和变小时遇到了麻烦SKAction*scaleDown=[SKActionscaleBy:0.2duration:1.8];SKAction*scaleUp=[scaleDownreversedAction];SKAction*fullScale=[SKActionsequence:@[scaleDown,scaleUp,scaleDown,scaleUp]];[_circleChangingrunAction:fullScale];我得到的是圆圈变得如此之小,以至于消失了,然后就再也没有回来。它必须变小,
我正在制作一个小型SpriteKit游戏。我希望这个游戏中的“敌人”在玩家周围的随机路径上移动(这是静态的)。如果我只是在屏幕上选择一个随机点并为该点设置动画然后重复(例如:每2秒),这会给该Action带来非常参差不齐的感觉。我如何使这个随机运动非常平滑(例如:如果敌人决定掉头,它将在平滑的U形转弯路径上,而不是锯齿状的锐角)。PS:敌人必须避开玩家和对方。 最佳答案 您可以使用节点应遵循的CGPathRef创建一个SKAction。下面是一个如何让节点画圆的例子:SKSpriteNode*myNode=...CGPathRefc
我正在编写一个游戏,并希望沿着固定路径(直线和曲线-想想铁路引擎)移动Sprite,但我希望能够根据Sprite速度来驱动动画-并根据响应改变该速度游戏事件。followPath:duration:在SKAction中很接近,但似乎没有办法“即时”调整速度-我绝对关心Sprite速度-而不是“跟随路径的持续时间”。CGPath似乎是定义Sprite路径的正确构造,但似乎没有足够的功能来沿路径抓取点并进行我自己的计算。谁能推荐合适的方法? 最佳答案 您可以使用speed属性调整任何SKAction的执行速度。例如,如果您设置actio
我对sprite工具包比较陌生。我想达到的目标;我有一个物体放在屏幕中间当点击屏幕左侧时,我希望对象以拱形方式向左弯曲。如果您想象物体位于钟面上的12点,按下左键将使它动画到9点。当向右轻敲时,我希望对象移动到3点。但是,如果对象已拱形到9到12(10或11)之间的位置,并且我按向右,则它需要穿过路径。总而言之,我想要一条跨越9点到3点之间的路径。当用户向左或向右点击时,对象将沿着路径移动,直到用户松开按钮(屏幕的左侧或右侧)如果我可以提供任何其他信息来帮助更清楚地说明这一点,请告诉我。一如既往,非常感谢任何回复:) 最佳答案 好吧
我正在尝试做一个简单的自动倒车动画。SKAction*a=[SKActionmoveToX:10duration:0.5];a=[SKActionrepeatActionForever:a];[carrunAction:a];但Action不会逆转。如何获得与CoreAnimation类似的自动反转效果? 最佳答案 AndreyGordeev的回答足够接近,floatx=car.position.x;SKAction*a=[SKActionmoveToX:(x+10)duration:0.5];SKAction*b=[SKActio
我正在尝试在触摸屏幕时为游戏添加音效。我已经有一个移动角色的touchesBegan方法,我可以把:[SKActionplaySoundFileNamed:@"sfx.wav"waitForCompletion:NO];进入该方法还是我需要创建一个新方法。另外,我应该将声音文件存储在我的项目中的什么位置?它有特定的地方吗?还是可以在任何地方? 最佳答案 试试这个:首先确保你已经设置了self.userInteractionEnabled=YES;点击屏幕时触摸委托(delegate)方法:-(void)touchesBegan:(N
我一直在研究DemoBots示例,但在让它在所有设备上运行时遇到了很多麻烦。https://developer.apple.com/library/prerelease/ios/samplecode/DemoBots/Introduction/Intro.html我目前遇到的问题是,在iPadMini上应用程序启动但在加载动画时崩溃。它在AnimationComponent.swift中从文件加载Action的行崩溃:letbodyAction:SKAction?ifletname=bodyActionName{//crashherebodyAction=SKAction(named:
我正在使用SpriteKit开发一款驾驶游戏,但在引擎音效方面遇到了问题。我想要两种不同的引擎声音。一种用于throttle按钮被按下时,一种用于throttle按钮未被按下时。游戏进行时,两种声音之一将不断播放。什么是最好的方法?我的声音文件应该非常短(0.10秒或更短)并且循环播放,还是应该相当长并且只是打开和关闭?我应该使用SKAction来播放声音还是使用AVAudioPlayer或其他什么?我曾尝试使用AVAudioPlayer但每次我暂停并播放播放器(打开或关闭throttle)时,游戏的帧率都会暂时下降。感谢您的帮助! 最佳答案
我想像这样使用SKSpriteNode在swift中创建翻转效果effect.我试试这个solution但在水平旋转之前我们可以看到垂直旋转。我只想要像HTML/CSS示例中那样的水平旋转。 最佳答案 使用SKSpriteNode做翻转的解决方案:funcflipTile(node:RectSprite){letflip=SKAction.scaleXTo(-1,duration:0.4)node.setScale(1.0)varchangeColor=SKAction.runBlock({node.texture=SKTextur
我试图让我的“播放器”(中间的一个圆圈)在运行计时器触摸屏幕后增加尺寸。一旦计时器超过0秒,它的大小就会增加。一旦计时器超过3秒,它就会减小到原来的比例大小,一旦计时器超过7秒,它就会重置并永远重复。我做错了什么?importSpriteKitclassGameScene:SKScene{varCenter=SKSpriteNode()varPlayer=SKSpriteNode()vartimer=NSTimer()varseconds=0overridefuncdidMoveToView(view:SKView){Center=SKSpriteNode(imageNamed:"Ce