Показать сообщение отдельно
Старый 12.01.2014, 09:15
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 22  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
вот решение без запихивания в массив, но можно и в массив положить

Код AS3:
package 
{
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.events.Event;
 
	/**
	 * ...
	 * @author Isfet
	 */
	public class Main extends Sprite 
	{
 
		[Embed(source = '../imgs/0000.png')]	private var Tile0000 :Class;
		[Embed(source = '../imgs/0001.png')]	private var Tile0001 :Class;
		[Embed(source = '../imgs/0010.png')]	private var Tile0010 :Class;
		[Embed(source = '../imgs/0011.png')]	private var Tile0011 :Class;
		[Embed(source = '../imgs/0100.png')]	private var Tile0100 :Class;
		[Embed(source = '../imgs/0101.png')]	private var Tile0101 :Class;
		[Embed(source = '../imgs/0110.png')]	private var Tile0110 :Class;				
		[Embed(source = '../imgs/0111.png')]	private var Tile0111 :Class;
		[Embed(source = '../imgs/1000.png')]	private var Tile1000 :Class;
		[Embed(source = '../imgs/1001.png')]	private var Tile1001 :Class;
		[Embed(source = '../imgs/1010.png')]	private var Tile1010 :Class;
		[Embed(source = '../imgs/1011.png')]	private var Tile1011 :Class;
		[Embed(source = '../imgs/1100.png')]	private var Tile1100 :Class;
		[Embed(source = '../imgs/1101.png')]	private var Tile1101 :Class;
		[Embed(source = '../imgs/1110.png')]	private var Tile1110 :Class;
		[Embed(source = '../imgs/1111.png')]	private var Tile1111 :Class;
 
		public static const TILE_SIZE:uint = 60;
 
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
 
			var grid:Array = [
								 [0, 1, 1, 0, 0, 0, 1, 1, 0],
								 [1, 1, 0, 1, 1, 1, 0, 1, 1],
								 [1, 1, 0, 0, 0, 1, 0, 1, 1],
								 [1, 1, 0, 0, 0, 1, 0, 1, 1],
								 [1, 0, 1, 1, 1, 1, 1, 0, 1],
								 [1, 1, 1, 0, 0, 1, 1, 1, 1],
								 [1, 1, 1, 0, 0, 1, 1, 1, 1],
								 [1, 1, 1, 1, 1, 1, 1, 1, 1],
								 [0, 1, 0, 1, 1, 1, 0, 1, 0]
							 ];
 
			gridParsing(grid);
 
		}
		private function gridParsing(grid:Array):void {
 
			var str:String;
			var columnLen:uint = grid.length;
			var tile:Bitmap;
 
			for (var j:int = 0; j < columnLen; j++) 
			{				
				var rowLen:uint = grid[j].length;
				for (var i:int = 0; i < rowLen; i++) 
				{
					str = "";
					if (grid[j][i]) {
 
						str += grid[j - 1] ? getWall(grid[j - 1][i]) : 1;
						str += getWall(grid[j][i + 1]);
						str += grid[j + 1] ? getWall(grid[j + 1][i]) : 1;
						str += getWall(grid[j][i - 1]);
 
						tile = new this["Tile"+str] ;
						tile.x = TILE_SIZE * i;
						tile.y = TILE_SIZE * j;
						addChild(tile);
					}					
				}
			}
		}
 
		private function getWall(val:uint):uint {
 
			if (val) {
 
				return 0;
			}
			else {
				return 1;
			}
		}
 
	}
}
Название: res.jpg
Просмотров: 199

Размер: 24.3 Кб

Итого получаем 16 тайлов, и соответственно если класть в массив будет 16 элементов, а не 256 как вы многократно твердили


Последний раз редактировалось Isfet; 12.01.2014 в 09:45.