Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 26.04.2010, 15:54
TaNda вне форума Посмотреть профиль Отправить личное сообщение для TaNda Найти все сообщения от TaNda
  № 1  
Ответить с цитированием
TaNda

Регистрация: Feb 2010
Сообщений: 29
По умолчанию Как обратиться к элементам простого массива?

Проблема такая: создаю массив с элементами (для игры пятнашки). А как обратиться к ним по-человечески не понимаю. Просто [tileArr] (как в коде пока написано у меня) - получается не к каждому, а к списку элементов обращение, да? По книжке что-то не разобраться... Накрутила, навертела чего-то, и не работает(
Помогите если не сложно =)

Код AS1/AS2:
var tileArr:Array = ["tile1", "tile2", "tile3", "tile4", "tile5", "tile6", "tile7", "tile8", "tile9", "tile10", "tile11", "tile12", "tile13", "tile14", "tile15"];
 
function initGame()
{
	tileDist = 54;
	for (x=1; x<=4; x++)
	{
		for (y=0; y<=3; y++)
		{
 
			_root[tileArr]._x = x*tileDist+500;
			_root[tileArr]._y = 400+y*tileDist+tileDist;
		}
	}
	for (tilenum = 0; tilenum<100; tilenum++)
	{
		do
		{
 
			tile = [tileArr];
			emptySpace = findEmpty(tile);
		}
		while (emptySpace == "none");
		moveTile (tile, findEmpty(tile));
	}
}
 
function findEmpty(tile)
{
	tilex = _root[tile]._x;
	tiley = _root[tile]._y;
	if (tilex>tileDist+500)
	{
		if (!tileThere(tilex-tileDist, tiley))
		{
			return ("left");
		}
	}
	if (tilex<500+tileDist*4)
	{
		if (!tileThere(tilex+tileDist, tiley))
		{
			return ("right");
		}
	}
	if (tiley>tileDist+400)
	{
		if (!tileThere(tilex, tiley-tileDist))
		{
			return ("above");
		}
	}
	if (tiley<400+tileDist*4)
	{
		if (!tileThere(tilex, tiley+tileDist))
		{
			return ("below");
		}
	}
	return ("none");
}
function tileThere (thisx, thisy)
{
	for (i=1; i<tileArr.length; i++)
	{
		if (_root[tileArr[i]]._x == thisx)
		{
			if (_root[tileArr[i]]._y == thisy)
			{
				return true;
			}
		}
	}
	return false;
}
function moveTile(tile, direction)
{
	if(direction == "above")
	{
		_root[tile]._y -= tileDist;
	}
	else if (direction == "below")
	{
		_root[tile]._y += tileDist;
	}
	else if (direction == "left")
	{
		_root[tile]._x -= tileDist;
	}
	else if (direction == "right")
	{
		_root[tile]._x += tileDist;
	}
}
function tileUnderMouse()
{
	for (i=1; i<tileArr.length; i++)
	{
		if (_root[tileArr[i]].hitTest(_xmouse, _ymouse))
		{
			return (i);
		}
	}
}


Последний раз редактировалось TaNda; 26.04.2010 в 15:56.
Создать новую тему   Часовой пояс GMT +4, время: 16:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.