先上GitHub链接:

https://github.com/songrotek/PlaneWar.git

接下来略微解说一下!

这个程序还有点Bug,见谅!

1 说明

游戏採用了Sprite kit最新的Per pixel for physic 技术。就是直接使用texture纹理作为sprite的physics body 。

游戏的texture.atlas从别的打飞机项目中拷之并辛苦地分解了。

游戏编写借鉴了网上的objc代码!

2 游戏编写过程

加入背景-》

加入控制的飞机-》

加入发子弹-》

加入敌机-》

检測contact接触-》

加入分数-》

加入游戏控制暂停。继续。又一次開始

3 须要注意的问题

1)SKScene

GameScene加载时默认的frame大小 是1024*768,这是因为GameScene.sks的设置决定的。

但对于打飞机这款仅仅要竖屏就能玩的游戏来说,没有这个必要,所以在GameViewController里初始化时设置了GameScene的大小

scene.size = view.frame.size

当然也能够在Sprite kit editor中直接改

2)per pixel的问题

因为physics body是texture的形状并且是像素级别。所以有锯齿,导致的问题就是contact接触检測时出现一次接触调用n次didBeginContact:函数

解决的方法就是把图用photoshop打开编辑。把边修得平一点。

4 小结

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

最新文章

  1. 使用NuGet发布自己的类库包(Library Package)
  2. BZOJ 2462: [BeiJing2011]矩阵模板
  3. 记一个界面刷新相关的Bug
  4. CP/IP,SPDY,WebSocket 三者之间的关系
  5. js控制全屏窗口
  6. 我的第一个chrome扩展(1)——读样例,实现时钟
  7. with 语句
  8. python编码问题的理解与解决
  9. osg通过glsl实现一个平面的水效果(法线贴图) 【转】
  10. expunge
  11. WordPress BackWPup插件‘tab’参数跨站脚本漏洞
  12. 为什么 HTTP 有时候比 HTTPS 好?
  13. JDK Debug
  14. html中的rowspan和colspan
  15. RBS SharePoint 2010 Server.wmv
  16. centos iftop iotop htop
  17. 作为php了解一下共享内存的概念及优缺点
  18. STL-容器库000
  19. Linux cp 强制覆盖
  20. Java 8 新特性-菜鸟教程 (3) -Java 8 函数式接口

热门文章

  1. webdrive脚本打开firefox浏览器,报“AttributeError: module 'selenium.webdriver' has no attribu
  2. JAVA基础——设计模式之单列模式
  3. 怎样让Oracle的存储过程返回结果集
  4. linux下nginx、php和mysql安装配置
  5. 如何使用 Laravel Collections 类编写神级代码
  6. Python之turtle库-小猪佩奇
  7. Python和Java的语法对比,语法简洁上python的确完美胜出
  8. nodejs的express框架创建https服务器
  9. python面向对象编程实例
  10. windows系统安装虚拟机VMware12,然后在虚拟机中安装Red Hat Enterprise Linux6操作系统