Koen Kivits 访谈:多点触控开发大赛冠军

Koen Kivits 凭借其精彩的 TRON 风格手机游戏 TouchCycle 赢得了 多点触控开发大赛。最近,我有机会了解更多关于 Koen 的信息:他的工作、他的抱负以及他对网页开发未来的看法。

Koen Kivits

访谈

你是如何对网页开发产生兴趣的?

我从高中就开始创建网站,但直到两年前开始工作才真正认真地投入网页开发。我最初并非专门应聘网页开发职位,但我最终还是走上了这条道路。我刚加入公司时,公司正准备推出一个重大新产品,这款产品是基于网页的,此后发展迅速。我们在持续增长过程中遇到的挑战以及我们如何解决这些挑战,让我真正意识到网页是一个重要的平台。

你能告诉我们一些关于 TouchCycle 如何运作的信息吗?

这款游戏基本上包含一个竞技场,竞技场中有 2 个或多个玩家。每个玩家都有一个位置和一个移动目标。每个玩家移动时,都会在竞技场中留下轨迹。

玩家轨迹中的每个片段都被定义为一个简单的线性方程,这使得计算片段之间的交叉点非常容易。碰撞检测通过检查玩家即将生成的轨迹片段是否与已经存在的轨迹片段相交来完成。

竞技场绘制在一个 <canvas> 元素 上,游戏开始时,该元素的大小会调整为适合屏幕。<canvas> 上注册了 3 个 触摸事件 处理程序

  • touchstart:将最近未注册的玩家(如果有)注册到新触摸并设置其目标
  • touchmove:更新注册到移动触摸的玩家的目标
  • touchend:注销玩家

游戏运行期间,文档本身上的所有触摸事件都被取消,以防止滚动和缩放。

主游戏周围的所有内容(菜单、通知等)都是纯 HTML。菜单导航使用 HTML 锚点和一个 hashchange 事件处理程序,该处理程序会隐藏或显示与当前 URL 相关的内容。请注意,这意味着你可以使用浏览器的后退和前进按钮在游戏中进行导航。

开发 TouchCycle 时你遇到的最大挑战是什么?

多点触控交互对我来说完全是新的,而且之前我对 <canvas> 元素的了解也很少,所以花了一些时间才阅读所有内容并开始工作。我还需要花一些时间调整碰撞检测和玩家跟随触摸的方式,以防止玩家轻易撞到自己的轨迹。

是什么让你对网页感到兴奋?

这个平台的开放性,体现在很多方面。任何拥有互联网连接的人都可以使用任何运行浏览器的设备访问网页。任何人都可以发布到网页——不需要许可证、无需审批流程,也不必受限于特定供应商。任何人都可以打开浏览器的开发者工具来查看应用程序的工作原理,甚至可以对其进行修改。任何人都可以为构成平台本身的标准做出贡献!

你最期待哪些新的网页技术?

我可能最期待 WebRTC。它为网页开发者打开了无数的可能性,尤其是在移动支持增加的情况下。例如,想象一下,将 WebRTC、地理位置 API设备方向 API 结合起来会创造出多么出色的增强现实应用程序。可能性是无限的。

如果你能改变网页的一件事,你会改变什么?

我真的很喜欢网页的协作性。然而,这种协作的一个问题是,相互冲突的利益会导致新标准的延迟或停滞。一个很好的例子是 HTML <video> 元素,我认为即使作为一项基本功能,它在今天仍然不太好用。

浏览器供应商应该在支持的格式方面拥有灵活度,但我认为如果有一个最低要求,即至少支持 1 种常见的开放格式,这将是一件好事。

你对其他有抱负的网页开发者有什么建议吗?

作为一名开发者,我认为我从阅读其他人的代码中学到了很多。如果你喜欢某个库或网页应用程序,花一些时间分析其源代码非常值得。查看其他人如何解决问题,真的很有启发性;它可以为你提供关于如何构建自己代码的提示,还可以教会你一些你甚至不知道的技术。

另外,不要害怕偶尔阅读标准规范,以便真正了解你正在使用的技术。

进一步阅读