用Swift语言和Sprite Kit复制微信飞机大战游戏
2024-08-26 02:46:35
先上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!
最新文章
- 使用NuGet发布自己的类库包(Library Package)
- BZOJ 2462: [BeiJing2011]矩阵模板
- 记一个界面刷新相关的Bug
- CP/IP,SPDY,WebSocket 三者之间的关系
- js控制全屏窗口
- 我的第一个chrome扩展(1)——读样例,实现时钟
- with 语句
- python编码问题的理解与解决
- osg通过glsl实现一个平面的水效果(法线贴图) 【转】
- expunge
- WordPress BackWPup插件‘tab’参数跨站脚本漏洞
- 为什么 HTTP 有时候比 HTTPS 好?
- JDK Debug
- html中的rowspan和colspan
- RBS SharePoint 2010 Server.wmv
- centos iftop iotop htop
- 作为php了解一下共享内存的概念及优缺点
- STL-容器库000
- Linux cp 强制覆盖
- Java 8 新特性-菜鸟教程 (3) -Java 8 函数式接口
热门文章
- webdrive脚本打开firefox浏览器,报“AttributeError: module 'selenium.webdriver' has no attribu
- JAVA基础——设计模式之单列模式
- 怎样让Oracle的存储过程返回结果集
- linux下nginx、php和mysql安装配置
- 如何使用 Laravel Collections 类编写神级代码
- Python之turtle库-小猪佩奇
- Python和Java的语法对比,语法简洁上python的确完美胜出
- nodejs的express框架创建https服务器
- python面向对象编程实例
- windows系统安装虚拟机VMware12,然后在虚拟机中安装Red Hat Enterprise Linux6操作系统