Он работает именно так, как мне нужно, я очень ценю вашу помощь и спасибо за ваше время :)
рабатываю простую 2D настольную игру с использованием гексагональных карт тайлов, я прочитал несколько статей (в том числе и статью об игре, которые связаны каждый раз, когда возникает вопрос о гексагональных фишках) о том, как рисовать гексы на экране и как управлять движение (хотя многое из этого я уже делал раньше). Моя главная проблема - найти соседние плитки на основе заданного радиуса.
Вот как работает моя система карт:
(0,0) (0,1) (0,2) (0,3) (0,4)
(1,0) (1,1) (1,2) (1,3) (1,4)
(2,0) (2,1) (2,2) (2,3) (2,4)
(3,0) (3,1) (3,2) (3,3) (3,4)
и т.д...
С чем я борюсь, так это с тем, что я не могу просто «выбрать» соседние плитки, используяfor(x-range;x+range;x++); for(y-range;y+range;y++);
потому что он выбирает ненужные плитки (в приведенном мною примере выбор плитки (1,1) и выбор диапазона 1 также дал бы мне плитку (3,0) (те, которые мне действительно нужны, были (0,1) ( 0,2) (1,0) (1,2) (2,1) (2,2)), что вроде как рядом с плиткой (из-за структуры массива), но это не совсем то, что я хочу чтобы выбрать. Я мог бы просто грубо заставить его, но это было бы не красиво и, вероятно, не охватило бы все аспекты «выбора радиуса».
Может ли кто-нибудь указать мне правильное направление здесь?