博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用Swift语言和Sprite Kit复制微信飞机大战游戏
阅读量:4122 次
发布时间:2019-05-25

本文共 713 字,大约阅读时间需要 2 分钟。

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

你可能感兴趣的文章
Binary Tree Maximum Path Sum 自底向上求解(重重重重)
查看>>
Subsets 深搜
查看>>
Subsets II
查看>>
Edit Distance 字符串距离(重重)
查看>>
Gray Code 格雷码
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
web.py 0.3 新手指南 - 如何用Gmail发送邮件
查看>>
web.py 0.3 新手指南 - RESTful doctesting using app.request
查看>>
web.py 0.3 新手指南 - 使用db.query进行高级数据库查询
查看>>
web.py 0.3 新手指南 - 多数据库使用
查看>>
一步步开发 Spring MVC 应用
查看>>
python: extend (扩展) 与 append (追加) 的差别
查看>>
「译」在 python 中,如果 x 是 list,为什么 x += "ha" 可以运行,而 x = x + "ha" 却抛出异常呢?...
查看>>
浅谈JavaScript的语言特性
查看>>
LeetCode第39题思悟——组合总和(combination-sum)
查看>>
LeetCode第43题思悟——字符串相乘(multiply-strings)
查看>>
LeetCode第44题思悟——通配符匹配(wildcard-matching)
查看>>
LeetCode第45题思悟——跳跃游戏(jump-game-ii)
查看>>
LeetCode第46题思悟——全排列(permutations)
查看>>
LeetCode第47题思悟—— 全排列 II(permutations-ii)
查看>>