Процедурная генерация коридоров
|
|
CUbeB | Дата: Суббота, 30 Мая 2020, 04:28 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Написал небольшой код:
Код
i=0;//x j=0;//y map[0,0]=0; for (i=0; i<100; i+=1) for (j=0; j<100; j+=1){map[i,j]=0;}
ii=0; jj=0; dir=0; size=2000 for (seeds=0;seeds<4;seeds+=1) { ii=irandom(100); jj=irandom(100); for (s=0;s<size;s+=1) { map[ii,jj]=1 dir=irandom(3) if (dir=0) {ii+=1}; if (dir=1) {ii-=1}; if (dir=2) {jj+=1}; if (dir=3) {jj-=1}; if (ii>100)or(ii<0)or(jj>100)or(jj<0) then {ii=irandom(100);jj=irandom(100);} } } for (i=0; i<100; i+=1) for (j=0; j<100; j+=1){if map[i,j]=0 then instance_create(obj_wall,i*16,j*16) if map[i,j]=1 instance_create(obj_hole,i*16,j*16)}
По идеи, он должен генерировать коридоры и стены, но вместо этого пишет в консоль сообщение об ошибке: Creating instance for non-existing object: 0
Если по пытаться поставить вместо создания объектов, рисования их спрайта, то все работает.
Да да, на аватарке моя старая игра...
|
|
| |
DivES | Дата: Суббота, 30 Мая 2020, 04:39 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| CUbeB, слушай, да ты издеваешься? А загуглить это твоё
Цитата CUbeB ( ) Creating instance for non-existing object: 0 ты не подумал? Вторая же ссылка выдаёт решение.
|
|
| |
CUbeB | Дата: Суббота, 30 Мая 2020, 05:24 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| DivES, Я уже все это видел. Ничего не понятно, но очень интересно. Можно конкретное решение моей проблемы?
Я тупой
Да да, на аватарке моя старая игра...
|
|
| |
DivES | Дата: Суббота, 30 Мая 2020, 05:54 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| CUbeB, а ты же в курсе, что instance_create(x, y, obj); принимает объект именно в качестве третьего параметра, а не первого, как у тебя?
Ну нельзя же слепо копировать функцию, даже не имея представления о том, в каком порядке у неё расположены аргументы.
Сообщение отредактировал DivES - Суббота, 30 Мая 2020, 05:56 |
|
| |
CUbeB | Дата: Суббота, 30 Мая 2020, 06:09 | Сообщение # 5 |
частый гость
Сейчас нет на сайте
| DivES, Забыл поменять местами, после теста с draw_sprite(); вместо instance_create();
Ошибка была в этом.. я клоун
Да да, на аватарке моя старая игра...
|
|
| |
DivES | Дата: Суббота, 30 Мая 2020, 06:10 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| CUbeB, а, ну тут да, так любой мог попасться, внимательнее!
|
|
| |