作家
登录

用ARKit做一个仿微信"跳一跳"游戏

作者: 来源: 2018-01-05 13:13:33 阅读 我要评论

  •     } 
  •       
  •     let location = touches.first?.location(in: sceneView) 
  •     if let position = anyPositionFrom(location: location!) { 
  •         generateBox(at: position) 
  •         addConeNode() 
  •         generateBox(at: boxNodes.last!.position) 
  •     } 
  •     ... 
  • 扑晡差大年夜的应用 ARKit 的处所应当就是在这里的 anyPositionFrom(_:) 办法。在这里应用点击测试 hitTest(_:_:),决定有没有点触到屏幕上随便率性一?特点点。如不雅有的话,那么就应用一个对 SCNVector3 的扩大,把取得的实际世界的坐标转换成虚拟世界的坐标。接下来的各类操作,就都转换成虚拟世界的坐标系啦。

    1.    bottleNode.runAction(SCNAction.group(actions), completionHandler: { [weak self]  
    2.         // 获合适缁ゎ后一个方块,也就是这个瓶子要跳以前的方块 
    3.         let boxNode = (self?.boxNodes.last!)! 
    4.           
    5.         // 如不雅这个方块没包含了瓶子,那么竽暌刮戏掉败 
    6.         if (self?.bottleNode.isNotContainedXZ(in: boxNode))! { 
    7.             // 记录高分、提示掉败等 
    8.         } else { 
    9.             // 如不雅包含,那么竽暌刮戏持续,生成下一?方块 
    10.             ... 
    11.             generateBox(at: (self?.boxNodes.last!.position)!) 
    12.         } 
    13.     }) 

    第二个生成方块的处所是在棋子成功落鄙人一?方块时,具领会在后文解释。

    2.2 让婵子跳

    前面提到,我们要覆写 touchesBegan(_:_:) 和 touchesEnd(_:_:)。

    在“跳一跳”中,决定瓶子能飞多远的身分是按压屏幕的时光。经由过程这两个办法,一个开端一个停止,就可以获得开端按压和停止按压的时光,再作差就可以轻松获得一次按压的时光长度。再经由过程这个长度进行一些函数计算,就可以获得下一次要活动的距离。于是,很多关键逻辑就都可以放在这两个办法里。

    【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?

    起首,声明一个 tuple,记录按压屏幕的肇端和终止时光:

    1. private var touchTimePair: (begin: TimeInterval, end: TimeInterval) = (0, 0) 

    然后,声明一个闭包,用来经由过程时光差计算活动距离,这里我们简单地进行一个除法运算:

    1. private let distanceCalculateClosure: (TimeInterval) -> CGFloat = { 
    2.     return CGFloat($0) / 4.0 

    下面是这两个办法。按压开端时:

    1. override func touchesBegan(_ touches: Set

        推荐阅读

        还在用浏览器内的「保存密码」功能?你的密码可能被黑客记下来了

      【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?安然研究人员发明,营销公司已经开端应用浏览器内置暗码治理器中已存在 11 年的一个马脚,来偷偷盗取你的电子邮件地址,>>>详细阅读


      本文标题:用ARKit做一个仿微信"跳一跳"游戏

      地址:http://www.17bianji.com/lsqh/40272.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)