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

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

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

Регистрация: Mar 2004
Адрес: Ръльех
Сообщений: 1
По умолчанию Помогите с массивами в AC

Что-то меня глючит кажется... Никак не допру..
У меня двумерный массив содержит названия мувиклипов. А потом эти названия оттуда никак не хотят забираться..

В общем, вот так:
Код:
function AddMap(x, y, mp) {
_root.i++;
map = "m"+mp;
newn = map+i;
duplicateMovieClip(map, newn, i);
xpos = x*50-50;
ypos = y*50-50;
karta[x][y] = mp;
setProperty(newn, _x, xpos);
setProperty(newn, _y, ypos);  
}
Название получаемых мувиклипов - похоже на "m001", создаются они из мувика "map".
Сетка разбита на ячейки по 50 точек (для удобства)
х, y - координаты ячейки, в которой созданный мувик разместится.
xpos, ypos - реальные координаты
karta[x][y] - как раз тот самый массив

Затем идет добавление этих мувиков (получается что-то вроде карты)
Код:
AddMap(1, 9, "001");  
AddMap(2, 9, "001");  
AddMap(3, 9, "001");
По идее, при подобном коде в функции AddMap в массив karta должно записываться название.

Дальнейшая идея: путешествие по этой карте объекта - человечка.
Код:
function engine(x, y, go) {  	 	
act = karta[x][y];  	  	
if (act == "001") {  		
if (go == 0) { _root.man._x = _root.man._x+1; } else { _root.man._x = _root.man._x-1; }
....тут для каждой карты свои формулы движения... }
go - направление движения (0 - вправо, 1 - влево)
act - как раз название "местности", в зависимости от которой и будет двигаться человечек

Суть в том, что вот это условие if (act == "001") - никогда не срабатывает. Либо я массив неправильно заполняю.. либо неправильно потом к нему обращаюсь... Я подумал, что, быть может, массив просто не виден.. Посему, команду karta[0][0]="" поставил еще до объявления всех функций. Но не помогло.

В чем суть?

Старый 22.03.2006, 16:23
liquid lone вне форума Посмотреть профиль Отправить личное сообщение для liquid lone Посетить домашнюю страницу liquid lone Найти все сообщения от liquid lone
  № 2  
Ответить с цитированием
liquid lone
 
Аватар для liquid lone

Регистрация: Aug 2005
Адрес: Barnaul
Сообщений: 10
Отправить сообщение для liquid lone с помощью ICQ
заранее создай основной массив:
karta = new Array();
а в функции сначала инициализируй один уровень массива:
karta[x] = [];
а затем уже сохраняй значение во втором уровне:
karta[x][y] = mp;

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

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

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


 


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


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