gpt4 book ai didi

ios - 在SpriteKit(或SceneKit)中更新几何

转载 作者:行者123 更新时间:2023-12-01 16:27:05 26 4
gpt4 key购买 nike

我们正在将游戏移植到SpriteKit,我遇到了一些问题。我们游戏中的某些对象附有三角形条纹轨迹。路径的顶点缓冲区会随着对象在世界上移动而不断更新,以创建无缝流畅的效果(缓冲区中有多少个顶点以及我们发出新顶点的频率受到限制)。

在以前的实现中,只要我们发出新的顶点,我们就只需在相应的缓冲区中更新受影响的顶点。在SceneKit中,除非使用geometrySourceWithBuffer:vertexFormat:semantic:vertexCount:dataOffset:dataStride:,否则似乎无法更新几何源。但是,要执行此操作,似乎我需要一个Metal设备,命令队列和编码器,以便能够在渲染之前提交命令以更新我的缓冲区。

有什么办法可以用普通的SCNView做到这一点,还是必须用CAMetalLayer手动完成所有事情,创建自己的金属设备等?

本质上,我们需要的所有内容都可以在SpriteKit中使用,但可以在SpriteKit中使用此几何图形,所以我希望可以以某种方式掌握SKView使用的金属设备和命令队列,并简单地使用它来上传几何图形。这会使事情变得简单得多。

最佳答案

我使用了粒子系统来获得类似的效果。粒子发射器附着在运动物体上,粒子设置为淡出并最终死亡。您可能需要根据需要的效果,将发射器的targetNode设置为场景。

    emitter = SKEmitterNode()
emitter.name = marbleNodeNames.trail.rawValue
emitter.particleTexture = SKTexture(imageNamed: "spark")
emitter.particleAlphaSpeed = -1.0
emitter.particleLifetime = 2
emitter.particleScale = 0.2
marbleSprite.addChild(emitter)

关于ios - 在SpriteKit(或SceneKit)中更新几何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34658669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com