论文部分内容阅读
[摘要]Flash游戏不仅是当今最流行的游戏类别之一,它也正随着硬件技术的不断发展逐渐成为手机游戏的主流产品。为了满足IT公司对当前紧缺的Flash游戏设计师这一新型职位的需求,我打破传统Flash课程“讲解软件功能,练习基本应用”的教学模式,取而代之地实施以“Flash游戏开发激发学生动画创意与程序设计的能力培养”项目教学模式,有效地提高了毕业生从业率。
[关键词]Flash游戏 职业技能 程序设计
一、flash游戏现状概述
flash游戏是一种新兴起的游戏形式,因游戏简单,操作方便,绿色,无需安装,文件体积小、传播快、画面美观等优点正渐渐被广大网友喜爱。flash游戏又叫flash小游戏,基于flash游戏矢量图的优势,主要应用于一些益智、动作、体育、棋牌、休闲等趣味化的、小型的游戏之上。
因为flash cs3和actionscript 3.0的迅速发展,近年来,许多年轻人投身其中,并在整个flash行业中发挥重要作用。Flash player占据了90%互联网用户的浏览器,网页游戏将会向手机WAP和手机客户端图形网游(j2me)方式联合发展,flash所制作的产品将有可能在电视、手机、掌上电脑,甚至其他智能家用电器上应用,具有跨平台的特点,不会单单停留在网页表现形式上,所以发展空间还十分巨大,前途不可估量。
二、趋向flash课程项目设计与开发的游戏职业技能锻炼
《平面动画设计与制作(Flash)》课程是中职计算机多媒体技术专业和计算机应用技术专业的职业核心技能课程。我在教授这门课程时,以工作过程为导向,根据广州地区对平面动画高技能人才的能力要求,针对中职学生的认知特点,形成从简单到复杂的系统化教学项目,充分体现flash课程教学的职业性、实践性和开放性。
本课程以广州地区对flash游戏高技能人才的能力需求为导向,针对中职学生的认知特点,设计6个学习情境对应于广州地区Flash平面动画技术的6大应用方向。每个学习情境都以企业典型产品项目或学生、教师创新项目为载体。每个项目采用以学生为中心、基于工作过程的项目驱动式教学方法,项目蕴含的核心技能用若干生动、直观的案例进行导人。校企合作构建循环螺旋上升式实训体系,通过“核心技能实训”、“仿真项目实训”、“订单项目实训”和“顶岗实训”四个实训环节,让学生在循环进行的“假题假做”、“假题真做”和“真题真做”过程中培养平面动画设计与制作的综合职业技能和职业素质。
具体教学实施:
1.采用历届学生或教师的创新项目为载体讲解游戏开发;
2.采用生动直观的案例导人工作项目蕴含的核心技能,激发学生学习兴趣,短期内催生学生的成就感;
3.项目采用“项目效果一知识讲授一游戏设计一操作演示一学生操作一技能拓展一总结考核”七步骤教学过程;
4.为了强化学生的独立工作能力,从游戏设计阶段开始,由学生独立自主进行,直到项目完成后由学生将作品上传到课程网站上展示动画效果,并由教师和其他同学进行评分。
三、Flash“飞机射击游戏”项目所蕴含的职业能力目标剖析
通过教师创设的Flash“飞机射击游戏”项目教学实施,引导学生们确立“flash游戏制作基础;flash游戏的场景制作;flash游戏的背景制作;flash游戏的界面元素制作;flash游戏组件的控制与调试;flash游戏的实现与测试”等职业能力目标。
第一步:飞机射击游戏的构思
1.采用带流星效果的闪电夜空作为游戏的背景。
2.游戏情节和规则构思如下:游戏中有一架可以供玩家控制的飞机(下面简称为“主飞机”),有源源不断地攻击主飞机的物体,分别是:灰色的石头和黄色的石头。灰色的石头是垂直下降式攻击,黄色的石头是跟踪式攻击。主飞机能够发射子弹和炸弹射击攻击过来的石头,打中一个石头得10分,打中越多所得分数就越高,屏幕的左上角显示目前的得分。子弹和炸弹是有限的,会消耗完毕,游戏中主飞机有可以补充子弹和炸弹的方式。屏幕的左下角是当前子弹的数量显示,右下角是当前炸弹的数量显示。一旦攻击物体打中主飞机,游戏就算失败。可以通过按键重新开始游戏。
3.玩家通过鼠标来控制主飞机的移动,按鼠标左键发射子弹,按空格键发射炸弹,按R键重新开始游戏。
第二步:飞机射击游戏素材的编辑和制作
1.图形图像的准备
这里的图形一方面指flash中应用很广的矢量图,另一方面也指一些外部的位图文件,两者可以进行互补,这是游戏中最基本的素材。虽然flash提供了丰富的绘图和造型的工具,如贝塞耳曲线工具,可以在flash中完成绝大多数的图形绘制工作,但是flash中只能绘制矢量图形,如果需要用到一些位图或者用flash很难绘制的图形时,就需要使用外部的素材了。
取得这些素材一般有下面几种方法:
a.自己动手制作:可以使用一些专业的图形设计软件来制作自己需要的素材,比如Photoshop、Painter、Coreldraw等都是很不错的选择,另外可能需要一些3D的造型,这时候像3D Studio Max、Poser、Moho和Bryce等都是很方便的工具,完全可以利用这些工具为flash服务。
b.多媒体光盘
c.网络资源
本游戏的图片素材包括:主飞机图片、灰色和黄色石头的图片、闪电夜空背景图片、物体爆炸效果的静态图组。
本游戏的动画素材包括:移动的闪电夜空动画、移动的流星动画、发射子弹动画、发射炸弹和炸弹爆炸动画、物体爆炸动画。
2.音乐及音效
音乐在flash游戏中是非常重要的一种元素,大家都希望自己的游戏能够有声有色、绚丽多彩,给游戏加入适当的音效,可以为整个游戏增色不少,前面的图形图像我们已经知道如何去获取了,同样,通过网上搜集、多媒体光盘、使用常用的音效编辑器(如:Cool Edit等),可以得到我们需要的音效。
本游戏的声音素材包括:发射子弹的声音、发射炸弹的声音、炸弹爆炸的声音、子弹和炸弹打中石头的声音、石头打中主飞机的声音、主飞机成功获取到子弹和炸弹的声音。
第三步:飞机射击游戏的程序设计
游戏中有很多的物体都需要编写程序来控制,如上面[图一],Flash采用分层式的设计。按照物体的关系进行分层,把相互关联的物体放在同一层,把不同行为的物体放在不同的层。比如:主飞机会发射子弹和炸弹,逻辑上它们是一个整体,就把这些相关联的影片放在同一层;而黄色石头和灰色石头虽然都是攻击性物体,但它们攻击的方式不同,一个是跟踪式下降攻击,一个是垂直下降攻击,因此把它们放在不同的层。通过分层,能够做到条理清晰,便于游戏程序代码的编写和修改。从上面[图一],我们注意到,Flash游戏设计一般只需要三帧: 第一帧:一般是空白帧,定义变量和数组,同时对变量和数组做一些初始化的设置;
第二帧:放置物体,进行核心程序代码的编写;
第三帧:跳转代码gotoAndPlay(2)(只要在其中任意一层写就可以,[图一]中是在倒数第二层),让程序循环执行第二帧的核心程序。
这款飞机射击游戏有两个程序设计的难点,下面对这两个难点进行详细分析。
1.黄色石头跟踪式下降攻击的程序设计
实现跟踪式程序设计,主要运用到数学里的直线方程原理。因为两点确定一条直线,当攻击物体和被攻击物体的位置其中任何一个发生改变的时候,经过这两个物体的直线也会发生改变。我们可以通过这两个物体当前的_x和_y属性,来计算出这个改变后的直线方程,重新确定攻击物体的攻击方向,即得出新的A._Y、A._X值。假定:攻击物体为A,被攻击的物体为B,实现代码如下:
OLDAX=A._x;//变量OLDAX、OLDAY保存攻击物体移动前的位置
OLDAY=A._Y;
A._Y:A_Y OFFY;//攻击物体向下移动OFFY个位移
//根据直线方程原理
//OLDX-B.X OLDX-A.x
OLDY-B.v OLDY-A.Y
//转换后得到A._X的值,其中OLDY-B._Y要不等于零,写成程序代码如下
IF(oLDY-B._Y!=0)
{A._x=OLDX-(OLDX-B._X)*(OLDY-A._X)/(OLDY-B._Y);1
通过直线方程,重新确定的A._Y、A._X都已算出。
2.判断两个物体是否接触的程序设计
判断两个物体是否接触的程序设计,在游戏中多处用到,例如:判断子弹或炸弹是否打中攻击过来的石头;攻击过来的石头是否打中主飞机;主飞机是否成功补充子弹或炸弹等。
一个物体所占的范围,一般由四个位置来确定,水平方向:最左边位置、最右边位置;垂直方向:最上边位置、最下边位置。根据各个物体中心点的不同,通过物体的_X、_Y、_width、_height这四个属性进行组合计算,可以得到上面的四个位置,通过比较两个物体的这四个位置来判断物体是否接触。假定:两个物体A和B的中心坐标_X、_Y,都在他们的中心位置,那么:
A_Left=A._X-A._width/2 //A物体最左边的位置
A_fight=A._X A._width/2 //A物体最右边的位置
A_up=A._Y-A._height/2 //A物体最上边的位置
A_down=A._Y A._height/2 //A物体最下边的位置
B_Left=B._X-B._width/2 //B物体最左边的位置
B_right=B._X B.width/2 //B物体最右边的位置
B_up=B._Y-B._Height/2 //B物体最上边的位置
B_down=B._Y B._height/2 //B物体最下边的位置
//判断两个物体是否接触到条件语句如下:
//水平方向比较(A_Left<=B_right)
[关键词]Flash游戏 职业技能 程序设计
一、flash游戏现状概述
flash游戏是一种新兴起的游戏形式,因游戏简单,操作方便,绿色,无需安装,文件体积小、传播快、画面美观等优点正渐渐被广大网友喜爱。flash游戏又叫flash小游戏,基于flash游戏矢量图的优势,主要应用于一些益智、动作、体育、棋牌、休闲等趣味化的、小型的游戏之上。
因为flash cs3和actionscript 3.0的迅速发展,近年来,许多年轻人投身其中,并在整个flash行业中发挥重要作用。Flash player占据了90%互联网用户的浏览器,网页游戏将会向手机WAP和手机客户端图形网游(j2me)方式联合发展,flash所制作的产品将有可能在电视、手机、掌上电脑,甚至其他智能家用电器上应用,具有跨平台的特点,不会单单停留在网页表现形式上,所以发展空间还十分巨大,前途不可估量。
二、趋向flash课程项目设计与开发的游戏职业技能锻炼
《平面动画设计与制作(Flash)》课程是中职计算机多媒体技术专业和计算机应用技术专业的职业核心技能课程。我在教授这门课程时,以工作过程为导向,根据广州地区对平面动画高技能人才的能力要求,针对中职学生的认知特点,形成从简单到复杂的系统化教学项目,充分体现flash课程教学的职业性、实践性和开放性。
本课程以广州地区对flash游戏高技能人才的能力需求为导向,针对中职学生的认知特点,设计6个学习情境对应于广州地区Flash平面动画技术的6大应用方向。每个学习情境都以企业典型产品项目或学生、教师创新项目为载体。每个项目采用以学生为中心、基于工作过程的项目驱动式教学方法,项目蕴含的核心技能用若干生动、直观的案例进行导人。校企合作构建循环螺旋上升式实训体系,通过“核心技能实训”、“仿真项目实训”、“订单项目实训”和“顶岗实训”四个实训环节,让学生在循环进行的“假题假做”、“假题真做”和“真题真做”过程中培养平面动画设计与制作的综合职业技能和职业素质。
具体教学实施:
1.采用历届学生或教师的创新项目为载体讲解游戏开发;
2.采用生动直观的案例导人工作项目蕴含的核心技能,激发学生学习兴趣,短期内催生学生的成就感;
3.项目采用“项目效果一知识讲授一游戏设计一操作演示一学生操作一技能拓展一总结考核”七步骤教学过程;
4.为了强化学生的独立工作能力,从游戏设计阶段开始,由学生独立自主进行,直到项目完成后由学生将作品上传到课程网站上展示动画效果,并由教师和其他同学进行评分。
三、Flash“飞机射击游戏”项目所蕴含的职业能力目标剖析
通过教师创设的Flash“飞机射击游戏”项目教学实施,引导学生们确立“flash游戏制作基础;flash游戏的场景制作;flash游戏的背景制作;flash游戏的界面元素制作;flash游戏组件的控制与调试;flash游戏的实现与测试”等职业能力目标。
第一步:飞机射击游戏的构思
1.采用带流星效果的闪电夜空作为游戏的背景。
2.游戏情节和规则构思如下:游戏中有一架可以供玩家控制的飞机(下面简称为“主飞机”),有源源不断地攻击主飞机的物体,分别是:灰色的石头和黄色的石头。灰色的石头是垂直下降式攻击,黄色的石头是跟踪式攻击。主飞机能够发射子弹和炸弹射击攻击过来的石头,打中一个石头得10分,打中越多所得分数就越高,屏幕的左上角显示目前的得分。子弹和炸弹是有限的,会消耗完毕,游戏中主飞机有可以补充子弹和炸弹的方式。屏幕的左下角是当前子弹的数量显示,右下角是当前炸弹的数量显示。一旦攻击物体打中主飞机,游戏就算失败。可以通过按键重新开始游戏。
3.玩家通过鼠标来控制主飞机的移动,按鼠标左键发射子弹,按空格键发射炸弹,按R键重新开始游戏。
第二步:飞机射击游戏素材的编辑和制作
1.图形图像的准备
这里的图形一方面指flash中应用很广的矢量图,另一方面也指一些外部的位图文件,两者可以进行互补,这是游戏中最基本的素材。虽然flash提供了丰富的绘图和造型的工具,如贝塞耳曲线工具,可以在flash中完成绝大多数的图形绘制工作,但是flash中只能绘制矢量图形,如果需要用到一些位图或者用flash很难绘制的图形时,就需要使用外部的素材了。
取得这些素材一般有下面几种方法:
a.自己动手制作:可以使用一些专业的图形设计软件来制作自己需要的素材,比如Photoshop、Painter、Coreldraw等都是很不错的选择,另外可能需要一些3D的造型,这时候像3D Studio Max、Poser、Moho和Bryce等都是很方便的工具,完全可以利用这些工具为flash服务。
b.多媒体光盘
c.网络资源
本游戏的图片素材包括:主飞机图片、灰色和黄色石头的图片、闪电夜空背景图片、物体爆炸效果的静态图组。
本游戏的动画素材包括:移动的闪电夜空动画、移动的流星动画、发射子弹动画、发射炸弹和炸弹爆炸动画、物体爆炸动画。
2.音乐及音效
音乐在flash游戏中是非常重要的一种元素,大家都希望自己的游戏能够有声有色、绚丽多彩,给游戏加入适当的音效,可以为整个游戏增色不少,前面的图形图像我们已经知道如何去获取了,同样,通过网上搜集、多媒体光盘、使用常用的音效编辑器(如:Cool Edit等),可以得到我们需要的音效。
本游戏的声音素材包括:发射子弹的声音、发射炸弹的声音、炸弹爆炸的声音、子弹和炸弹打中石头的声音、石头打中主飞机的声音、主飞机成功获取到子弹和炸弹的声音。
第三步:飞机射击游戏的程序设计
游戏中有很多的物体都需要编写程序来控制,如上面[图一],Flash采用分层式的设计。按照物体的关系进行分层,把相互关联的物体放在同一层,把不同行为的物体放在不同的层。比如:主飞机会发射子弹和炸弹,逻辑上它们是一个整体,就把这些相关联的影片放在同一层;而黄色石头和灰色石头虽然都是攻击性物体,但它们攻击的方式不同,一个是跟踪式下降攻击,一个是垂直下降攻击,因此把它们放在不同的层。通过分层,能够做到条理清晰,便于游戏程序代码的编写和修改。从上面[图一],我们注意到,Flash游戏设计一般只需要三帧: 第一帧:一般是空白帧,定义变量和数组,同时对变量和数组做一些初始化的设置;
第二帧:放置物体,进行核心程序代码的编写;
第三帧:跳转代码gotoAndPlay(2)(只要在其中任意一层写就可以,[图一]中是在倒数第二层),让程序循环执行第二帧的核心程序。
这款飞机射击游戏有两个程序设计的难点,下面对这两个难点进行详细分析。
1.黄色石头跟踪式下降攻击的程序设计
实现跟踪式程序设计,主要运用到数学里的直线方程原理。因为两点确定一条直线,当攻击物体和被攻击物体的位置其中任何一个发生改变的时候,经过这两个物体的直线也会发生改变。我们可以通过这两个物体当前的_x和_y属性,来计算出这个改变后的直线方程,重新确定攻击物体的攻击方向,即得出新的A._Y、A._X值。假定:攻击物体为A,被攻击的物体为B,实现代码如下:
OLDAX=A._x;//变量OLDAX、OLDAY保存攻击物体移动前的位置
OLDAY=A._Y;
A._Y:A_Y OFFY;//攻击物体向下移动OFFY个位移
//根据直线方程原理
//OLDX-B.X OLDX-A.x
OLDY-B.v OLDY-A.Y
//转换后得到A._X的值,其中OLDY-B._Y要不等于零,写成程序代码如下
IF(oLDY-B._Y!=0)
{A._x=OLDX-(OLDX-B._X)*(OLDY-A._X)/(OLDY-B._Y);1
通过直线方程,重新确定的A._Y、A._X都已算出。
2.判断两个物体是否接触的程序设计
判断两个物体是否接触的程序设计,在游戏中多处用到,例如:判断子弹或炸弹是否打中攻击过来的石头;攻击过来的石头是否打中主飞机;主飞机是否成功补充子弹或炸弹等。
一个物体所占的范围,一般由四个位置来确定,水平方向:最左边位置、最右边位置;垂直方向:最上边位置、最下边位置。根据各个物体中心点的不同,通过物体的_X、_Y、_width、_height这四个属性进行组合计算,可以得到上面的四个位置,通过比较两个物体的这四个位置来判断物体是否接触。假定:两个物体A和B的中心坐标_X、_Y,都在他们的中心位置,那么:
A_Left=A._X-A._width/2 //A物体最左边的位置
A_fight=A._X A._width/2 //A物体最右边的位置
A_up=A._Y-A._height/2 //A物体最上边的位置
A_down=A._Y A._height/2 //A物体最下边的位置
B_Left=B._X-B._width/2 //B物体最左边的位置
B_right=B._X B.width/2 //B物体最右边的位置
B_up=B._Y-B._Height/2 //B物体最上边的位置
B_down=B._Y B._height/2 //B物体最下边的位置
//判断两个物体是否接触到条件语句如下:
//水平方向比较(A_Left<=B_right)