问题标签 [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.
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
ios - Objective-c,动作完成后没有移除SpriteKit粒子
我正在使用 SpriteKit 在 Xcode 中制作游戏,但在使用粒子时遇到了问题。
初始化 SKEmitterNode 的方法:
}
我的这个方法是CPU1的AI,在update方法中调用。
在 SK runActions 结束后,我放了“[explosion removeAllChildren]”只是为了确保我的粒子将被删除,但是不管有没有它,一个仍然留在内存中(我猜)并且仍在缓冲。是因为我在场景中将其声明为静态 SKEmitterNode 吗?
提前致谢 !
ios - 每个粒子不同的particleRotation指向发射器节点位置
我正在使用 sprite kit 开发游戏,我正在努力使用 SKEmitterNode。我为粒子创建了一个水滴形状的纹理。我想在发射器节点周围发射粒子,并且液滴的较薄部分指向发射器。
我知道我可以改变发射的粒子的旋转
但这为所有粒子设置了相同的旋转。我需要不同的旋转,具体取决于它们是否在发射器上方,左侧,右侧......
在下图中,您可以看到我现在拥有的东西,所有水滴都指向同一个方向。
非常感谢。
ios - SKEmitterNode 在模拟器和粒子编辑器中显示不同
我正在测试使用“SpriteKit 粒子文件”创建蓝火的粒子系统。问题是,在模拟器中运行时,火焰显示得更糟。在这里你有图像。
粒子编辑器中的火:
模拟器中的火灾:
这是我用来加载粒子文件的代码
为什么会发生这种情况,有人知道我该如何解决?谢谢!
swift - 将发射器节点添加到 sks 文件并使用它 - XCode 6.0 + swift
我正在尝试学习如何使用 SKEmitterNode,为此我创建了一个 SpriteKit 项目。默认情况下,它提供一个 GameScene.sks 文件,选择它会显示包含 EmitterNode 的库中的对象列表。我尝试将 EmitterNode 拖到 GameScene 上并在属性检查器中对其进行配置,如下所示:
经过这个简单的设置后,我尝试在模拟器上运行该项目,但它没有在屏幕上显示任何粒子,它显示的是默认的“Hello World”用户界面:(
有什么我想念的吗?
objective-c - spritekit - SKEmitterNode 粒子比例、坐标等与 ipad 与 iphone
当我在通用应用程序中使用 SKEmitterNode 时,我希望无论屏幕大小如何,我的粒子效果看起来都一样。
我注意到当我使用粒子编辑器时,我的粒子效果在视网膜 ipad 上将是一半大小。在我的代码中,我不得不求助于这样做。
convertNum 是一个函数,它只检查我们是否在 ipad 上,并相应地将数字加倍。有没有更好的方法来实现这一点?如果我必须手动设置一堆变量,那么拥有一个好的 sks 文件有什么意义?
xcode - Spritekit Swift 粒子 SKEmitterNode 添加删除
所以这对于创建一个粒子来说很好,但是删除它的正确方法是什么,在持续时间之后,sparkEmmiter.particleLifetime 不会自动删除它
该解决方案会产生模拟器崩溃
sprite-kit - SKEmitterNode 未按预期运行
在我的 SK 游戏中,我有一架可以发射火箭的直升机。直升机一次只能在屏幕上显示一个火箭,原因是我不想每次发射火箭时都必须创建一个新的 SKEmitterNode,因为这似乎会对 CPU 造成负担,不得不每次都取消归档发射器。
因此,火箭是单实例。当有人发射火箭时,它作为场景的子节点添加到场景中,发射,当它击中某物时,从它的父节点中移除。
在我的update{}
方法中,这里有一些伪代码:
所以基本上,如果火箭存在,发射器会跟随火箭,如果不存在,发射器会自行关闭。不,我不能只是将发射器添加为火箭的子项,因为这样当火箭击中物体时,我称removeFromParent
火箭后面的烟雾轨迹会立即消失,这不是我想要的效果。
问题是,当发射新火箭并将numParticlesToEmit
其设置回零时,粒子发射器的行为就像它一直在发射粒子一样!我希望粒子发射器简单地重新打开,但一束烟雾也会立即出现在直升机后面。您可以通过在 SK 中播放发射器文件并将要发射的粒子的“最大值”设置为 1,然后将其设置回零来观察此效果:您的屏幕将立即填满,就好像它一直在发射粒子一样全程。显然这不是我想要的。
我也不能打电话resetSimulation
,因为这会清除所有现有的粒子,所以上次发射的任何挥之不去的烟雾都会立即消失,如果两枚火箭相继发射,这看起来很不自然。
我唯一的选择是编写自己的发射器吗?
sprite-kit - 在发射器被破坏后保留粒子
在我的 SK 游戏中,我有发射的火箭,每一个都有一个SKEmitterNode
会产生烟雾轨迹效果的火箭。一旦火箭击中我所说的东西removeFromParent
,这也会移除发射器,从而立即消除烟雾痕迹。我希望烟雾痕迹一直存在,直到颗粒消散。
我不明白的是为什么即使targetNode
设置为self.scene
. 我已经采用了发射器节点,创建了一个包含所有这些节点的数组,children
并调用count
了NSLog
它有多少个子节点并返回......零。似乎所有粒子都应该是场景本身的子级,所以当从场景中移除发射器时,它的粒子不应该是,因为它们不是它的子级。
我尝试了很多很多不同的方法来做到这一点,但都没有奏效。
我想要的只是每个火箭都有一个发射器,它会留下一条烟道,当火箭被摧毁时,烟道在消散时仍然存在。但是我不能removeFromParent
在不摧毁它的发射器的情况下召唤火箭!
swift - SKEmitterNode HSV 范围
虽然我通常更喜欢 RGB 颜色空间而不是 HSV,但我想SKEmitterNode
发射具有最大饱和度和值的粒子,并且色调值可以跨越所有颜色。那可能吗?
我是 XCode、Swift 和 SpriteKit 的新手,由于 XCode 中的错误而无法打开 .sks 文件,所以我不知道可以这样做,但据我通过查看文档了解到,我能得到的最接近的是将RGB范围设置为:
有没有这样的东西:
我可以制作一堆 SKEmitterNode 实例,每个实例都设置了 specific UIColor
,但这似乎是非常低效和丑陋的 hack。
谢谢,奇迹7