|
|
|||||
Регистрация: 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); } Сетка разбита на ячейки по 50 точек (для удобства) х, y - координаты ячейки, в которой созданный мувик разместится. xpos, ypos - реальные координаты karta[x][y] - как раз тот самый массив Затем идет добавление этих мувиков (получается что-то вроде карты) По идее, при подобном коде в функции 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; }....тут для каждой карты свои формулы движения... } act - как раз название "местности", в зависимости от которой и будет двигаться человечек Суть в том, что вот это условие if (act == "001") - никогда не срабатывает. Либо я массив неправильно заполняю.. либо неправильно потом к нему обращаюсь... Я подумал, что, быть может, массив просто не виден.. Посему, команду karta[0][0]="" поставил еще до объявления всех функций. Но не помогло. В чем суть? |
|
|||||
заранее создай основной массив:
karta = new Array(); а в функции сначала инициализируй один уровень массива: karta[x] = []; а затем уже сохраняй значение во втором уровне: karta[x][y] = mp; |
Часовой пояс GMT +4, время: 11:07. |
|
« Предыдущая тема | Следующая тема » |
|
|