iOS 游戏开发-SpriteKit入门

因为业务需要,同时也是为了提高自身的代码水平,写这篇文章希望各位大牛多多指点.

本文参考了

https://onevcat.com/2013/06/sprite-kit-start/SpriteKit王巍 的技术博客 尽管有点年代了,但是经典之作还是很好的.

1,首先创建新项目,选择iOS->Game创建

创建好之后会发现多了这四个文件,后来发现暂时用不到,果断将他们删除了,GameViewController
就相当于普通项目的ViewController

iOS 游戏开发-SpriteKit入门_第1张图片
项目框架

2,创建基于SKScene的GameScreen


iOS 游戏开发-SpriteKit入门_第2张图片
GameScreen用到的属性

在它的初始化方法中添加背景音乐,为甚不先加精灵元素(SKSpriteNode)呢,因为本人被这个背景音乐搞得头大,一直crash.抱着对技术负责的心态,去搜索相关的东西,无论是AVAudioPlayer还是AVPlayer都播放改背景音乐有问题,这时候有点怀疑是不是音乐的问题,果断去百度下载音乐,无奈都是各种坑,版权无法下载,最后还是在本机搜索到一个MP3格式的文件,放进去测试项目可以播放,然后放进游戏也是很流畅.可能是版本升级之后,改背景音乐不支持了吧(也可能改音乐文件中毒了),最后才加进去了背景音乐(添加在初始化方法中).

iOS 游戏开发-SpriteKit入门_第3张图片
播放本地音乐

然后将玩家添加到screen中


iOS 游戏开发-SpriteKit入门_第4张图片
添加玩家

添加怪物并且让它们从屏幕右侧跑出来,在屏幕左侧的时候从屏幕中移除,同时添加到数组中.值得一提的是为了让游戏不太死板,在设置移动速度的时候,通过随机数生成随机的速度.


iOS 游戏开发-SpriteKit入门_第5张图片
添加玩家

玩家和怪物都添加完毕之后,是时候让他们互动起来了,这里我们在touchesBegan:
方法中实现,通过获取当前点击的location,计算偏移量和移动距离添加子弹,在子弹出屏幕的时候移除掉.相比于静态的UIView,SKScreen中是一个动态监测,它的-(void)update:(CFTimeInterval)currentTime方法可以为我们提供实时的精灵对象位置信息,通过遍历怪物和子弹的位置关系,判断是否打中怪物,同时做相应的移除处理,并且计算得分.然后通过得分情况展示对应的展示结果的Screen.

3,总结:这是本人首次写技术相关的文章,文章较短,内容较少,希望大家多多指点.

你可能感兴趣的:(iOS 游戏开发-SpriteKit入门)