Мне нужно сделать большое количество гекстелей на холсте. Я хотел бы сделать так, чтобы я отображал только плитки, которые видны пользователю, и загружает дополнительные хекстели, когда пользователь прокручивает (используя клавиши перетаскивания или стрелки или элемент управления панорамированием). У меня есть основная идея в моей голове, но я ищу помощь в разработке более надежного решения, которое будет хорошо масштабироваться.контроль панорамирования для хекстелей
То, что я имею в виду и могу сделать прямо сейчас:
а. идентифицировать плитки, которые необходимо загрузить на экран, и получить данные для их рендеринга с сервера b. когда пользователь перетягивает, выясните новый набор плиток, который нужно загрузить, и получите данные и снова загрузите весь экран.
Это работает, но это не дает ощущение прокрутки - оно по существу внезапно перекладывает все. В идеале, я хотел бы получить представление о картах Google при прокрутке этого. Я играл с загрузкой некоторых фрагментов на стороне карты и прокручивал только нижний холст при перетаскивании, но это не работает слишком хорошо, потому что холст заканчивается ... это было бы очень аккуратно, если бы у меня был холст, который вел себя как круговой буфер, поэтому прокрутка в любом направлении содержала только определенное количество плиток в памяти, и я могу непрерывно прокручивать все направления.
Любые мысли или полезные советы заслуживают высокой оценки.
Спасибо!
Привет Шон, спасибо за этот подробный комментарий. Я изучал API Google Maps Googla, но не был уверен, применим ли он в моем случае. У меня есть список гексаметаллов, которые существуют сами по себе, и у меня может быть неограниченное число из них. Кроме того, каждая гексагональная плитка отделяется прямо сейчас. Чтобы использовать карты goole flash api, я думаю, мне просто нужно сделать одно большое изображение со всеми шестнадцатеричными фрагментами, которые я не уверен, будет работать слишком хорошо (так как каждая гексагональная плитка имеет несколько характеристик, которые нам нужно отслеживать из). Любые дополнительные комментарии, которые у вас есть с этим, будут полезны. – Azeem
Hi Azeem, без проблем, жаль, что это не решит вашу проблему. Когда вы говорите, что холст «иссякает», вы имеете в виду, что вы превышаете предел 4800x4800 для графики? Я думаю, что, может быть, вы можете сохранить шестнадцатеричные плитки в качестве отдельных спрайтов (например, как вы говорите), и использовать холст для захвата событий мыши, а затем перемещать спрайты индивидуально и загружать и перемещать по мере необходимости. В принципе, я думаю, вам, возможно, придется играть с количеством «близких» фрагментов, которые вы загружаете, в зависимости от того, как быстро вам нужно прокручивать/сколько нужно предустановить, но ваша общая концепция звучит хорошо. Если у меня будет время, я буду экспериментировать. – shaunhusain