我用它来消除游戏细节,并将记分卡放在它的顶部.
当我在iPhone 6上使用它并运行iOS 9.2时,它运行良好,使细节变得迟钝并显示记分卡……但是当我在运行iOS 9.2的模拟器或运行iOS 8.4的iPhone 5C上运行它时,它只显示为黑色. ..覆盖整个游戏画面……
它的声明如下:
//Alpha'sd png created in photoshop. approx. 0.3 Alpha let backdrop = SKSpriteNode(imagenamed: "Background_Alpha") backdrop.anchorPoint = CGPoint(x: 0.5,y: 1.0) backdrop.position = CGPoint(x: size.wIDth/2,y: size.height) backdrop.name = "scoreScreen" backdrop.zposition = Layer.UIBackground.rawValue worldNode.addChild(backdrop)
并像这样调用:
backdrop.Alpha = 0 let drop = SKAction.fadeInWithDuration(kAnimDelay) drop.timingMode = .EaseInEaSEOut backdrop.runAction(SKAction.sequence([ SKAction.waitForDuration(kAnimDelay),drop ]))
这是一个模拟器的屏幕截图…但正如我所提到的,它也发生在我的iPhone 5C上,8.4 …
黑色应该是透明的蓝色光线,允许玩家仍然在背景中看到游戏,但不是生动地……
有什么想法吗?
解决方法 所以 this question有一个答案说:According to the documentation 07001:
Sprite Kit works only with solID colors. For best results,use the
preset colors provIDed by the platform class or a custom color defined
in the RGBA device color space
这是否仍然是真的,我不知道,但我所做的而不是使用Alpha’d png只是使用Spritekit从头开始创建它并将其调用如下:
let backdrop = SKSpriteNode(color: SKcolor(red: 29.0/255.0,green: 113.0/255.0,blue: 149.0/255.0,Alpha: 0.3),//set Alpha here size: size) backdrop.position = CGPoint(x: size.wIDth/2,y: size.height/2) backdrop.name = "scoreScreen" backdrop.zposition = Layer.UIBackground.rawValue worldNode.addChild(backdrop) //add it to world //because I set the Alpha in the SKSpriteNode,//I can still animate it in from Alpha=0 to Alpha=0.3: backdrop.Alpha = 0 let drop = SKAction.fadeInWithDuration(kAnimDelay) drop.timingMode = .EaseInEaSEOut backdrop.runAction(SKAction.sequence([ SKAction.waitForDuration(kAnimDelay),drop ]))
这现在可以在屏幕上的游戏中通过整个游戏显示透明的精灵到暗淡的场景.鉴于项目不再需要存储整个png图像,效率也更高.
我仍然有兴趣知道为什么它不起作用我原来的方式,但这是一个更少的解决方案.
总结以上是内存溢出为你收集整理的ios – SpriteKit背景PNG,Alpha显示黑色全部内容,希望文章能够帮你解决ios – SpriteKit背景PNG,Alpha显示黑色所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)