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

来源:互联网 发布:天网 软件 编辑:程序博客网 时间:2024/04/30 07:34

先上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!




0 0
原创粉丝点击