Результаты поиска
| |
belsen | Дата: Четверг, 19 Июля 2012, 16:32 | Сообщение # 1 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| GameMix, hero564 большое спасибо за помощь!
Все таки я пошел своим путем. Может кому-то пригодится:
Сделал шаг сетки по горизонтали и вертикали равным 1. Origin сделал по центру спрайта препятствия. В Creation Code комнаты прописал следующее:
Code { rocks_num = irandom_range(100, 150); // Здесь задается количество препятствий while(rocks_num >= 0) { new_rock_x = irandom_range(16, room_width - 16); // Генерируются координаты нового препятсвия (значения взяты (16, room_width - 16) и (16, room_height - 16) new_rock_y = irandom_range(16, room_height - 16); // для того, чтобы препятствия не вылазили за пределы экрана) if !position_meeting(new_rock_x + 16, new_rock_y, obj_rock) // Здесь происходит проверка перекрытия с уже созданным экземпляром справа, && !position_meeting(new_rock_x-16, new_rock_y, obj_rock) // слева, && !position_meeting(new_rock_x, new_rock_y+16, obj_rock) // сверху, && !position_meeting(new_rock_x, new_rock_y-16, obj_rock) // снизу, && !position_meeting(new_rock_x + 16, new_rock_y + 16, obj_rock)// в правом верхнем углу, && !position_meeting(new_rock_x - 16, new_rock_y + 16, obj_rock) // в левом верхнем углу, && !position_meeting(new_rock_x + 16, new_rock_y - 16, obj_rock) // в правом нижнем углу, && !position_meeting(new_rock_x - 16, new_rock_y - 16, obj_rock) // в левом нижнем углу { instance_create(new_rock_x, new_rock_y, obj_rock); // Если перекрытия не происходит, создается новый экземпляр rocks_num -= 1; // и количество оставшихся препятствий уменьшается на 1 } } }
Вариант конечно получился довольно неуклюжий, но вполне работоспособный и препятствия создаются без привязки к сетке. Работает это все довольно шустро.
Сообщение отредактировал belsen - Пятница, 20 Июля 2012, 07:55 |
|
| |
belsen | Дата: Среда, 18 Июля 2012, 16:13 | Сообщение # 2 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| Исправил для генерации целых чисел. Но симтомы те же. Вот код с комментариями, может я неправильно алгоритм использую.
Code { repeat(irandom_range(35, 50)) // Генерируется количество препятствий в комнате от 35 до 50 { do { new_rock_x = irandom(room_width); // Генерируется координата x препятствия new_rock_y = irandom(room_height); // Генерируется координата y препятствия } until (place_meeting(new_rock_x, new_rock_y, all)) // Если в этой точке уже есть другой объект, сгенерировать новые координаты instance_create(new_rock_x, new_rock_y, obj_rock); // Если в сгенерированных координатах нет другого объекта, создать в нем новый экземпляр } }
Пробовал уменьшить кол-во итераций repeat(irandom_range(1, 3)). Все равно тоже самое. Дело не в том, что он не может долго найти подходящие координаты, а скорее всего в этой строчке: until (place_meeting(new_rock_x, new_rock_y, all))
Сообщение отредактировал belsen - Среда, 18 Июля 2012, 16:18 |
|
| |
belsen | Дата: Среда, 18 Июля 2012, 15:44 | Сообщение # 3 | Тема: Вопрос - Ответ (Game Maker) |
был не раз
Сейчас нет на сайте
| Здравствуйте, хочу сделать генерацию припятствий при создании комнаты. За это будет отвечать объект obj_rocks_creator. У него в действии "Room start" прописываю такой код:
Code { repeat(random_range(35, 50)) { do { new_rock_x = random(room_width); new_rock_y = random(room_height); } until (place_meeting(new_rock_x, new_rock_y, all)) // Если в этой точке уже есть другой объект, продолжить генерацию координат instance_create(new_rock_x, new_rock_y, obj_rock); } }
Но при выполнении игра по-ходу входит в бесконечный цикл и повисает с черным экраном.
Сразу извиняюсь если вопрос нубский, начал изучать GML только сегодня
|
|
| |
belsen | Дата: Вторник, 28 Декабря 2010, 08:31 | Сообщение # 4 | Тема: Литература про разработку игр |
был не раз
Сейчас нет на сайте
| 2Glob1 Хоть убей, но нигде не могу найти. Везде только раздачи со сканом книги. Если тебя не затруднит, кинь мне ссылку на раздачу с диском.
|
|
| |
belsen | Дата: Понедельник, 27 Декабря 2010, 17:05 | Сообщение # 5 | Тема: Литература про разработку игр |
был не раз
Сейчас нет на сайте
| И все же, может кто-нибудь поделится ссылочкой на диск от книги?
|
|
| |
belsen | Дата: Четверг, 23 Декабря 2010, 15:39 | Сообщение # 6 | Тема: Литература про разработку игр |
был не раз
Сейчас нет на сайте
| Поделитесь, пожалуйста, диском к "Увлекательному созданию трёхмерных компьютерных игр без программирования"
|
|
| |
|