AS3.0游戏开发(一)

最近一直研究FLASH AS3.0的开发技术,深感用AS3.0开发2D游戏的方便与巧妙。我以前一直用OGRE,CEGUI等引擎制作3D游戏的,由于网页游戏的兴起,我也来学习2D网页游戏的开发。

开发一款2D游戏,我认为有三种主流途径。第一,使用传统的方法,利用VC++开发,这种方法非常普遍而且成果很多,大部分游戏平台和里面的游戏基本都是这种方式来开发的,有如此众多的作品,就不用质疑它的强大了,不过我认为这种方式有点繁琐,开发游戏的难度比较大。第二,使用开源或商用的2D引擎,我研究过HGE引擎,用的比较顺手,而且可以结合RAKNET(一款基于UDP的网络库)做出一个网游的小模版。第三,使用AS3.0,首先,AS3.0只是FLASH的一个脚本语言,你的全部聪明才智只能被限制在这些脚本语言中,所以限制很多,比在VC++开发要差很多,很多库和技术都不能用,要不是它这么收欢迎,我是不会研究他的。但是,如果你用过AS3.0,就感到用它开发一些小游戏实在是太方便了,这种难度和传统游戏的制作方法完全不是一个档次,巧妙的影片剪辑,简单的UI制作,图层系统让人爱不释手(省了多少代码啊)。

按照我以前的惯例,研究一个引擎,就结合网络库做一个网游的小模版。

FLASH AS3.0网络是基于tcp的,所以与UDP有关的网络库都不能用。tcp的服务器我选择用c++ socket编程来实现,这种纯socket开发的确有点繁琐,不过为配合as3.0也只能这样了。首先是AS3.0网络连接。

package 
{
	import flash.display.MovieClip;
	import flash.errors.*;
	import flash.events.*;
	import flash.events.MouseEvent;
	import flash.net.Socket;
	import flash.utils.ByteArray;
	import fl.motion.MotionEvent;
	

	public class main extends MovieClip
	{
		var sSocket:Socket;
		
		
		public function main()
		{
			sSocket = new Socket  ;
			sSocket.connect("127.0.0.1", 2011);
			

                        //链接函数
			sSocket.addEventListener(Event.CONNECT, fl_ConnectedHandler);
			//报错处理
			sSocket.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
			//接收数据
			sSocket.addEventListener(ProgressEvent.SOCKET_DATA , OnRecvData);
			addEventListener(Event.CLOSE, OnClose);


		}
		
		private function OnClose(e:Event):void
		{
			removeEventListener(Event.CLOSE, OnClose);
			sSocket.close();
		}

		private function fl_DisconHandler(e:MouseEvent):void
		{
			if (sSocket.connected)
			{
				sSocket.close();

			}
		}
		private function fl_ConnectedHandler(event:Event):void
		{
			if (sSocket.connected)
			{
				chatlist.appendText("连接成功! \n");
			}
		}
		private function ioErrorHandler(e:IOErrorEvent):void
		{
			chatlist.appendText("连接失败! \n");
		}
		private function OnRecvData(e:ProgressEvent):void
		{
			var byte:ByteArray = new ByteArray();
			var msg:String;
			msg = "";

			while (sSocket.bytesAvailable)
			{
				msg +=  sSocket.readUTFBytes(sSocket.bytesAvailable);

			}

			
		}
	}
}

上述代码,链接本地服务器,接口2011,万丈高楼平地起,下面我介绍一下服务器怎么写。

你可能感兴趣的:(as3.0,flash,游戏开发,socket)