⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 agent.as

📁 使用 flash AS3开发的超级玛丽游戏源代码,
💻 AS
字号:
import com.gamepackage.tilemap.pathfinder.Headquarter;

class com.gamepackage.tilemap.pathfinder.Agent
{	private var x: Number;	private var y: Number;	private var dir: Number;	private var path: Array;

	private var hq: Headquarter;
	function Agent ( x: Number , y: Number , dir: Number , path: Array, hq: Headquarter )
	{		this.x = x;		this.y = y;		this.dir = dir;		this.path = path;
		this.hq = hq;
		
		hq.agents.push( this );	}	function move (): Boolean
	{
		var map: Array = hq.map;		var occ: Array = hq.occ;		if ( map[ y ][ x ] == undefined ) { return false; };		if ( occ[ y ][ x ] ) { return false; };		if ( x == hq.x1 && y == hq.y1 )
		{
			hq.pathFound = true;
			hq.foundPath = path;
			return true;		}		if ( occ[ y ] == undefined ) { occ[ y ] = []; };		occ[ y ][ x ] = true;
		
		if ( dir == 1 ) {			if ( ~map[ y + 1 ][ x ] & 1 ) new Agent ( x, y + 1, 4, path.concat ( [ { x: x , y: y + 1 } ] ), hq );			if ( ~map[ y - 1 ][ x ] & 1 ) new Agent ( x, y - 1, 8, path.concat ( [ { x: x , y: y - 1 } ] ), hq );			if ( ~map[ y ][ x + 1 ] & 1 )
			{
				path.push ( { x: ++x , y: y } );
				return true;			}
			return false;
		} else if ( dir == 2 ) {			if ( ~map[ y + 1 ][ x ] & 1 ) new Agent ( x, y + 1, 4, path.concat ( [ { x: x , y: y + 1 } ] ), hq );			if ( ~map[ y - 1 ][ x ] & 1 ) new Agent ( x, y - 1, 8, path.concat ( [ { x: x , y: y - 1 } ] ), hq );			if ( ~map[ y ][ x - 1 ] & 1 )
			{
				path.push ( { x: --x , y: y } );
				return true;			};
			return false;		} else if ( dir == 4 ) {
			var yMap = map[y];			if ( ~yMap[ x + 1 ] & 1 ) new Agent ( x + 1, y, 1, path.concat ( [ { x: x + 1 , y: y } ] ), hq );			if ( ~yMap[ x - 1 ] & 1 ) new Agent ( x - 1, y, 2, path.concat ( [ { x: x - 1 , y: y } ] ), hq );			if ( ~map[ y + 1 ][ x ] & 1 )
			{
				path.push ( { x: x , y: ++y } );
				return true;			};
			return false;		}
		// else ( dir == 8 )
		var yMap = map[y];		if ( ~yMap[ x + 1 ] & 1 ) new Agent ( x + 1, y, 1, path.concat ( [ { x: x + 1 , y: y } ] ), hq );		if ( ~yMap[ x - 1 ] & 1 ) new Agent ( x - 1, y, 2, path.concat ( [ { x: x - 1 , y: y } ] ), hq );		if ( ~map[ y - 1 ][ x ] & 1 )
		{			path.push ( { x: x , y: --y } );
			return true;		};
		return false;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -