gpt4 book ai didi

xcode - 视差滚动 SpriteKit

转载 作者:搜寻专家 更新时间:2023-10-31 08:34:27 25 4
gpt4 key购买 nike

我找到了一个使用 objective-C 在 spritekit 中进行视差滚动的教程,尽管我一直试图将它移植到 swift 上,但没有取得太大成功,事实上几乎没有成功。

Parallax Scrolling

有没有人有在 swift 中进行视差滚动的任何其他教程或方法。

最佳答案

这是启动视差背景的一种 super 简单的方法。带滑冰!我希望它能帮助您了解基础知识,然后再转向更难但更有效的编码方式。 因此,我将从让背景移动的代码开始,然后您尝试复制前景或要放入场景中的对象的代码。

//declare ground picture. If Your putting this image over the top of another image (use a png file).
var groundImage = SKTexture(imageNamed: "background.jpg")

//make your SKActions that will move the image across the screen. this one goes from right to left.
var moveBackground = SKAction.moveByX(-groundImage.size().width, y: 0, duration: NSTimeInterval(0.01 * groundImage.size().width))

//This resets the image to begin again on the right side.
var resetBackGround = SKAction.moveByX(groundImage.size().width, y: 0, duration: 0.0)

//this moves the image run forever and put the action in the correct sequence.
var moveBackgoundForever = SKAction.repeatActionForever(SKAction.sequence([moveBackground, resetBackGround]))

//then run a for loop to make the images line up end to end.
for var i:CGFloat = 0; i<2 + self.frame.size.width / (groundImage.size().width); ++i {
var sprite = SKSpriteNode(texture: groundImage)
sprite.position = CGPointMake(i * sprite.size.width, sprite.size.height / 2)
sprite.runAction(moveBackgoundForever)
self.addChild(sprite)
}
}
//once this is done repeat for a forground or other items but them run at a different speed.

/*确保您的图片在视觉上首尾相连。只是复制此代码将不会像您将看到的那样工作,但它是一个起点。暗示。如果您使用像简单障碍物这样的项目,那么使用 Action 来生成一个创建该障碍物的函数可能也是一个不错的方法。如果有两个以上的独立视差对象,那么对这些对象使用数组将有助于提高性能。有很多方法可以解决这个问题,所以我的观点很简单:如果你不能从 ObjectiveC 移植它,那么在 Swift 中重新考虑它。祝你好运!

关于xcode - 视差滚动 SpriteKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25699411/

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