Я делаю игру тетриса на Java, и у меня есть небольшая проблема, когда текущая часть останавливается, когда они ударяют другую часть, которая уже приземлилась. У меня есть отдельные классы для каждой формы тетромино. Когда currentPiece падает, форма с наименьшей координатой Y и тем же значением Х, что и ток, устанавливается как точка останова для currentPiece. Проблема в том, что кусок проходит через блоки, расположенные рядом с центром currentPiece, и утомительно кодировать все возможные формы и повороты.Проблемы с остановкой кусочков в моей игре с тетрисом (Java swing)
Есть ли лучший способ сделать это? В принципе, мой вопрос: как обрабатывать границы кусочков тетриса?
Ссылка на мои ява файлы: http://goo.gl/Ms8Mj (простите беспорядка)
Каждый блок представлен в виде таблицы значений, для формы L это:
{0,0},{1,0},{0,1},{0,2}
«Средний» блок рассматривается как источник. Я рассматриваю возможность создания двумерного булевского массива, если место занято или нет.
Зависит от того, как вы реализовали ... 'Shape' предоставляет метод' getBounds', который предоставляет метод 'intersects', который может использоваться для определения того, интересуются ли две формы ... если вы используете' java.awt ,Shape' – MadProgrammer
@MadProgrammer Я не использую интерфейс Shape –
Здесь вам будет полезно некоторое представление о вашем коде;) – MadProgrammer