FLEX和Actionscript开发FLASH游戏3-4
2010年11月05日
使用FLEX和Actionscript开发FLASH游戏-嵌进资源和增加游戏元素Bounce.as
package
{
importflash.geom.*;
importmx.core.*;
publicclassBounceextendsGameObject
{
direction.y=1;
}
}
}
Bounce类是一个继续基础类GameObject的例子,给游戏元素增加了一些专门的逻辑语言。在这里逻辑语言只是仅仅用来使得游戏元素在屏幕里面到处移动。
Bounce有两个属性。速度定义了游戏对象将在屏幕里面四处多快地移动,方向定义了游戏对象当前在x和y坐标轴移动的方向。
我们在这个对象里面再一次用到了startup和shutdown函数对。我曾告诉过你他们将是一个共同主题。在这里我们仅仅是继续了GameObject的startup和shutdown函数。
enterFrame函数用来在绘制循环中更新对象本身。Bounce对象在它撞到屏幕边沿之前只是仅仅做直线运动,然后当撞到后作反方向运动。这不是太灵巧,但是Bounce类在终极游戏不会出现;它唯一的目的是作为一个简单的示范来显示GameObject时如何被继续的。
最后的两个类用来让我们开始在屏幕上绘制,它们是ResourceManager和GraphicsResource。
资源治理是游戏的一个重要的方面。你将如何包装你游戏中的图形和声音效果?你怎样载进它们?它们存储在哪里?这些是简单的题目,但是包含着巨大的影响。粗略地说Flex给你三个选项来访问图形和声音资源。第一个:从本地磁盘载进它们。固然这是载进资源的传统方式,对于一个在网络上玩的游戏这不是一个可行的方法。基于此Flex也答应你载进存储在网络服务器上的资源。但是固然这使得终极用户不必在本地磁盘上保存任何东西,但是它也意味着游戏SWF文件和其他的游戏资源必须作为单独分开的文件来存储。谢天谢地Flex提供了第三种选项:直接把资源嵌进到终极的SWF文件。
嵌进一个资源你可以使用嵌进(Embed)标签。只要你嵌进的文件被Flex识别(包括海量的图形格式,还有声音的MP3格式)Flex将把文件直接编译进终极的SWF文件里,而且通过一个类来列出文件的内容。
ResourceManager被用来作为嵌进和访问游戏资源的地方。它根本没有任何函数:它唯一的目的是列出描述嵌进资源的属性。这里我们定义了1个图形资源:brownplane.png图形。
ResourceManager.as
package
}
}
为了使用嵌进的图形我们需要从原始图片中分离出alpha(或者即透明的)层。假如你回顾下在GameObject类中的coptToBackBuffer函数你将知道copyPixels函数即使用了GraphicsResource对象的bitmap属性也使用了它的alphaBitmap属性。从一个嵌进的图片上和展示这些元素是GraphicsResource类的唯一目的。现在让我们看下GraphicsResource类。
GraphicsResource.as
package{importflash.display.*;publicclassGraphicsR esource{publicvarbitmap:BitmapData=null;publicvarbi tmapAlpha:BitmapData=null;publicfunctionGraphicsRes ource(image:DisplayObject){bitmap=createBitmapData( image);bitmapAlpha=createAlphaBitmapData(image);}pr otectedfunctioncreateBitmapData(image:DisplayObject ):BitmapData{varbitmap:BitmapData=newBitmapData(ima ge.width,image.height);bitmap.draw(image);returnbit map;}protectedfunctioncreateAlphaBitmapData(image:D isplayObject):BitmapData{varbitmap:BitmapData=newBi tmapData(image.width,image.height);bitmap.draw(imag e,null,null,flash.display.BlendMode.ALPHA);returnbi tmap;}}}在上面提到GraphicsResource有两个属性:bitmap和bitmapAlpha。这些属性通过createBitmapData和createAlphaBitmapData函数从嵌进的图形中出来传给构造器。一旦它们被出来它们就有了一个方便使用的形式,在GameObject的copyToBackBuffer函数中调用的copyPixels函数使用。
那么我们干成了什么?我们在本系列的第一部分和第二部分的基础性工作上嵌进了资源(ResourceManager和GraphicsResource),天生了更多特定游戏对象的基本类(GameObject),最后把它们全部整合起来给屏幕增加了一个移动的对象(Bounce)。
在本系列的第四部分我们将增加一个游戏者能控制的对象,除此之外还天生一个可供游戏者在其上飞行的转动的背景。
在http://flexfighters.sourceforge.net/flexfighters3. html可查看终极结果,从https://sourceforge.net/project/showfiles.php?grou p_id=241490&package_id=293860&release_id=631869可下载资源。
2010年11月05日
使用FLEX和Actionscript开发FLASH游戏-嵌进资源和增加游戏元素Bounce.as
package
{
importflash.geom.*;
importmx.core.*;
publicclassBounceextendsGameObject
{
direction.y=1;
}
}
}
Bounce类是一个继续基础类GameObject的例子,给游戏元素增加了一些专门的逻辑语言。在这里逻辑语言只是仅仅用来使得游戏元素在屏幕里面到处移动。
Bounce有两个属性。速度定义了游戏对象将在屏幕里面四处多快地移动,方向定义了游戏对象当前在x和y坐标轴移动的方向。
我们在这个对象里面再一次用到了startup和shutdown函数对。我曾告诉过你他们将是一个共同主题。在这里我们仅仅是继续了GameObject的startup和shutdown函数。
enterFrame函数用来在绘制循环中更新对象本身。Bounce对象在它撞到屏幕边沿之前只是仅仅做直线运动,然后当撞到后作反方向运动。这不是太灵巧,但是Bounce类在终极游戏不会出现;它唯一的目的是作为一个简单的示范来显示GameObject时如何被继续的。
最后的两个类用来让我们开始在屏幕上绘制,它们是ResourceManager和GraphicsResource。
资源治理是游戏的一个重要的方面。你将如何包装你游戏中的图形和声音效果?你怎样载进它们?它们存储在哪里?这些是简单的题目,但是包含着巨大的影响。粗略地说Flex给你三个选项来访问图形和声音资源。第一个:从本地磁盘载进它们。固然这是载进资源的传统方式,对于一个在网络上玩的游戏这不是一个可行的方法。基于此Flex也答应你载进存储在网络服务器上的资源。但是固然这使得终极用户不必在本地磁盘上保存任何东西,但是它也意味着游戏SWF文件和其他的游戏资源必须作为单独分开的文件来存储。谢天谢地Flex提供了第三种选项:直接把资源嵌进到终极的SWF文件。
嵌进一个资源你可以使用嵌进(Embed)标签。只要你嵌进的文件被Flex识别(包括海量的图形格式,还有声音的MP3格式)Flex将把文件直接编译进终极的SWF文件里,而且通过一个类来列出文件的内容。
ResourceManager被用来作为嵌进和访问游戏资源的地方。它根本没有任何函数:它唯一的目的是列出描述嵌进资源的属性。这里我们定义了1个图形资源:brownplane.png图形。
ResourceManager.as
package
}
}
为了使用嵌进的图形我们需要从原始图片中分离出alpha(或者即透明的)层。假如你回顾下在GameObject类中的coptToBackBuffer函数你将知道copyPixels函数即使用了GraphicsResource对象的bitmap属性也使用了它的alphaBitmap属性。从一个嵌进的图片上和展示这些元素是GraphicsResource类的唯一目的。现在让我们看下GraphicsResource类。
GraphicsResource.as
package{importflash.display.*;publicclassGraphicsR esource{publicvarbitmap:BitmapData=null;publicvarbi tmapAlpha:BitmapData=null;publicfunctionGraphicsRes ource(image:DisplayObject){bitmap=createBitmapData( image);bitmapAlpha=createAlphaBitmapData(image);}pr otectedfunctioncreateBitmapData(image:DisplayObject ):BitmapData{varbitmap:BitmapData=newBitmapData(ima ge.width,image.height);bitmap.draw(image);returnbit map;}protectedfunctioncreateAlphaBitmapData(image:D isplayObject):BitmapData{varbitmap:BitmapData=newBi tmapData(image.width,image.height);bitmap.draw(imag e,null,null,flash.display.BlendMode.ALPHA);returnbi tmap;}}}在上面提到GraphicsResource有两个属性:bitmap和bitmapAlpha。这些属性通过createBitmapData和createAlphaBitmapData函数从嵌进的图形中出来传给构造器。一旦它们被出来它们就有了一个方便使用的形式,在GameObject的copyToBackBuffer函数中调用的copyPixels函数使用。
那么我们干成了什么?我们在本系列的第一部分和第二部分的基础性工作上嵌进了资源(ResourceManager和GraphicsResource),天生了更多特定游戏对象的基本类(GameObject),最后把它们全部整合起来给屏幕增加了一个移动的对象(Bounce)。
在本系列的第四部分我们将增加一个游戏者能控制的对象,除此之外还天生一个可供游戏者在其上飞行的转动的背景。
在http://flexfighters.sourceforge.net/flexfighters3. html可查看终极结果,从https://sourceforge.net/project/showfiles.php?grou p_id=241490&package_id=293860&release_id=631869可下载资源。