问题标签 [skemitternode]

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 投票
1 回答
333 浏览

ios - How to fix memory leak from SKEmitterNode?

I am a beginner with Xcode's sprite-kit programming a game for the iPhone. I am having an issue with the SKEmitterNode. Specifically it looks like I have an unbounded memory leak every time the following SKEmitterNode is added even though I use the removeFromParent SKAction. Anyone have a solution to this? Thanks

0 投票
2 回答
1934 浏览

ios - Objective-c,动作完成后没有移除SpriteKit粒子

我正在使用 SpriteKit 在 Xcode 中制作游戏,但在使用粒子时遇到了问题。

初始化 SKEmitterNode 的方法:

}

我的这个方法是CPU1的AI,在update方法中调用。

在 SK runActions 结束后,我放了“[explosion removeAllChildren]”只是为了确保我的粒子将被删除,但是不管有没有它,一个仍然留在内存中(我猜)并且仍在缓冲。是因为我在场景中将其声明为静态 SKEmitterNode 吗?

提前致谢 !

0 投票
0 回答
108 浏览

ios - 每个粒子不同的particleRotation指向发射器节点位置

我正在使用 sprite kit 开发游戏,我正在努力使用 SKEmitterNode。我为粒子创建了一个水滴形状的纹理。我想在发射器节点周围发射粒子,并且液滴的较薄部分指向发射器。

我知道我可以改变发射的粒子的旋转

但这为所有粒子设置了相同的旋转。我需要不同的旋转,具体取决于它们是否在发射器上方,左侧,右侧......

在下图中,您可以看到我现在拥有的东西,所有水滴都指向同一个方向。

在此处输入图像描述

非常感谢。

0 投票
0 回答
162 浏览

ios - SKEmitterNode 在模拟器和粒子编辑器中显示不同

我正在测试使用“SpriteKit 粒子文件”创建蓝火的粒子系统。问题是,在模拟器中运行时,火焰显示得更糟。在这里你有图像。

粒子编辑器中的火:

粒子编辑器中的火

模拟器中的火灾:

模拟器中的火

这是我用来加载粒子文件的代码

为什么会发生这种情况,有人知道我该如何解决?谢谢!

0 投票
1 回答
2175 浏览

swift - 将发射器节点添加到 sks 文件并使用它 - XCode 6.0 + swift

我正在尝试学习如何使用 SKEmitterNode,为此我创建了一个 SpriteKit 项目。默认情况下,它提供一个 GameScene.sks 文件,选择它会显示包含 EmitterNode 的库中的对象列表。我尝试将 EmitterNode 拖到 GameScene 上并在属性检查器中对其进行配置,如下所示:

带发射器的场景编辑器

经过这个简单的设置后,我尝试在模拟器上运行该项目,但它没有在屏幕上显示任何粒子,它显示的是默认的“Hello World”用户界面:(

你好世界

有什么我想念的吗?

0 投票
0 回答
218 浏览

objective-c - spritekit - SKEmitterNode 粒子比例、坐标等与 ipad 与 iphone

当我在通用应用程序中使用 SKEmitterNode 时,我希望无论屏幕大小如何,我的粒子效果看起来都一样。

我注意到当我使用粒子编辑器时,我的粒子效果在视网膜 ipad 上将是一半大小。在我的代码中,我不得不求助于这样做。

convertNum 是一个函数,它只检查我们是否在 ipad 上,并相应地将数字加倍。有没有更好的方法来实现这一点?如果我必须手动设置一堆变量,那么拥有一个好的 sks 文件有什么意义?

0 投票
0 回答
2338 浏览

xcode - Spritekit Swift 粒子 SKEmitterNode 添加删除

所以这对于创建一个粒子来说很好,但是删除它的正确方法是什么,在持续时间之后,sparkEmmiter.particleLifetime 不会自动删除它

该解决方案会产生模拟器崩溃

0 投票
1 回答
208 浏览

sprite-kit - SKEmitterNode 未按预期运行

在我的 SK 游戏中,我有一架可以发射火箭的直升机。直升机一次只能在屏幕上显示一个火箭,原因是我不想每次发射火箭时都必须创建一个新的 SKEmitterNode,因为这似乎会对 CPU 造成负担,不得不每次都取消归档发射器。

因此,火箭是单实例。当有人发射火箭时,它作为场景的子节点添加到场景中,发射,当它击中某物时,从它的父节点中移除。

在我的update{}方法中,这里有一些伪代码:

所以基本上,如果火箭存在,发射器会跟随火箭,如果不存在,发射器会自行关闭。不,我不能只是将发射器添加为火箭的子项,因为这样当火箭击中物体时,我称removeFromParent火箭后面的烟雾轨迹会立即消失,这不是我想要的效果。

问题是,当发射新火箭并将numParticlesToEmit其设置回零时,粒子发射器的行为就像它一直在发射粒子一样!我希望粒子发射器简单地重新打开,但一束烟雾也会立即出现在直升机后面。您可以通过在 SK 中播放发射器文件并将要发射的粒子的“最大值”设置为 1,然后将其设置回零来观察此效果:您的屏幕将立即填满,就好像它一直在发射粒子一样全程。显然这不是我想要的。

也不能打电话resetSimulation,因为这会清除所有现有的粒子,所以上次发射的任何挥之不去的烟雾都会立即消失,如果两枚火箭相继发射,这看起来很不自然。

我唯一的选择是编写自己的发射器吗?

0 投票
1 回答
421 浏览

sprite-kit - 在发射器被破坏后保留粒子

在我的 SK 游戏中,我有发射的火箭,每一个都有一个SKEmitterNode会产生烟雾轨迹效果的火箭。一旦火箭击中我所说的东西removeFromParent,这也会移除发射器,从而立即消除烟雾痕迹。我希望烟雾痕迹一直存在,直到颗粒消散。

我不明白的是为什么即使targetNode设置为self.scene. 我已经采用了发射器节点,创建了一个包含所有这些节点的数组,children并调用countNSLog它有多少个子节点并返回......零。似乎所有粒子都应该是场景本身的子级,所以当从场景中移除发射器时,它的粒子不应该是,因为它们不是它的子级。

我尝试了很多很多不同的方法来做到这一点,但都没有奏效。

我想要的只是每个火箭都有一个发射器,它会留下一条烟道,当火箭被摧毁时,烟道在消散时仍然存在。但是我不能removeFromParent在不摧毁它的发射器的情况下召唤火箭!

0 投票
1 回答
151 浏览

swift - SKEmitterNode HSV 范围

虽然我通常更喜欢 RGB 颜色空间而不是 HSV,但我想SKEmitterNode发射具有最大饱和度和值的粒子,并且色调值可以跨越所有颜色。那可能吗?

我是 XCode、Swift 和 SpriteKit 的新手,由于 XCode 中的错误而无法打开 .sks 文件,所以我不知道可以这样做,但据我通过查看文档了解到,我能得到的最接近的是将RGB范围设置为:

有没有这样的东西:

我可以制作一堆 SKEmitterNode 实例,每个实例都设置了 specific UIColor,但这似乎是非常低效和丑陋的 hack。

谢谢,奇迹7