![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2010
Сообщений: 29
|
Проблема такая: создаю массив с элементами (для игры пятнашки). А как обратиться к ним по-человечески не понимаю. Просто [tileArr] (как в коде пока написано у меня) - получается не к каждому, а к списку элементов обращение, да? По книжке что-то не разобраться... Накрутила, навертела чего-то, и не работает(
Помогите если не сложно =) 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. |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 950
|
если я правильно понял вас ,то нужно вам обрашаться вот так
|
|
|||||
|
Регистрация: Feb 2010
Сообщений: 29
|
Нет, нужно, чтоб программа обращалась поочереди к каждому элементу массива, а не только к одному конкретному.
Есть мысль использовать цикл for, в коде ниже я так и сделала - это правильно? Неужели каждое обращение к элементам нужно прописывать через очередное for и скобки? Это ж помойка в коде будет.. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 101
|
может проще использовать mc.onRollover = function(){}
и мороки меньше и всегда знаешь на каком тайле мышь |
|
|||||
|
Регистрация: Feb 2010
Сообщений: 29
|
это в функции для каждого из 15 элементов прописывать всю массу кода? Наверное, я не поняла) ааа
![]() Так то все работает и без массива, но не реализовать проверку на решенность головоломки ибо запутано очень. Хочется избавиться от постоянных вычислений номера элемента и просто производить все действия с элементами массива. |
|
|||||
|
Регистрация: Sep 2005
Сообщений: 950
|
зачем, это делаеться вот так
|
|
|||||
|
Регистрация: Feb 2010
Сообщений: 29
|
Спасибо, ребят) Буду пробовать...но походу, если весь код не перелопатить, не заработает..там все на другом принципе ща
|
![]() |
![]() |
Часовой пояс GMT +4, время: 16:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|