5

我有一个使用 SpriteKit 和发射器粒子 (sks) 的应用程序,我发现它不像场景套件的粒子 (scnp) 那样逼真。所以我希望将其合并到 SKScene 中,但我不确定这是否可能。所以我决定创建一个 SCNScene 和粒子(scnp)。但是我想添加一个背景图像,唯一的 3D 效果就是粒子。谁能帮我为我的 SCNScene 设置背景图像。传统上我会像这样将它添加到 SKScene 中,但我无法在线找到 SceneKit 的任何帮助。

 let backgroundNode = SKSpriteNode(imageNamed: "backgroundImage")
    backgroundNode.size = view.frame.size
    backgroundNode.position = CGPointMake(view.frame.size.width/2, view.frame.height/2)

    self.addChild(backgroundNode)

先感谢您

4

3 回答 3

15
let scnScene = SCNScene()
scnScene.background.contents = UIImage(named: "earth.jpg")
于 2015-08-14T16:49:51.093 回答
3

与@Kusal Shrestha 的答案基本相同,但我能够使用一堆不同的技术来放置渐变背景。仍然非常简单和有用。

    const CGFloat DIVISOR = 255.0f;
    CIColor *bottomColor = [CIColor colorWithRed:(CGFloat)0xee / DIVISOR green:(CGFloat)0x78 / DIVISOR blue:(CGFloat)0x0f / DIVISOR alpha:1];
    CIColor *topColor = [CIColor colorWithRed:0xff / DIVISOR green:0xfb / DIVISOR blue:0xcf / DIVISOR alpha:1];
    SKTexture* textureGradient = [SKTexture textureWithVerticalGradientofSize:scnview.frame.size topColor:topColor bottomColor:bottomColor];
    UIImage* uiimageGradient = [UIImage imageWithCGImage:textureGradient.CGImage];
    self.background.contents = uiimageGradient;

其中“self”是 SCNScene 的子类。

此示例需要此处的纹理类别:https ://gist.github.com/Tantas/7fc01803d6b559da48d6

于 2016-02-05T05:57:30.433 回答
1

我尝试使用@Kusal Shresthas 回答。但是,当我将图像文件放入scnassets. 但是当我把文件放进去时xcassets,它起作用了。

scnScene.background.contents = UIImage(named: "earth")
于 2020-01-31T06:02:15.543 回答