0

最终目标:在一个区域内生成粒子(得到那个位),所有粒子都加速到一个点。

如果我知道粒子的位置,一切都会好起来的,但是我使用particleRange 生成粒子,这意味着我不知道每个粒子的确切位置。

有没有办法在每个粒子生成后检索它的位置?

我目前的计划是附加一个带有可以读取最终渲染位置的块的particleAction。

4

2 回答 2

1

不,正如SKEmitterNode 文档中所说,粒子是 Sprite Kit 私有的对象,生成后无法访问它们,因此无法检索每个单独粒子的当前位置。因此,您在粒子动作块中读取位置的计划将不起作用,因为这些动作仅由新粒子执行,这些粒子不受作为单独节点的操作/访问的影响。

您可以使用or提前设置他们的行为。但是,该类可能是出路 - 您可以尝试屏蔽粒子发射器,以便不渲染所需区域之外的粒子。particleRangeparticleActionSKCropNode

于 2014-02-03T11:31:41.657 回答
0

虽然粒子没有加速(我可以没有它),但我已经能够使用以下方法让它们全部到达所需的位置:

emitterNode.particleAction = [SKAction moveTo:location duration:1];

这是尽可能接近的。

于 2014-02-03T23:09:10.907 回答