日更第1期-2015-1-15-openFrameworks系列第零讲-跟我学习openFrameworks吧!

如标题所说,这个系列教程是 日 更!也就是说,我每天都会写一篇新的文章。本身,我写这系列文章是为了督促我自身的学习,

但是,说不定也可以帮到其他人的忙,所以,我选择放到博客里来写。任何有问题的读者都可以回复我,或者和我发电子邮件。

考虑到估计不会有太多人看到,所以我觉得我基本可以做的有问必答吧,虽然可能答不上来......

邮箱:nerver0stop@163.com

 

那么闲话少说,进入正题。

 

这个Openframeworks系列教程的目的在于使读者初步了解这个C++框架,并且开始可以运用它的特性做出一些有创意的应用程序。

那么,我先介绍一下OpenFrameworks。

 

什么是OpenFrameworks?

 

openFrameworks is an open source C++ toolkit designed to assist the creative process

by providing a simple and intuitive framework for experimentation.

(http://openframeworks.cc/about/)

    翻译过来就是:openFrameworks是一种开源的C++工具集,它被设计成为一种简单、自然的试验用程序框架,可以协助

    设计具有创造性的应用。

       

                            (logo)

    

    由于我的日更系列教程是面对所以水平的观众的,我在这里稍微解释一下这句话的意思。

    首先,如果想要电脑做些什么,实现些什么功能,你必须告诉它怎么做。而且必须十分详尽的,完全的告诉它,不然它就会犯错。

    于是,使用计算机的人,为了减轻自己的重复劳动,也为了减轻他人的学习成本,就将一部分指令按照特殊的规则整理起来,

    那么,每次想让计算机做些什么的时候,你就让它去找那些指令,它就可以自动地去完成你交给它的任务了。这种指令的集合,

    就是程序。(这里为了便于理解,和真实情况有一些出入,想详细了解还请自学)

    

    那么,为了编写程序,也就是编程,你就必须要学会和计算机交谈,并且是用它的语言。可是计算机只能读懂二进制1和0,

    (比如,你想表达4这个数字,你就要说100。更多有关进制的知识在以后的教程中一定会讲到,不过不是现在)这对于人类

    来说真是个不小的问题。不过,最后一些聪明人还是想到了办法——创造一种计算机和人都能读懂的语言就好了——人要

    读懂的话,学习就好了;计算机要读懂,就困难些了,于是人们又给它找来了一个翻译——编译器。然后大家觉得这一切

    都是好的,就休息了。(openFrameworks使用的编程语言是C++,属于高级编程语言)

     

    等等,还没完!!就算现在有了编程语言,编程序还是件很难的事情啊!虽然有操作系统这个程序给我打基础,但是我要

    显示的窗口是什么类型,上面显示什么文字,怎么获取鼠标键盘输入,又怎么在屏幕上显示,依旧是一大堆要做啊!我只是

    想编一个简单的小程序试试我的想法,怎么需要这么多额外的东西啊!对,所以,勤(懒)劳(惰)的人们又发明了一种东西,

    叫做“框架”。openFrameworks就是一种框架,而且是很方便的一种。

 

    计算机科学发展到现在(2015年)只不过69年,而从个人计算机普及算起(1985年)就更短了。所以,这个学科中的很多

    概念其实都是从其他学科中借鉴过来的。framework,框架,这个词原本是用在建筑学里面的(建筑学的很多属于都被借鉴

    到软件工程里,毕竟两者确实有一定相似之处),指的就是框架,就是你想的钢筋、横梁、柱子。那其实现代的建筑,其

    构成就需要框架来提供支持,然后在上面进行建造、修饰,程序也是这样。

 

    使用框架的好处是——你不用去关注你不需要的那些细节,只专注于你想做的事。事实上,这个世界上的框架真是特别特别

    特别多!尤其是JS。(我最爱的语言)而在C++这个语言上,也有很多很多的框架,比如微软出的Win32,MFC,.NET,

    WPF,再比如开源框架OpenGL,OpenCV,游戏引擎cocos2d-x。而openFrameworks也只不过是浩如烟海的无数框架

    中的一种罢了。但是回到开始的那句话,你可能会注意到几个关键词:简单、开源。我接下来就要讲讲为什么

    我要学习OpenFrameworks并且推荐你使用了。

    

            (上图是html,即网页所用的标记语言,严格上来说不算编程语言。不过web的框架真是多)

 

    为什么要使用OpenFrameworks?

 

    1. 开源
    2. 简单
    3. 先进

 

    开源

    开源,open source,一词的含义是开放代码源文件,即把编写出来的程序源代码(用来编译成为程序的代码)开放的做法。

    一般,开源软件背后都有一个维护它的组织或社区、公司,大部分都允许别人自由的修改其代码(不过有的协议要求由此

    开发的代码必须开源,有的则不限,openFrameworks不限使用目的)甚至帮助修改其代码。

 

    使用开源代码的好处是——免费。在版权意识较低的中国,可能基本所有个人用软件都是“免费”的,但是,对于公司来说,

    或者要以正规目的发布的时候,即便在中国,也必须守规矩了。从这个意义上,使用OpenFrameworks这样的开源框架

    就很“方便”。(不过基本框架都要变成开源的了......)

 

    使用开源的另外一个好处是——可以学到基础知识,甚至参与其创建。拿OpenFrameworks来说,它就是许多程序员的

    共同开发下才制作出来的;有可能,在不久的将来,你将成为贡献者中的一分子!

 

    

                         (they made OF)

    简单

    简单的好处就是...简单。我认为,无论多么熟练的程序员,他都会倾向于使用最简单的方式——即便他要构建很复杂的东西

    ——那只不过是把复杂的东西先分化为简单的东西,再去处理它们罢了。对于编程经历尚浅的程序员来说,能有一个合适的

    学习曲线是十分重要的,而选好一个框架,就是迈进图形编程、应用编程等现实编程(而不是玩具式的编程)的重要一步

 

    OpenFrameworks的理念源于Processing,一种基于Java的,提供了全套开发环境即丰富库的工具集。OpenFrameworks

    的很多设计和Processing极其接近,对于有过Processing经验的人来说,起码setup和update这两个函数很有即视感。但是,

    即便没有其实也无所谓,因为Processing编程和OpenFrameworks编程还是有着很大区别的——Processing限制的更多,

    而OpenFrameworks则有更强的拓展性。而且,Processing的学习,对于帮助学习Java并不是很有用,但是OpenFrameworks

    上的编程和C++基本没有差别,是一个很好的切入点。

 

    

             (一个基于粒子系统的例子。我们在入门之后就会开始讲粒子系统的,大概一周之后)

 

    先进

    OpenFrameworks创建于2008年,到现在仅有7个年头,虽然在中国,它还不甚流行,但是在外国已经很有人气了。这一方面

    是因为语言所限,比较中文文档基本没有(吐槽一句,官网除了英文版还有日文版......我打算把那个官方教程翻译一下,如果

    可能最好可以用让他们挂上去,哈哈);另一方面则是因为, OpenFrameworks其实不是专门用来做商业软件的(可参照

    cocos2d-x,现在代码都是中国人主导......),所以可能大家的学习热情就不是那么高。但是,我要说, 其实OpenFrameworks

    是有做出商业软件的潜力的。它是一个先进的框架,与现在流行技术紧密结合(kinect,arduino),而且跨平台!

 

    其实很多人都说,学习要从基础开始——我不反对这一点。确实,有了基础的C功底,学C++才不会在基本语法上犯糊涂;

    但是,基础,也就意味着,是很老的技术。计算机专业最怕什么?就是跟不上时代。现在再用win32编程的人(比如上个

    学期我们的课程......)是不会有前途的。当然,我不排除它的教学意义;但是,既然你有了同等甚至更加有力的武器

    为什么不用呢?所以我在此推荐OpenFrameworks。你自然可以去学习别的,而且我觉得也必然会学习各种各样的框架,

    那么就去学,但是OpenFrameworks用于都会是一个不坏的选择——特别是你有了一个创意,但是并不想忙于琐碎之事之时。

 

     

               (这个程度....你看,确实也可以做的很厉害吧;虽然我还不行)

 

    建立OpenFrameworks工程时你需要的东西

 

    约定:

      如果你上过了OpenFrameworks的官方网站并且看过了tutorial的部分的话,可能你注意到了,

      丫的都是mac上的教程啊!(请允许我情绪激动)

      

                                (其实这是Xcode)

      其实外国的程序员和设计类人员中,习惯使用Mac的人非常之多(至少比中国多),以至于很多情况下,拿Mac演示

      更加符合一般情况.....不过中国情况就不同了,我在这里还是照顾一下普通大众——而且我也没有Mac(T_T)——

      用Windows 7 作为我的运行环境, Visual Studio 2012作为开发环境。估计Windows我就不用解释了......除非你

      是用手机在看,不然肯定知道。Visual Studio是微软公司开发的集成式开发环境(IDE),你就理解为开发用的 

      软件就好了。本来,我是喜欢体量比较小的工具的(web开发时一般会用sublime Text),但是到了C++,尤其是

      Windows上,还是用VS最好。

 

      这里说一下版本问题——of v0.84,也就是我们将要使用的版本,只支持VS2012(0.7x时支持2010,估计0.9x

      之后就是要vs2013了吧,不过2012和 2013差距到没有那么大......至少在外型上)所以请务必下载vs2012,

      操作系统只要不是xp就好。

      

      

   (这是用VS打开一个OpenFrameworks的工程后的样子;另外,如果样子不同,也很正常,因为我装了一些插件,也改了预设)

 

    最后,秉承中华民族的传统美德,我就放一下下载链接:

    OpenFrameworks(v0.84):http://openframeworks.cc/download/

    

    Visual Studio2012:http://download.microsoft.com/download/B/0/F/B0F589ED-F1B7-

    478C-849A-02C8395D0995/VS2012_ULT_chs.iso

    破解自己整!

 

    于是,明天见!

posted @ 2015-01-15 23:59  李农伯  阅读(6210)  评论(1编辑  收藏  举报