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

Регистрация: May 2012
Сообщений: 166
По умолчанию Заполнение элементов Массива массивов (изометрическая сетка)

Подскажите, каким образом можно правильно заполнить ячейки изометрической сетки (массива массивов) перетаскивая на нее объект определенного размера (1х6 и т.д.) как только я не пробовал это делать.
Код AS3:
	public function Click(e:MouseEvent):void
	{
		if (! drag)
		{
			if (e.target == osel)
			{
				curX = 16;
				curY = 10;
				objectMass = new Array();
 
				for (var rows:int=0; rows<curX; rows++)
				{
					objectMass.push(new Array());
				}
				while (true)
				{
					var tempCont = new MovieClip();
					for (var col:int=0; col<curX; col++)
					{
						for (var row:int=0; row<curY; row++)
						{
							var ball2x2 = new ball2x2_mc  ;
							objectMass[col][row] = ball2x2;
							ball2x2.x = col * 24;
							ball2x2.y = row * 24;
							ball2x2.mouseEnabled = false;
							tempCont.addChild(ball2x2);
 
						}
					}
					break;
				}
				gameMovieClip.addChild(tempCont);
				targ = tempCont;
				targ.startDrag(true);
				targ.mouseEnabled = false;
				drag = true;
			}
			if (e.target == tile)
			{
				curX = 1;
				curY = 1;
				objectMass = new Array();
				for (rows=0; rows<1; rows++)
				{
					objectMass.push(new Array());
				}
				while (true)
				{
					tempCont = new MovieClip();
					for (col=0; col<1; col++)
					{
						for (row=0; row<1; row++)
						{
							ball2x2 = new ball2x2_mc  ;
							objectMass[col][row] = ball2x2;
							ball2x2.x = col * 24;
							ball2x2.y = row * 24;
							ball2x2.mouseEnabled = false;
							tempCont.addChild(ball2x2);
 
						}
					}
					break;
				}
				gameMovieClip.addChild(tempCont);
				targ = tempCont;
				targ.startDrag(true);
				targ.mouseEnabled = false;
				drag = true;
			}
		}
		else
		{
			var score:int = 0;
			for (col=0; col<slots; col++)
			{
				for (row=0; row<slots; row++)
				{
					if (grid[col][row] == e.target)
					{
						for (var cur1:int=0; cur1<curX; cur1++)
						{
							for (var cur2:int=0; cur2<curY; cur2++)
							{
								if (grid[col + cur1][row + cur2].full == false)
								{
									score++;
									if (curX >= curY)
									{
										if (score == curX)
										{
											targ.x = e.target.x;
											targ.y = e.target.y;
											targ.stopDrag();
											targ = new MovieClip();
											for (var cur3:int=0; cur3<curX; cur3++)
											{
												for (var cur4:int=0; cur4<curY; cur4++)
												{
													grid[col + cur3][row + cur4].full = true;
												}
											}
											drag = false;
										}
									}
									if (curX < curY)
									{
										if (score == curY)
										{
											targ.x = e.target.x;
											targ.y = e.target.y;
											targ.stopDrag();
											targ = new MovieClip();
											for (cur3=0; cur3<curX; cur3++)
											{
												for (cur4=0; cur4<curY; cur4++)
												{
													grid[col + cur3][row + cur4].full = true;
												}
											}
											drag = false;
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение.