Swift游戏实战-跑酷熊猫 08 产生源源不断的移动平台
2015-02-05 14:52
239 查看
原文:Swift游戏实战-跑酷熊猫 08 产生源源不断的移动平台
当上一个平台的右边完全进入场景的时候,就可以生成新的平台类。
如何知道上一个平台完全进入场景:
主场景中有个变量lastDis记录着平台还有多少距离完全进入场景,他的计算公式是:
平台的长度+x坐标 - 主场景的宽度
我们通过代理将lastDis回传给主场景
所以这里我们需要一个代理,这个代理有个方法叫onGetData:
主场景要遵循这个代理
在主场景中实现onGetData这个方法,将回传的值赋予lastDis变量
lastDis是随着平台的速度做变化,也就是在update中做减法,当lastDis小等于0的时候生成新的平台:
最后我们在平台工厂类中写一个新的方法用来生成随机长度的平台
原理
代码实现
这节内容我们一起学习下平台的生产算法。要点:
何时生成新的平台:当上一个平台的右边完全进入场景的时候,就可以生成新的平台类。
如何知道上一个平台完全进入场景:
主场景中有个变量lastDis记录着平台还有多少距离完全进入场景,他的计算公式是:
平台的长度+x坐标 - 主场景的宽度
我们通过代理将lastDis回传给主场景
delegate?.onGetData(platform.width + x - sceneWidth)
所以这里我们需要一个代理,这个代理有个方法叫onGetData:
protocol ProtocolMainScene{ func onGetData(dist:CGFloat) }
主场景要遵循这个代理
GameScene: SKScene,ProtocolMainScene
在主场景中实现onGetData这个方法,将回传的值赋予lastDis变量
func onGetData(dist:CGFloat){ self.lastDis = dist }
lastDis是随着平台的速度做变化,也就是在update中做减法,当lastDis小等于0的时候生成新的平台:
override func update(currentTime: CFTimeInterval) { lastDis -= moveSpeed if lastDis <= 0 { println("生成新平台") //platformFactory.createPlatform(1, x: 1500, y: 200) platformFactory.createPlatformRandom() } platformFactory.move(self.moveSpeed) }
最后我们在平台工厂类中写一个新的方法用来生成随机长度的平台
func createPlatformRandom(){ //随机平台的长度 let midNum:UInt32 = arc4random()%4 + 1 //随机间隔 let gap:CGFloat = CGFloat(arc4random()%8 + 1) //x坐标 let x:CGFloat = self.sceneWidth + CGFloat( midNum*50 ) + gap + 100 //y坐标 let y:CGFloat = CGFloat(arc4random()%200 + 200) createPlatform(midNum, x: x, y: y) }
项目文件地址
http://yun.baidu.com/share/link?shareid=3824235955&uk=541995622Swift游戏实战-跑酷熊猫系列
00 游戏预览
01 创建工程导入素材
02 创建熊猫类
03 熊猫跑动动画
04 熊猫的跳和滚的动作
05 踩踏平台是怎么炼成的
06 创建平台类以及平台工厂类
07 平台的移动
相关文章推荐
- Swift游戏实战-跑酷熊猫 08 产生源源不断的移动平台
- Swift游戏实战-跑酷熊猫 07 平台的移动
- Swift游戏实战-跑酷熊猫 07 平台的移动
- Swift游戏实战-跑酷熊猫 06 创建平台类以及平台工厂类
- Swift游戏实战-跑酷熊猫 09 移除场景之外的平台
- Swift游戏实战-跑酷熊猫 06 创建平台类以及平台工厂类
- swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法
- Swift游戏实战-跑酷熊猫 12 与平台的碰撞
- Swift游戏实战-跑酷熊猫 05 踩踏平台是怎么炼成的
- Swift游戏实战-跑酷熊猫 12 与平台的碰撞
- Swift游戏实战-跑酷熊猫 05 踩踏平台是怎么炼成的
- swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法
- Swift游戏实战-跑酷熊猫 09 移除场景之外的平台
- Swift游戏实战-跑酷熊猫 01 创建工程导入素材
- Swift游戏实战-跑酷熊猫(一) 简介 (含源代码)
- Swift游戏实战-跑酷熊猫 03 熊猫跑动动画
- Swift游戏实战-跑酷熊猫 13 二段跳的实现
- Swift游戏实战-跑酷熊猫 04 熊猫的跳和滚的动作
- Swift游戏实战-跑酷熊猫 02 创建熊猫类
- Swift游戏实战-跑酷熊猫 00 游戏预览