2.3 断定游戏掉败
因为我们的方块和瓶子都是沿着坐标轴或其平行线活动的,所以 2.2 节中提到的 isNotContainedXZ(in:) 办法可以如许描述:
- func isNotContainedXZ(in boxNode: SCNNode) -> Bool {
- let box = boxNode.geometry as! SCNBox
- let width = Float(box.width)
- if fabs(position.x - boxNode.position.x) > width / 2.0 {
- return true
- }
- if fabs(position.z - boxNode.position.z) > width / 2.0 {
- return true
- }
- return false
- }
具体含义就是比较方块和瓶子的中间点在 x 轴和 z 轴上的差值的绝对值,只要有任何一个大年夜于方块宽度的一半,就认为瓶子落在了方块范围以外,示意图如下(红色代表瓶子中间点):

当然,如不雅力争简洁,那么可以把方块都变成圆柱,如许就只须要断定两者中间点的距离和圆柱横截面半径大年夜小之间的关系就行了。
于是,大年夜体的游戏流程就都完成了。起首是生成方块,然后根据按压时光长短来让婵子进交活动,并且在活动完成后断定游戏有没有掉败,如许就形成了游戏逻辑的闭环。
3. 小小的偷懒和可以优化之处
因为时光很仓促,在很多处所都做了一点小小的偷懒。比如:
- 在 ARKit 初始化时,三维坐标系的偏向就肯定了。所以在全部游戏中,x 轴和 z 轴的偏向不克不及改变。
- 生成方块的外形单一,不像微信还有圆柱、圆台等等。
- 界面有点丑(毕竟用的都是原生 SCNGeometry)
【编辑推荐】
- 2017年进入尾声,苹不雅大年夜笔押注的ARkit还好么?
- 新零售时代,AR购物开启新疆场
- AR游戏觉悟,或将成为手游将来独角兽
- Magic Leap终于正式颁布首款头显!20亿美元加6年研发可否重建市场对AR的信念?
- 自负年夜iOS 11 宣布后,开辟者对 ARKit 的兴趣大年夜减
推荐阅读
还在用浏览器内的「保存密码」功能?你的密码可能被黑客记下来了
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?安然研究人员发明,营销公司已经开端应用浏览器内置暗码治理器中已存在 11 年的一个马脚,来偷偷盗取你的电子邮件地址,>>>详细阅读
本文标题:用ARKit做一个仿微信"跳一跳"游戏
地址:http://www.17bianji.com/lsqh/40272.html
1/2 1