使用 spritekit,如何在横向卷轴游戏中实现滚动、随机倾斜的地板?
Using spritekit, how can you achieve a scrolling, randomly sloped floor in a side scrolling game?
我正在考虑类似于 Ski safari 的内容,如下面的 link 所示。
使用 SKActions 创建带有静态精灵的横向滚动效果非常简单,但是如果我想在随机山丘中使用相同的精灵(它是一个矩形),是否需要在每一帧转换精灵以创建新的山丘?如果是这样,您如何从 SpriteKit 中转换精灵?我觉得在移动平台上 运行 会导致帧率大幅下降
如果不是,是否意味着您必须自己创建斜坡并随机编程?
为了完整起见,下面是我如何生成一个简单的滚动地板:
func makeBackground(){
var backgroundTexture = SKTexture(imageNamed: "sprite-floor")
var shiftBackground = SKAction.moveByX(-backgroundTexture.size().width, y: 0, duration: 1.4)
var replaceBackground = SKAction.moveByX(backgroundTexture.size().width, y: 0, duration: 0)
var movingAndReplacingBackground = SKAction.repeatActionForever(SKAction.sequence([shiftBackground, replaceBackground]))
for(var i: CGFloat = 0; i < 5; i++){
let background=SKSpriteNode(texture: backgroundTexture)
background.anchorPoint = CGPointZero
background.size.height = self.frame.height / 10
background.position = CGPoint(x: backgroundTexture.size().width/2 + (backgroundTexture.size().width * i), y: background.size.height)
background.runAction(movingAndReplacingBackground)
self.addChild(background)
}
}
(出于某种原因,SO 图片上传器无法正常工作,所以这是我的示例的 link:http://www.unwinnable.com/wp-content/uploads/2012/04/Ski.jpg)
以下教程可能会有所帮助。
http://www.raywenderlich.com/32954/how-to-create-a-game-like-tiny-wings-with-cocos2d-2-x-part-1
它涉及复制 Tiny Wings 的关卡创建,该关卡已按程序生成山丘着陆。对你来说应该是一个很好的起点。
我正在考虑类似于 Ski safari 的内容,如下面的 link 所示。 使用 SKActions 创建带有静态精灵的横向滚动效果非常简单,但是如果我想在随机山丘中使用相同的精灵(它是一个矩形),是否需要在每一帧转换精灵以创建新的山丘?如果是这样,您如何从 SpriteKit 中转换精灵?我觉得在移动平台上 运行 会导致帧率大幅下降
如果不是,是否意味着您必须自己创建斜坡并随机编程?
为了完整起见,下面是我如何生成一个简单的滚动地板:
func makeBackground(){
var backgroundTexture = SKTexture(imageNamed: "sprite-floor")
var shiftBackground = SKAction.moveByX(-backgroundTexture.size().width, y: 0, duration: 1.4)
var replaceBackground = SKAction.moveByX(backgroundTexture.size().width, y: 0, duration: 0)
var movingAndReplacingBackground = SKAction.repeatActionForever(SKAction.sequence([shiftBackground, replaceBackground]))
for(var i: CGFloat = 0; i < 5; i++){
let background=SKSpriteNode(texture: backgroundTexture)
background.anchorPoint = CGPointZero
background.size.height = self.frame.height / 10
background.position = CGPoint(x: backgroundTexture.size().width/2 + (backgroundTexture.size().width * i), y: background.size.height)
background.runAction(movingAndReplacingBackground)
self.addChild(background)
}
}
(出于某种原因,SO 图片上传器无法正常工作,所以这是我的示例的 link:http://www.unwinnable.com/wp-content/uploads/2012/04/Ski.jpg)
以下教程可能会有所帮助。
http://www.raywenderlich.com/32954/how-to-create-a-game-like-tiny-wings-with-cocos2d-2-x-part-1
它涉及复制 Tiny Wings 的关卡创建,该关卡已按程序生成山丘着陆。对你来说应该是一个很好的起点。