Создание травы
|
|
soaup | Дата: Среда, 28 Июля 2010, 08:51 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Когда я пытался разными способами создать траву в ГМ, получалось не очень хорошо 1) в первом случае при входе в игру вокруг игрока создавались несколько образцов обьекта grass в случайном месте возле игрока repeat(100){instance_create(choose(player.x+random(disx),player.x-random(disx)),choose(player.y+random(disy),player.y-random(disy)), grass_obj)} - может быть, и не очень удачный код у обьекта травы прописано, что он удаляется при отдалении player от grass, а в событии дестроя создание нового обьекта травы, но уже около игрока. Этото способ был нехорош тем, что при движении игрока было заметно, что создается трава. 2) потом я стал пробовать с деактивацией. Создавалась трава во всей комнате (размеры комнаты 10000 на 10000). Потом в степе у игрока instance_activate_region(view_xview[1],view_yview[1],view_xview[1]+1280,view_yview[0]+800,1) - активация в пределах вида поначалу выглядело хорошо. У травы в степе if distance_to_object(player)>2000 {instance_deactivate_object(grass_obj)} Трава есть, не видно чтобы создавалась или удалялось. Но! При прохождении player'ом несколько шагов, скорость игры необьясними почему увеличивалось, а потом игра зависала. Если заменить в степе у игрока на { instance_activate_all(); instance_deactivate_region(view_xview[0],view_yview[0], view_wview[0],view_hview[0],false,true); } То у некоторых обьектов начинаются глюки с индексами спрайтов, тоже необьяснимо почему. Пожайлуста, помогите либо отыскать, что не так в обоих случаях, или подскажите, какой-нибудь другой способ создания травы. С меня +
Сообщение отредактировал soaup - Среда, 28 Июля 2010, 08:51 |
|
| |
CeBep | Дата: Среда, 28 Июля 2010, 09:48 | Сообщение # 2 |
постоянный участник
Сейчас нет на сайте
| Попробуйте с помощью tiles, просто настройте нужную глубину слоя (кнопка add в меню tiles).
The real war is to follow the law of the lord-© DMX
Сообщение отредактировал CeBep - Среда, 28 Июля 2010, 11:27 |
|
| |
Saracen | Дата: Среда, 28 Июля 2010, 11:05 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Возможно он имел ввиду tiles, так что я согласен. Вручную отрисованный дизайн уровня намного приятнее на вид любого "автоматизированного" левелдизайна. Тем более если учесть, что даже если размер спрайта 64х64 получается около 24 тысяч обьектов одной только травы. Многовато знаете ли не только для гамака. Так что второй пункт не подходит изначально. Очень ресурсоемкий. Возможно стоит попробовать отказаться от обьектов и сделать все с помощю функций рисования. Можно попробовать сурфейсы с текстурой травы. Тут нужно эксперементировать.
|
|
| |
soaup | Дата: Среда, 28 Июля 2010, 20:31 | Сообщение # 4 |
участник
Сейчас нет на сайте
| Ну я как то для себя как то убираю вариант с тайлами - размер комнаты 10000 на 10000, вручную тайлы расставлять оооочень долго, причем комната такая будет не одна. Причем париться со слоями тайлов, времени прибавит. Второй вариант свой я тоже отрекаю, ибо непонять от чего возникают глюки. Вот можно ли развить первый вариант? Чтобы при перемещени player, трава создавалась за пределами вида, так чтобы в виде не было видно чтобы чтото создавалась, ну а для fps чтобы ненужная трава (которая слишком далеко) удалялась. Ну и моя строчка repeat(100){instance_create(choose(player.x+random(disx),player.x-random(disx)),choose(player.y+random(disy),player.y-random(disy)) , grass_obj)} которой я хотел добиться, чтобы трава создавалась в радиусе от игрока в случайном месте, чего я и добился, но можно ли заменить на более приличную?
|
|
| |