Помогите пжл разобраться как работает метод. public boolean isCollision(GameObject object) { int transparent = Color.NONE.ordinal(); // переменная для проверки прозрачности поля for (int matrixX = 0; matrixX < width; matrixX++) { for (int matrixY = 0; matrixY < height; matrixY++) { // счетчик для проверки всей матрицы ракеты int objectX = matrixX + (int) x - (int) object.x; // тут затык. Ракеты то мы полностью прокручиваем, но объект с которым сравниваем мы почему то берем только одну координату (угловую?). Но ведь ландшафта она может коснуться в любом месте. Не понимаю как это работает. Хотя в целом идея с вычитанием значения координат вроде понятна. int objectY = matrixY + (int) y - (int) object.y; //аналогично if (objectX < 0 || objectX >= object.width || objectY < 0 || objectY >= object.height) { // Ландшафт и платформа изначально находятся ниже ракеты, поэтому изначально objectX и objectY должен быть меньше нуля. А вот смысл проверки objectX >= object.width ускользает. continue; } if (matrix[matrixY][matrixX] != transparent && object.matrix[objectY][objectX] != transparent) { // тут не уверен. Если матрица ракеты и матрица объекта пересеклись в непрозрачной части? то возвращаем true? Но где мы успели вобще успели проверить пересечение матриц? Короче запутался. return true; } } } return false; }