Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- with (o_map_core)
- {
- //входные данные:
- // al //высота (влево вниз)
- // ar //ширина (вправо вниз)
- // az //высота
- /*
- двумерные массивы хранят данные в 2д таблице и не могут хранить 3д мир
- линейные массивы хранят информацию построчно и могут хранить 3д послойно
- сначала были только двумерные, потом я добавлял линейные для удобства
- потом двумерные я совсем уберу, когда будет 3д карта
- как понимать названия переменных
- a означает array (массив)
- массив хранит карту
- карта состоит из прямоугольной сетки клеток, расположены под углом 45 градусов
- верхний угол это начало координат (0,0)
- l означает координату ячейки по оси "влево вниз"
- r означает координату ячейки по оси "вправо вниз"
- n означает порядковый номер ячейки в линейном массиве
- t означает тип того, что находится в этой ячейке
- o означает объект. Хранит ссылку на объект. Объект может занимать несколько ячеек,
- тогда все они будут хранить одинаковую ссылку на один и тот же объект
- x,y означают координаты вывода на экран ячейки
- */
- /*#######*//*### всё что так отмечено, хочу удалить ####*//*#######*/
- //объявление переменных:
- //двумерные массивы:
- /*#######*/a[0,0]=0//массив карты
- /*#######*/a[al,ar]=0//массив карты - последняя точка (для инициации всего поля массива)
- /*#######*/at[0,0]=0//тип поверхности
- /*#######*/at[al,ar]=0//тип поверхности - последняя точка (для инициации всего поля массива)
- l=0; r=0//двумерные координаты
- e=0 //e=elevation
- az=5
- /*#######*/ax[l,r]=0//координата x для клетки
- /*#######*/ay[l,r]=0//координата y для клетки
- //линейные массивы:
- //создание:
- n=-1//число точек в массиве карты (arr number)
- //но сначала просто порядковый номер ячейки памяти
- //////////что за хрень////ann[0]=0 //порядковый номер ячеек
- ano[0]=0 //собственно МАССИВ ОБЪЕКТОВ
- ant[0]=0 //массив типов объектов
- anl[0]=0 //координата l в массиве точки с номером 0
- anr[0]=0 //координата r в массиве точки с номером 0
- anz[0]=0 //координата zz в массиве точки с номером 0
- for (e=0 e<=az e+=1)
- {
- for (l=0 l<=al l+=1)
- {
- for (r=0 r<=ar r+=1)
- {
- n+=1//порядковый номер
- /*#######*/a[l,r]=0//содержимое клетки
- /*#######*/at[l,r]=0//тип поверхности
- /*#######*/ax[l,r]=x+l*15-r*15//координаты
- /*#######*/ay[l,r]=y+l*5+r*5//координаты
- anx[n]=x+l*15-r*15 //координаты по номеру
- any[n]=y+l*5+r*5-e*20 //координаты по номеру
- ano[n]=0 //нуль это пустота
- ant[n]=0 //нуль это пустота
- anl[n]=l //позиция l в массиве по номеру клетки
- anr[n]=r //позиция r в массиве по номеру клетки
- anz[n]=e //позиция zz в массиве по номеру клетки
- if l=0 or r=0 or l=al or r=ar then
- {
- /*#######*/a[l,r]=1000//границы
- ant[n]=1000 //границы
- }
- //o_map_dot это объект-помошник, с помощью которого игра определяет на какую клетку указывает курсор
- if e=0 //я расставляю доты только в один слой
- then
- {
- dot=instance_create(anx[n],any[n],o_map_dot)
- dot.myl=l
- dot.myr=r
- dot.myz=e
- dot.myn=n
- }
- }
- }
- }//end of e
- //тестовое заполнение ячеек, для теста сохранения:
- //ant[n]=7357
- //ano[n]=noone
- //ant[10]=7357
- //ano[10]=noone
- created=1
- }//end of with(o-map_core)
- instance_create(x,y,o_cube_robot)
Advertisement
Add Comment
Please, Sign In to add comment