如何使场景的根节点在某个位置产生自身的重复(例如:x:10,y:10,z:10) 然后向一个方向移动,直到它们完全脱离屏幕然后消失。
我没有要求代码,但我要求如何执行此操作(例如,我用什么来复制根节点?
如何让该节点消失?
如何生成1到10之间的随机数,以确定何时产生副本?)
如何使我的帖子符合质量标准?
答案 0 :(得分:0)
您需要使用广义的类节点并随机生成实例。
Here是关于如何在Swift中创建随机数的答案。用它来制作介于1和10之间的三个不同的随机数,并使用节点类构造函数,并将三个随机数作为输入。
最后,要以随机方向移动节点,您需要在节点类中使用一些移动函数并为其提供随机数。
This就是你提出一个好问题的方法。
答案 1 :(得分:0)
以下是答案:
你可以:
首先使用“node.clone”或“node.copy”复制rootnode。
克隆复制整个节点树(节点和子节点),而复制仅复制该节点。
接下来将副本分配给变量(以便您可以访问它)。
然后根据需要添加任何操作(参见下文)。
然后在你的产卵循环或你用来产生对象的任何东西中,克隆一个克隆(我们在第2步中创建的变量),并用随机数设置它为position
。
要生成可以是正面或负面的随机数,请使用以下内容:
((((Float(arc4random()) / Float(UINT32_MAX))*2)-1)*5)//five is the important
//number here because it means you will get a number ranging from
// -5 to 5
然后添加您需要的任何操作(参见下文)。
最后致电scene.rootNode.addChildNode(theNodeYouJustPositioned)
删除节点调用node.removeFromParentNode
。
另外,要自己删除节点,并将节点自己定位在循环等中,并自行移动节点,可以使用SCNAction
。
要使用SCNAction
,只需致电node.runAction(SCNAction)
即可。
使用SCNAction
的方式有很多种,所以请访问文档以获取整个列表。
要使节点自身定位(排序),请尝试运行runblock:^node:SCNNode{}
并将节点的位置设置为随机数。
节点现在将其自定位,因此您可以跳过步骤4.
现在,如果您想按固定方向移动节点(我的意思是“非随机”),您可以在步骤3中添加moveBy:xyz
操作。
但如果它必须是随机方向,你可以在步骤5中执行此操作并将随机数输入其中。
要使用时间延迟删除节点,您可以使用sequence:
操作并输入数组,其中首先包含waitForDuration:Seconds
操作,最后包含removeFromParentNode
操作。< / p>
请访问SCNAction
以及我提到的您可能无法理解的任何其他课程的文档。
我不知道swift(根本)所以我确信代码中有一些语法错误。 (对不起)
如果您感到困惑,请在下方发表评论。 谢谢!