在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
这节内容我们一起学习下随机长度的踩踏平台的原理是怎么样的。 要点:平台类 我们的平台类继承于SKNode,这样就能被添加进其它节点进而显示在场景中。 它有一个方法来创建平台,这个方法接收一个包含SKSpriteNode的数组。将数组里面的对象横向拼接在一起组成一个完整的平台。同时计算出平台的宽度 onCreate(arrSprite:[SKSpriteNode]){ for platform in arrSprite{ platform.position.x=self.width self.addChild(platform) self.width += platform.size.width } }
平台工厂类 这个类控制平台类的产生。同时有三个常量记录着平台的纹理,就不需要每次都去加载本地的资源文件。起到优化的作用。 let textureLeft = SKTexture(imageNamed: "platform_l") let textureMid = SKTexture(imageNamed: "platform_m") let textureRight = SKTexture(imageNamed: "platform_r") createPlatform方法是外部调用用于生成平台的方法
func createPlatform(midNum:UInt32,x:CGFloat,y:CGFloat){ let platform = Platform(); let platform_left = SKSpriteNode(texture: textureLeft) platform_left.anchorPoint = CGPointMake(0, 0.9) let platform_right = SKSpriteNode(texture: textureRight) platform_right.anchorPoint = CGPointMake(0, 0.9) var arrPlatform = [SKSpriteNode]() arrPlatform.append( platform_left ) platform.position = CGPointMake(x, y) for i in 1...midNum{ let platform_mid = SKSpriteNode(texture: textureMid) platform_mid.anchorPoint = CGPointMake(0, 0.9) arrPlatform.append(platform_mid) } arrPlatform.append(platform_right) platform.onCreate(arrPlatform) self.addChild(platform) }
场景中表现 最后我们在场景中申明一个平台工厂类 @lazy var platformFactory = PlatformFactory()
并创建一个平台 self.addChild(platformFactory) platformFactory.createPlatform(1, x: 0, y: 200)
项目文件地址http://yun.baidu.com/share/link?shareid=3824235955&uk=541995622
Swift游戏实战-跑酷熊猫系列00 游戏预览01 创建工程导入素材02 创建熊猫类03 熊猫跑动动画04 熊猫的跳和滚的动作05 踩踏平台是怎么炼成的 |
请发表评论