Я создаю игру - что-то вроде this - моя игра меняется в деталях, но для описания моей проблемы эта игра великолепна.У меня проблема с маркировкой области.
Правила игры (если вы играете в связанную игру в течение минуты, вы получите, если - в основном описано, что делают pacman и призраки в этой игре):
На карте естьигрок и враги. При запуске вся карта пуста (все поля не заняты). Пока игрок движется через незанятую область (темная в любимой игре), он отмечает свой путь позади.Если враг (призрак) попадает в цель, игрок умирает.Эта часть довольно проста - я 2d массив с числами, где 0 = незанятая область, 1 = занятая и 2 = отмеченная область, я просто рисую соответствующие плитки и проверяю массив, когда объекты движутся.Проблемная часть наступает, когда игрок переходит из незанятой области в занятую область.Существует три сценария (эта часть точно такая же, как в связанной игре):
занятая плитка не связана с краями карты (это может случиться, когда враг уничтожает несколько плитокударяя их, и немногие остаются одни в середине карты) - тогда отмеченный путь должен быть нарисован как занятая область,
игрок отмечает путь между двумя занятыми областями, обе соединенык краям карты, затем он делает две отдельные области и могут произойти две вещи:
- сначала его путь помечается как занятый,
- , если на первой отдельной области находится враг (призрак)) ничего не делать,
- , если в первой отдельной области нет врагов, пометить всю область как занятую,
- то же самое для второй области
--- конец правил:)
Как вы видите, я описал вам что-то очень похожее на связанную игру, моя будет отличаться в деталях и сделана в основном для изучения Python и веселья,но у меня большая проблема сВ последней части я должен решить, что делать, если игрок переходит из незанятой области в занятую.
Я могу проверить рекурсивные тайлы - сначала ту, на которой я стою, затем ее соседей, затем верну истину или ложь, но сложность подобного рода трагична (моя карта будет иметь около 200 фид).
У вас есть идея, как проверить и отметить соответствующую область, и у вас нет тонны на вычислениях сразу?