[原创]ActionScript3.0游戏中的图像编程(连载一)
总目录:http://www.cnblogs.com/iloveas/p/3879125.html
前言
1946年,计算机在第三次工业革命的推动下得以诞生并发展。从此地球上多了一类人,他们的世界很简单,每天不是和0接触,就是跟1来往。他们低调做人,高调做事,他们务实为民,不求名利,他们,就是可爱可人,可歌可泣的IT工作者——程序员!
都说程序员不善表达,没错,离开0和1,程序员就几乎不会说话了。与此同时,程序员也恰恰是最善于表达的人,他们只用0和1这两个数字,就可以准确无误地将用户的需求传达给电脑并使其正确运行,其语言之简炼,其算法之精准,其逻辑之严谨,其结果之准确,试问除了程序员,还有谁可以做得到?因此,与其说程序员不善表达,还不如说是外行人没读懂程序员的世界。
曾经有不知多少个夜晚,255这个数字让我辗转反侧,彻夜难眠。对于程序员来说,255是个神圣的数字,是一个8位二进制字节可以表示的最大整数,它代表了饱满,象征着完美,是程序员至高无上的追求。但每当别人问起我最近在忙啥,我都愣住了,为255翻滚的思绪总是难以言表。因为我心里面很明白,在他们眼里,255只是个再普通不过的数字而已,真要说给他们听,不是换来朋友的不解,就是招来旁人的嘲讽。
然而,让我感到欣慰的是,随着数字图像技术的日益发展,代码已经不再是程序员的专利,255也逐渐走上艺术的舞台为人所知,它既可以描绘漫天飘雪的北国风光,也可以抒发樱花绽放的浪漫情怀,既能让你驰骋在一马平川的绿野平原,也能使你陶醉于宁静深邃的碧海蓝天......所有这些梦境般的画面,都有着一个共同点:至少有一种颜色的光会100%地反射到我们的眼球,而在计算机图像领域,用于表示100%的,正是这个代表完美的数字——255!
就这点而言,无论是对美术一窍不通的程序员,还是对程序涉足尚浅的设计师,乃至与这两行业都绝缘的同胞们,都应拥有“艺术家”这一称号,因为不懈地追求完美,正是艺术家生活态度的重要体现,而本书更是艺术与科学完美结合的产物。
因此,本书面向的读者群比较广泛,只要您热爱生活,或者喜欢艺术,抑或拥有一颗追求完美的心,就一定可以在本书中找到适合自己的内容,而且本书的重点在于讲解艺术编程的思想,无论是站在艺术的角度来诠释,还是从技术的层面来解读,本书都经得起时间的考验和世俗的漂染。它不会因为手游市场的异军突起而备受冷落,不会因为html5的横空出世而迷失自我,更不会因为软件的更新换代而销声匿迹。它就像一杯绿茶,香久益清,味久益醇,每个时代都赋予它不同的气息,弥散于地球的每一个角落,给这个浮躁的社会开辟了一片又一片的净土。
可见,艺术是一个很广泛的话题,我几乎不可能通过一本书就涉及到艺术编程的方方面面。因此,先选定一个合适的领域,再围绕相关的技术点逐一展开进行讨论,对笔者和读者而言,思路都会更加清晰。
在IT界,最典型,最受关注的艺术编程形式莫过于游戏开发了。所以本书会从游戏中较为关键的技术点触发,向读者讲述自己对艺术编程的一些不太深入的理解,以求抛砖引玉,让更多的读者加入到该领域,共同探讨程序的精妙与艺术的真谛所在。
本书主要面向传统FlashPlayer(即Stage3D以前的版本)进行开发,同时会介绍FlashPlayer11的部分新功能对艺术编程的影响及应用领域。读者不必担心旧版的功能可能会被淘汰,本书的重点是艺术编程的思想,在艺术的字典里,只有对经典的诠释,绝无对过时的遗弃。
在游戏开发过程中,场景,界面,人物,动画,特效等美术元素多半通过导入美术设计师制作好的素材,然后通过程序控制其显示隐藏,播放暂停,以实现需求中的交互效果。然而,并非所有的美术素材都适合直接导入到游戏中,尤其在中国这片沉淀了五千多年汉字文化的土地上,将数以千计,笔划复杂的字符全部嵌入其中,对于网速尚未发达的天朝来说,将是一个相当致命的举措。
大多数情况下,开发人员都通过调用操作系统中的默认字体(设备字体)来显示游戏中的文本内容,但是,这仅有的几种字体在大多数情况下都过于古板,与活泼生动的游戏画面往往不太搭调,而且在目前的电脑操作系统中,设备字体往往会出现各种较为刺眼的锯齿,对游戏的美观性将造成不同程度的破坏。
因此,调用到设备字体以后,我们往往需要对其进行一些美化处理,比如消除锯齿,描边,变形等等,以提高设备字体与整个游戏的融合度。本书就以设备字体的处理为中心,和大家一起探讨图像艺术编程的点点滴滴。
在Windows系统里,比较常用的有宋体,黑体,楷体,隶书等,宋体过于单薄,而楷体和隶书艺术感稍强,相比之下,字型浑厚有力,且没有太多修饰的黑体就比较合适了。但黑体也有一些不足,比如边缘过于生硬,整体感略显古板,几经纠结,我决定使用稍加修饰过的,Windows7年代才开始在中国普及的微软微黑设备字体来进行图形处理和特效制作。
言归正传,本书属于中高级编程书籍,所以我会假设您已经具备一定的AS3编程基础,掌握了AS3的基本语法,并熟悉常用的api,我不会再就这些方面进行详细而深入的讲解。所以,对AS3尚没有太多了解的设计师朋友或者之前使用其他程序语言的开发者们,在阅读本书之前,建议先购买一到两本讲解基础的书以便及时查阅。我个人比较推荐的几本书有:《ActionScript3.0 Cookbook》、《ActionScript3.0权威指南》、《Flash ActionScript3.0 从入门到精通》、《ActionScript3.0溢彩编程》(该书非常适合设计师阅读)、《ActionScript3.0图像处理基础教程》。
此外,在开始阅读本书之前,我建议读者先配置好开发的环境,以确保书中的代码在您的计算机上可以正常编译与运行,对开发环境配置不太熟悉的朋友可以参阅本书的附录。
一切准备就绪,艺术编程之旅正式启航!