作家
登录

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

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

        // 根据随机数算出它和当前方块有若干距离 
  •         let deltaDistance = Double(arc4random() % 25 + 25) / 100.0  // 范围: 0.25 ~ 0.5 
  •           
  •         // 根据是左(x 轴)照样右(z 轴),决定下一?方块的地位 
  •         if nextDirection == .left { 
  •             node.position = SCNVector3(realPosition.x + Float(deltaDistance), realPosition.y, realPosition.z) 
  •         } else { 
  •             node.position = SCNVector3(realPosition.x, realPosition.y, realPosition.z + Float(deltaDistance)) 
  •         } 
  •     } 
  •       
  •     // 参加子节点,并添加进方块数组 
  •     sceneView.scene.rootNode.addChildNode(node) 
  •     boxNodes.append(node) 
  • 经由过程以上办法,就可以在游戏中生成方块。那么,这个办法何时调用呢?

    第一个是在开端游戏时。我们经由过程点击的方法,决定在哪里开端游戏。

    这里我们 override 了 touchesBegan(_:_:) 这个办法(其实还有 touchesEnd(_:_:) ),具体为什么会在后文解释。

    1. override func touchesBegan(_ touches: Setwith event: UIEvent?) { 
    2.     ... 
    3.     // 添加瓶子 
    4.     func addConeNode() { 
    5.         bottleNode.position = SCNVector3(boxNodes.last!.position.x, 
    6.                                          boxNodes.last!.position.y + Float(kBoxWidth) * 0.75, 
    7.                                          boxNodes.last!.position.z) 
    8.         sceneView.scene.rootNode.addChildNode(bottleNode) 
    9.     } 
    10.       
    11.     // 点击测试,有没有获得一个特点点的三维坐标? 
    12.     func anyPositionFrom(location: CGPoint) -> (SCNVector3)? { 
    13.         let results = sceneView.hitTest(location, types: .featurePoint) 
    14.         guard !results.isEmpty else { 
    15.             return nil 
    16.         } 
    17.         return SCNVector3.positionFromTransform(results[0].worldTransform) 

        推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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