问题标签 [skaction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
728 浏览

ios - iOS SpriteKit 头疼;runAction:completion: 不触发完成块

我正在为 SprintKit 游戏暂停触摸。当游戏暂停时,标签显示为 PAUSE 作为文本,直到用户再次触摸屏幕以取消暂停。当游戏取消暂停时,将在场景再次运行之前显示从 3 开始的倒计时。

似乎第 7 行 ([_pauseLabelNode setText:@"2"];) 从未被动画完成触发,这很奇怪,因为我在代码的其他地方使用 runAction:completion: 并且效果很好!为了完成这项工作,我是否需要通过设置操作队列来过度膨胀以控制动画序列?还是我只是犯了一个错误但对此视而不见?

这是我到目前为止所拥有的:

0 投票
1 回答
254 浏览

ios - 带有纹理动画的 SKEffectNode 不起作用

尝试这个:

  1. 创建一个 SKEffectNode 类
  2. 制作一个小动画,8帧左右,放入atlas文件夹
  3. 将此代码添加到类初始化

初始化类

将此节点添加到您的场景中。结果是什么都没有渲染。请注意,我什至还没有启用效果。

为什么?

0 投票
1 回答
136 浏览

ios - 运行序列时为动作动态分配参数

我偶然发现了一个问题,但我找不到答案。我正在使用 Xcode 中的 SK 模板来创建 iOS 游戏。我是初学者,所以请耐心等待。

基本上我有这个代码:

执行于

我将级别更改为我的游戏-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {,当我更改级别时,它也应该更改该速度参数。当然,这不起作用,因为我相信我的动作是在场景初始化时开始的,而我永远无法切换参数。

我需要做的是以一定速度(相对于水平)出现的气泡不断填充屏幕。

我真的不知道如何解决这个问题,因为在我看来我需要以某种方式停止并重新启动动作序列......

期待您的宝贵意见。

0 投票
0 回答
73 浏览

xcode - SKAction 移动整个屏幕

我正在使用一个数组来跟踪我的游戏中的所有图块,并在触摸时调用此函数 -(void)moveTilesDown 它应该循环遍历所有图块并找到有空白区域的位置,然后移动图块在它之上下降一个点。在第一次触摸时一切正常,它会向下移动适当的图块,但在连续触摸时,它会向下移动整个屏幕,包括 2 个与数组无关的 SKLabelNode,不应受到任何影响。我不知道我是否以某种方式向下移动整个屏幕或单独移动每个节点。如果问题有些不清楚,我深表歉意,但我完全不知道发生了什么,因此真的不知道如何提出这个问题。任何帮助将不胜感激。

这是我的 moveTilesDown 代码:

0 投票
1 回答
207 浏览

sprite-kit - 为什么 [SKAction scaleXTo: duration:] 不调用 xScale 设置器?

我有一个自定义节点,它有一个被覆盖的 xScale 设置器。例如:

如果我手动设置 xScale 属性,那么我可以看到 setter 被触发。

但是,如果我通过一个动作缩放节点,例如:

那么即使节点被正确缩放,setter 也永远不会被调用。

有谁知道为什么不?SKScale 动作如何改变节点的规模?

0 投票
1 回答
12856 浏览

ios - 停止重复永远的 SKAction - Sprite Kit

我想根据 spriteNode 的旋转在我的 spriteNode 上运行两个动画。如果值为负,则运行其中一个动画,如果为正,则运行另一个。我设法做到了(有点),但我有一个问题。如果 Animation1 正在运行,并且 zRotation 变为正值,它们都会运行,因为它们会永远重复。所以我这样做了:

然后当我想让它停止时:

但它一直在运行动作,那么我该如何停止动作呢?谢谢!

0 投票
1 回答
961 浏览

ios - 如何让 SKLabelNode 在执行操作后运行 waitForDuration SKAction 进行更新?

我试图有一个色轮,将 SKLabelNode 更新为轮子旋转后选择的颜色。SKLabelNode 会在用户单击滚轮时立即更新,我尝试将 SKAction waitForDuration 放置在几个不同的位置,但没有任何东西让 SKLabelNode 等到滚轮完成旋转。

0 投票
3 回答
6212 浏览

ios - Spritekit 添加音效

每当触摸屏幕时,我都会尝试为游戏添加声音效果。我已经有一个可以移动角色的 touchesBegan 方法,我可以输入:

进入那个方法还是我需要做一个新的方法。另外,我应该在我的项目中将声音文件存储在哪里?它是否有特定的位置,或者它可以在任何地方?

0 投票
1 回答
614 浏览

ios7 - iOS Spritekit 无法在子类 SKSpriteNode 上运行 SKAction

对于我的问题,我想要一个更具概念性的答案,而不是代码一。

我有一个使用 Spritekit 的 iOS 应用程序。我有一个将 SKSpriteNode 子类化的类,这样我就可以向节点添加其他属性。我能够成功创建 SKSpriteNode 并将其显示在我的 SKSpriteNode 背景上并使用操作将其删除。但是,当我运行任何操作时,例如:

它不会为我的子类执行操作。但是,如果我对另一个 SKSpriteNode 应用相同的操作而不是执行该操作。这些是在每 5 秒运行一次的计时器上创建的。

一些示例代码如下:

我的场景.m:

我的子类.h

我的子类.m

每当操作运行时,它都会记录消息“正在运行操作!”,所以我知道它正在使用该方法,只是由于某种原因不执行操作?

如果您需要更多代码或信息,请告诉我!谢谢。

0 投票
1 回答
2938 浏览

objective-c - iOS7 SpriteKit如何在恢复方法执行之前等待动画完成?

有没有办法让方法在继续执行代码之前等待方法中启动的 SpriteKit 操作完成?这是我到目前为止所拥有的,但它只是挂在等待循环中。