2.5 Processing.js
Processing语言诞生于2004年左右,现在已经成长为一个非常强大的工具,而Processing.js才刚刚起步。Processing和Processing.js还是有一些差别的。Processing拥有超过100个库,很大程度上扩展了它的功能,同时成为了它的魅力所在。这些类库包括了从物理模拟到摄像头技术和人脸识别过程中的所有内容。JavaScript版的Processing远不及原版的一点是它无法导入和使用这些类库。基本上,只能使用Processing的基本功能。但有消息称,现在有人正在试图把这些类库导入到JavaScript版的Processing中去,集成更多的功能。
另外,Processing.js的性能也不是很好。在原版的Processing中,及时绘制上千个对象,在舞台上同时显示,也不会影响帧频。但是在JavaScript版中,效果明显差很多。这很大程度上是受到HTML5 canvas渲染能力的限制所制。但是每个浏览器都在更新,我们可以看到canvas的渲染速度正在在逐步提升。
2.5.1 Processing.js如何工作
尽管Processing.js可以看做是Processing的轻量级版本,但在Web中运行时,依旧不支持有些功能。从使用者的角度来看,Processing.js的工作原理非常简单。要做的就是像在Processing里一样编写代码,然后在转换为Web项目时,依据简单的说明,把项目绑定到canvas上就好了。Processing.js的工作只是简单的转化代码,然后应用到HTML5 canvas标签上。这让程序员的生活简单起来,因为不用再去学一门新技术了,只需按自己所知道的去做,然后将Processing sketch扩展到Web中去。
需要注意的是,在Processing中,sketch就是代码编译后产生的视图。
2.5.2 如何使用Processing.js
Processing.js对于初学编程的人来说非常好。因为它主要用来创建一些视觉效果,初学者在学习和理解编程概念时会比较直观,甚至不用下载任何软件就可以开始编码了。查看本章的“资源分享”一节,可以找到一些在线编辑器。它们让编写Processing.js代码编程一种享受。
对于希望在网站上加入一些交互或动态元素的设计人员来说,Processing.js同样是很有帮助的。
游戏开发者是另外一个Processing.js需求群体,可以用它简化图形和视觉效果的创建过程,以享用强大的灵活性。如果想知道Processing.js是否比JavaScript和canvas API要直观,你可以亲自对比体验一下。
简而言之,Processing让编程变的简单。对于没有编程基础的人们来说,它是一个简单好用但又非常强大的工具。它还专业程序员们带来了大量专注于视觉编程的类库,来实现无限的创意。
2.5.3 Processing.js的优缺点
Processing和openFrameworks是创意编码软件公司中最主要的两个。不过openFrameworks是基于C++,而Procesing是基于Java的。这也是它们最主要的不同。他们在功能和作用上非常相似 ,就像可口可乐和百事可乐一样。相比其他现有的创意编码软件(如Cinder、VVVV和nodeBox),Processing和openFrameworks是最流行的了。
关于JavaScript版的Processing,下面简单列举它的一些优缺点。
优点主要体现在以下几个方面。
- 拥有出色的图像库。
- 无需有JavaScript基础。
- 强大的论坛和社区。
- 跨浏览器的兼容性。
- 可单独编写,也可嵌入到JavaScript代码中。
- 完全免费。
缺点主要体现在以下几个方面。
- 有限的功能(缺少一些核心类库,比如视频和音频支持)。
- 只能调用游戏的Processing类库。
- 调试困难。
- 远不及原版的Processing。
2.5.4 是否适合开发游戏
一个字:是。
某些特定类型的游戏非常适合用Processing.js开发,比如像A到B这样的益智游戏,不需要有多么精美的画面,非常适合用Processing.js。这类游戏的舞台中渲染的对象很少,canvas完全可以胜任。而像足球或多人射击游戏最好是用更加成熟的引擎(如Unity)来开发。这些引擎的图像渲染能力非常强大,可以同时处理大量的对象。Unity本身就是一个游戏引擎,内置了很多游戏相关的功能,免于编码。
我相信,大多时候是漂亮的游戏画面把玩家吸引到游戏中来,而真正让玩家继续玩下去的是游戏的可玩性。如果按照这个准则进行开发,那么Processing.js可以是完美的解决方案——不仅仅只是构建游戏原型,还可以创建一个完整的游戏。