为了让图像(它已经在assets.xcassets中)显示为GameScene.swift的背景,我需要编码什么?gamescene.swift中的背景图像
2
A
回答
1
虽然这可能不是最好的方法,但这是我总是这样做,它的工作原理。
假设你有一个形象,是完全一样的艾泽为您的场景,你可以这样做:
// please declare bg as a class level variable
bg = SKSpriteNode(imageNamed: "name of your texture")
// the below two lines of code is my preference only. I want the
// background's anchor point to be the bottom left of the screen
// because IMO it's easier to add other sprites as children of the background.
bg.anchorPoint = CGPoint.zero
bg.position = CGPoint(x: self.frame.width/-2, y: self.frame.height/-2)
self.addChild(bg)
Alernatively,只是这样做在SKS文件。这很容易。
之后,添加所有的游戏精灵作为bg
的孩子,而不是self
,因为它更容易管理。所有的
2
首先,你可以叫你的场景与修改SKScene
的实际尺寸完全匹配SKView
将scaleMode .resizeFill
:
scene.scaleMode = .resizeFill
.resizeFill - 现场不进行缩放。它只是调整大小,以使其符合观点。由于场景未缩放,图像将保持其原始大小和宽高比。内容将全部保持相对于场景原点(左下角)。
默认情况下,场景的原点位于视图的左下角。因此,场景初始化的高度为1024,宽度为768,左下角为原点(0,0),右上角为(1024,768)坐标。框架属性为(0,0) - (1024,768)。定位点的默认值为CGPointZero
(因此您不需要更改它),它将其放置在左下角。
最后,你可以用下面的代码添加到您的背景图片(例如所谓的bg.jpg):
// Set background
let txt = SKTexture(imageNamed: "bg.jpg")
let backgroundNode = SKSpriteNode(texture: txt, size:size)
self.addChild(backgroundNode)
backgroundNode.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
相关问题
- 1. 花式背景中的背景图像?
- 2. 在背景图像背景图像
- 3. 背景图片上的背景图像
- 4. 背景图像
- 5. 背景图像
- 6. 图像背景
- 7. 图像背景
- 8. 背景图像
- 9. JavaFX中的背景图像
- 10. Linearlayout中的背景图像
- 11. 中心的背景图像
- 12. 背景图像中的HTML
- 13. Joomla中的背景图像
- 14. 背景图像中的JavaScript
- 15. Flex中的背景图像
- 16. OpenGL中的背景图像
- 17. css中的图像背景
- 18. bootstrap中的背景图像?
- 19. CSS中的无图像背景图像
- 20. 图像映射中的背景图像
- 21. CSS:背景颜色的背景图像
- 22. 从许多背景图像中创建一个背景图像
- 23. CSS重复的背景图像的背景图像完成
- 24. Android中的背景和前景图像
- 25. 将背景图像添加到现有的背景图像
- 26. 背景图像中铬
- 27. 居中背景图像
- 28. 背景图像CATiledLayer
- 29. 从背景图像
- 30. TextField背景图像