#actionscript #shift
#actionscript #сдвиг
Вопрос:
Я новичок в ActionScript3, и с целью обучения я пытаюсь создать игру типа match3. Я создаю клон игры типа bejeweled. но вместо замены я должен удалить эти элементы и сдвинуть верхние элементы вниз и добавить новые элементы над этими сдвинутыми элементами.
Я могу удалять совпадающие элементы, и после сопоставления я удаляю эти элементы, но я застрял с кодом сдвига. Я не могу сдвинуть эти элементы вниз.
Комментарии:
1. Почему это срочно, если проект предназначен для учебных целей? Также вам нужно анимировать падающие предметы или вы согласны с тем, что они мгновенно заполняют пространство внизу?
Ответ №1:
Я считаю, что вам следует взглянуть на исходный код Tetris Ричарда Лорда, поскольку ваша игра может быть как-то похожа по механике на Tetris. Тетрис сдвигает строки вниз, когда вам повезет.
Ричард Лорд — один из гуру Flash, и его способ ведения дел может показаться довольно продвинутым для такого новичка, как вы. Взгляните на исходный код и посмотрите, подходит ли он вам. Что я могу сказать, так это то, что это правильный способ создания игры, но, возможно, это не лучший момент для начала для такого новичка, как вы, который срочно нуждается.
http://www.richardlord.net/blog/actionscript-3-tetris-source-code
Ответ №2:
Я бы подошел к этому так в 2 частях.
-
Перебирайте свой массив позиций на доске, начиная с нижнего ряда, и проверяйте наличие пустого незанятого слота. Если вы найдете его, выполните еще один цикл по строке выше, пока не найдете фигуру в том же столбце. Если вы обнаружите фигуру в строке выше, примените анимацию, чтобы переместить ее в пустой слот и продолжить цикл.
-
После того, как вы перебрали все строки и анимировали всех подростков, вам нужно повторить цикл, чтобы найти все пробелы, в которые нужно поместить драгоценные камни. Создайте новые элементы в этих позициях, а затем переместите их вверх на (высота элемента * строка), примените другую анимацию, чтобы вернуть их в исходное положение.