![]() |
Заполнение элементов Массива массивов (изометрическая сетка)
Подскажите, каким образом можно правильно заполнить ячейки изометрической сетки (массива массивов) перетаскивая на нее объект определенного размера (1х6 и т.д.) как только я не пробовал это делать.
Код AS3:
|
Код AS3:
|
Любой линейный массив, соответственно струтурированный можно рассматривать как псевдо- 2-х, 3-х, n-мерный. Хотя по сути остается линейным (одномерным).
Код AS3:
|
Хотя я проглядел, у Вас вроде есть инициализация массива
Цитата:
Код AS3:
Но в этом конкретном случае мотивация непонятна. Если ещё не нашли ошибку, попробуйте запихнуть всё, что написали в один класс, который можно запустить отдельно от приложения. Тогда если не форумчанам, то Вам будет проще найти ошибку. |
Да конструкция кода слишком большая для такого простого действия, на мой взгляд, но за неимением альтернативы пришлось пойти на эту адскую фантасмагорию которую выдал мой мозг... Я подумал наверняка найдутся люди которые уже делали это и показали бы мне правильный вариант. Я опирался от ячейки на которую попадает курсор при нажатии if (grid[col][row] == e.target) далее нужно просто сделать проверку рядом находящихся ячеек на заполненность и заполнить если они свободны, попутно ставя туда изображение объекта. Только с этой частью кода у меня проблема.
|
Для начала сохраните coll и row прямо на объекте по которому кликаете, чтобы не было этих пробежек в цикле.
|
А как же проверять соседние ячейки не пробегаясь по циклу? Мне же нужно сканировать всю сетку на наличие свободных/занятых мест перед установкой объекта?
|
Я про определение coll и row по event.target
По остальному - ищите ошибку |
Ищите в гугле / википедии по ключу fitting problem, их есть множесто разнообразных и разнообразных решений, но уж наверняка можно лучше, чем шесть вложенных циклов... Просто с таким кодом, пусть даже нормально оформленным не особенно можно разбираться, т.как кроме большой вложенности, есть всякие конструкции, которые выглядят на первый взгляд бессмысленными, как уже говорилось - безусловный выход из while на первой же итерации, или создание какого-то астрономического количества MovieClipов и моментального их уничтожения...
|
| Часовой пояс GMT +4, время: 02:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.