Как указано в этом выпуске , в зависимости от того, какой тип сервера вы используете, вы не можете получить доступ к файловым потокам в любом порядке. Вам нужно открывать и обрабатывать файлы в последовательном порядке, или вы получите это исключение «Положение внутреннего потока изменилось неожиданно».
Поэтому убедитесь, что:
OpenReadStream
на File1
, затем полностью обработайте содержимое файла OpenReadStream
на [ 113] и т. Д. Я не забываю проверять страницу Game Development Amit назад, когда я записал некоторые игры. У него есть большой подраздел на мозаиках, который имеет большую часть того, что Вы хотите.
Вы могли просмотреть прошлые номера журнала Game Developer, чтобы видеть, обращается ли что-то к тому, что Вы спрашиваете подробно.
Для (1) самый легкий способ иметь дело с основанной на мозаике картой, где каждая мозаика может содержать несколько объектов, состоит в том, чтобы просто иметь большой многомерный массив структур, представляющих каждую мозаику. Структура содержит указатель на заголовок связанного списка, представляющего все объекты в той мозаике. Это - очень эффективная память и позволяет Вам быстро найти все в определенной мозаике, также перечисляя их вдоль некоторой другой оси (например, владелец, арена выделения, и т.д.).
RogueBasin посвящен подобным Жулику играм (например, Жулик, NetHack). Все те игры были основаны на сетке простого квадрата. Сайт имеет обширный раздел по разработке игр как этот: http://roguebasin.roguelikedevelopment.org/index.php?title=Articles
Вы найдете оба предложения и кодируете там, который мог использоваться для создания игры как Вы, описывают. В конце концов, единственная реальная разница между Rogue/Larn/NetHack/etc. и Diablo или рядом Ultima использует простые текстовые символы для изображения карты и геймплея по сравнению с изометрическими спрайтами.
В особенности Вы найдете информацию о вычислении области освещенной факелом или фонарем, который пользователь несет, структуры данных для хранения карт, алгоритмов для автоматической генерации карт и большого количества примечаний для того, как различные игры, которые были уже записаны, приняли решение решить эти проблемы.
Выезд Gamasutra. У них есть загрузки статей для всех видов разработки игр.
Карта была бы массивом значений. Это могло быть разделено на дискретные компоненты. Только части в диапазоне плеера были бы загружены и объекты и npc в этих активных частях.
Так как старые аппаратные средства имели очень ограниченную память и CPU, те игры только смогут загрузить и обработать части карт.