注册 登录
主题 : 用Swift语言复制微信飞机大战游戏
级别: 新手上路
UID: 167410
精华: 0
发帖: 5
可可豆: 130 CB
威望: 130 点
在线时间: 8(时)
注册时间: 2012-09-19
最后登录: 2015-03-15
0 楼:  发表于: 2014-06-13 22:31    发自: Web Page

用Swift语言复制微信飞机大战游戏   

先上GitHub链接:
https://github.com/songrotek/PlaneWar.git


接下来稍微讲解一下!
这个程序还有点Bug,见谅!

1 说明
游戏采用了Sprite kit最新的Per pixel for physic 技术,就是直接使用texture纹理作为sprite的physics body 。
游戏的texture.atlas从别的打飞机项目中拷之并辛苦地分解了。

2 游戏编写过程
添加背景-》
添加控制的飞机-》
添加发子弹-》
添加敌机-》
检测contact接触-》
添加分数-》
添加游戏控制暂停,继续,重新开始

3 需要注意的问题
1)SKScene
GameScene载入时默认的frame大小 是1024*768
但对于打飞机这款只要竖屏就能玩的游戏来说,没有这个必要,所以在GameViewController里初始化时设置了GameScene的大小
scene.size = view.frame.size
2)per pixel的问题
由于physics body是texture的形状而且是像素级别,所以有锯齿,导致的问题就是contact接触检测时出现一次接触调用n次didBeginContact:函数
解决办法就是把图用photoshop打开编辑,把边修得平一点。

4 小结
整体上来说,用Swift和ObjC本质是一样的,该怎么编写还是得怎么编写,但代码确实是简洁了不少,可以节省很多时间。所以建议换到Swift!

级别: 新手上路
状态: 连续签到 - [1天]
UID: 323977
精华: 0
发帖: 9
可可豆: 34 CB
威望: 31 点
在线时间: 18(时)
注册时间: 2014-06-10
最后登录: 2018-09-21
1 楼:  发表于: 2014-06-17 09:48    发自: Web Page
学习了,正好最近在做的一个游戏中有一个小功能不知道如何实现。参照一下。谢谢!
Dreamer
级别: 新手上路
状态: 连续签到 - [3天]
UID: 315106
精华: 0
发帖: 1
可可豆: 24 CB
威望: 7 点
在线时间: 22(时)
注册时间: 2014-05-13
最后登录: 2014-10-30
2 楼:  发表于: 2014-06-19 09:55    发自: Web Page
看完了,楼主很强大。
级别: 新手上路
UID: 16887
精华: 0
发帖: 12
可可豆: 41 CB
威望: 21 点
在线时间: 31(时)
注册时间: 2010-04-06
最后登录: 2016-03-27
3 楼:  发表于: 2014-06-19 11:03    发自: Web Page
看着很棒,赞一个。
级别: 新手上路
状态: 连续签到 - [4天]
UID: 174294
精华: 0
发帖: 12
可可豆: 46 CB
威望: 37 点
在线时间: 23(时)
注册时间: 2012-10-31
最后登录: 2018-08-10
4 楼:  发表于: 2014-06-19 23:05    发自: iPad
Mark 明天研究下碰撞是怎么搞的
级别: 新手上路
UID: 218998
精华: 0
发帖: 5
可可豆: 5 CB
威望: 5 点
在线时间: 48(时)
注册时间: 2013-04-16
最后登录: 2016-02-12
5 楼:  发表于: 2014-06-22 13:01    发自: Web Page
感谢楼主分享,学习一下

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部