Воскресенье, 22 Декабря 2024, 17:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Генерация 2D мира
SKYPIDARДата: Суббота, 18 Мая 2013, 13:51 | Сообщение # 1
был не раз
Сейчас нет на сайте
вообщем, подкиньте урок, или исходник, или помогите как нибудь. нужно сделать рандомную генерацию 2D мира (вид сверху), размер 200х200 клеток. 1 клетка - 16х16 пикселей. основной цвет клеток черный, в некоторых местах (рандомно) идут скопления клеток другого цвета. сам не знаю как сделать.
krapДата: Суббота, 18 Мая 2013, 13:59 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Gen_WOrld. Create:
Код
for(a=0;a!=map_width;a+=1)
for(s=0;s!=map_height;s+=1)
{
           instance_create(a*stepx,s*stepy,CELL)
}


CELL. Create
Код
image_speed=0;
image_index=irandom(image_number)


Добавлено (18.05.2013, 13:56)
---------------------------------------------
map_width,map_height- высота ширина соотвественно
stepx, stepy - шаг по оси х и у соотв.
СЕЛЛ- клетка

Добавлено (18.05.2013, 13:59)
---------------------------------------------
если все клетки будут одного спрайта, то замени код клетки на
Код
with(self)
{
image_speed=0;
image_index=irandom(image_number)
}


Сообщение отредактировал krap - Суббота, 18 Мая 2013, 13:59
SKYPIDARДата: Суббота, 18 Мая 2013, 14:01 | Сообщение # 3
был не раз
Сейчас нет на сайте
допустим сделал чтобы все было одного спрайта, а как добавить местами другие клетки? небольшие скопления по 5-6 клеток которые стоят рядом друг с другом.
krapДата: Суббота, 18 Мая 2013, 20:10 | Сообщение # 4
почетный гость
Сейчас нет на сайте
SKYPIDAR,
gen_world. Create:
Код

grid_width=10; grid_height=10;
stepx=32; stepy=32;

gridWorld=ds_grid_create(grid_width,grid_height);

//Инициализация
var rand,obj,rand_image;
for(W=0;W!=grid_width;W+=1)
{
       for(H=0;H!=grid_height;H+=1)
       {
           rand=irandom(10)
           if (rand mod 10 ==0)
           {
               rand_image=irandom(Cell.image_number)
               ds_grid_set_region(gridWorld,W,H,W+3,H+3,rand_image)
               W=W+3; H=H+3;
           }
           else
           {    
               rand_image=irandom(Cell.image_number)
               ds_grid_set(gridWorld,25+W*stepx,25+H*stepy,rand_image)
           }
       }
}

//Создание
var current_cell;
for(W=0;W!=grid_width;W+=1)
for(H=0;H!=grid_height;H+=1)
{
       current_cell=ds_grid_get(gridWorld,W,H)
       obj=instance_create(25+W*stepx,25+H*stepy,Cell)
       obj.image_index=current_cell;
}       


Еще тут есть такой момент что может не распознать Cell.image_number
Это потому, если нет объекта клетки в комнате, поэтому и невидит
Код не проверял, но логика вроде понятная. Я бы сказал элементарная
Если что не понятно пиши)


Сообщение отредактировал krap - Суббота, 18 Мая 2013, 20:11
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг