Part I 空气曲棍球 Chapter9(Adding Touch Feedback)

 通过支持触控反馈获得好的用户交互体验是很多应用和游戏的基石,这样会让用户觉得他们能真正使用一些真实的东西,即使用户只是对着空白的屏幕也是如此。一些手机游戏之所以非常流行只是因为增加了一些触控而已;此时我想到了一个与鸟类有关的游戏(愤怒的小鸟?)。
    现在我们通过OpenGL绘制的空气曲棍球看起来已经比较好了,但是假如我们能够真正使用的话岂不是更好?在这一章节里,我们首先会增加触摸反馈,然后学习如何增加3D空间中的相交测试及碰撞检测,这样我们就能够操控球棍并在桌面上拖动它。
    下面是这一章节的计划:

  1. 首先增加触摸反馈,这里将会学习数学理论然后应用到曲棍球项目中。
  2. 然后学习如何使球棍拍打冰球并限制冰球的滚动范围为桌面。

    当我们学习完这一章节后,我们将可以用球棍击打冰球,此时冰球将会在桌面范围内来回弹跳!现在开始这一章节,首先复制上一章节的项目然后更名为AirHockeyTouch。
    下面是这一章节的内容划分:

9.1 增加触摸反馈(Adding Touch Support to Our Activity)

 

9.2 增加相交测试(Adding Intersection Tests)

 

9.3 拖动移动物体(Moving Around an Object by Dragging)

 

9.4 碰撞检测(Moving Around an Object by Dragging)

 

9.5 小节(A Review and Wrap-Up)

    在这一章节中我们学习了一些有趣的主题,首先学习了如何定位及移动球棍,然后学习检测到冰球运动到桌面边缘时进行反弹。
    有些数学理论你可能之前就已经会了,但是最重要的是要有深刻的理解这样你才能在项目中使用它们。当然你也可以使用一些开源的第三方库,比如: Bullet Physics and JBox2D
    还有很多方式可以扩展我们所学习到的东西,比如:你可以用它来做一个保龄球游戏;同时你要意识到触摸反馈是一项真正使得手机与众不同的地方,你还可以有自己的一些理富有想象力的发挥。
    我们的空气曲棍球项目就要结束了,你可以仔细回顾下所学,毕竟能坚持到最后不容易。但是我们所做的还不够,与一个真正完整的游戏还相差甚远;我还可以加入一些声音、AI功能、菜单以及一些特效,学习到这里我们已经有了一些比较好基础而且可以开始这些任务了。而且已经有一些开源库可以帮助你完成这些功能,比如libgdx。你也可以在有关游戏开发的这本书Beginning Android Games 中学习这些内容的更详细信息。
    在这一过程中我们也学习了一些比较重要的概念;首先学习了渲染器如何工作,然后学习OpenGL是如何使用颜色、矩阵、纹理来构造显示的物体,我们还学习了如何构造一些简单的形体并在一定范围内移动它们。在这里你应该为自己的所学及所做感到自豪,因为直到现在都是通过自己一步步使用最底层的OpenGL API完成的。

9.6 练习(Exercises)

    在开始下一章节(下一部分)之前,让我们来花些时间来做下面的练习:
因为我们并不是每一帧都会改变矩阵,所以可以针对 viewProjectionMatrix 及invertedViewProjectionMatrix采取什么优化措施呢?

  1. 现在不管球棍在哪个方向拍打冰球冰球的运动都是一样的,更新碰撞检测代码理考虑拍打的角度。
  2. 更新你的碰撞检测代码以考虑冰球与球棍的碰撞;另外考虑如何让冰球运动的帧率独立。提示:保存一个单位运动向量,然后计算两帧之间的运动差值。

    为了作为以后的参考,最好花些时间研究下叉乘与点乘,可以看些可视化效果以便更好的理解它们的真正意义。

最后附件源代码(点击下载

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值