Среда, 13 Ноября 2024, 12:08

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Генерация движущегося фона с помощью объектов
GrannerДата: Среда, 24 Августа 2016, 19:33 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Доброго времени суток.
Для уровня платформера а-ля Ангри бердс создаются движущиеся фоны. На первом плане, само собой, активные объекты-здания и конструкции. Однако, активные здания
генерируются какой-то промежуток времени (10сек - минута, полторы минуты), после чего перестают появляться в окне вида. Потом могут сгенерироваться еще один-два раза или вообще махнуть ручкой в мою сторону. При этом аналогичная генерация фоновые зданий и активных конструкций идет своим чередом, без всяких нарушений.
Все это чудо создается простым способом:
В Create объекта marker запускаются 5 алармов с разной длительностью (два на активные здания и конструкции, остальные - на фоновые здания)
Код
alarm[0]=120;
alarm[1]=100;
alarm[2]=79;
alarm[3]=61;
alarm[4]=120;

В каждом алярме всего две строки:
на активные здания -
Код
instance_create(view_xview+850, (irandom_range(430, 480)), hous);
alarm[0]=120;

У каждого объекта здания всего два действия - выбор спрайта и удаление при выходе из комнаты
в Create
Код
im_spr=irandom(5);
switch (im_spr)
    {
    case 0: image_index=0; image_speed=0; break;
    case 1: image_index=1; image_speed=0; break;
    case 2: image_index=2; image_speed=0; break;
    case 3: image_index=3; image_speed=0; break;
    case 4: image_index=4; image_speed=0; break;
    case 5: image_index=5; image_speed=0; break;
    }
// Ну и направление движения и скорость через кнопку

на фоновые здания -
Код
instance_create(view_xview+850, (irandom_range(380, 420)),hous_f1);
alarm[1]=100;


Что можно здесь напутать, просто не представляю. Но тем не менее, активные здания работают и потом просто перестают появляться. Запускающий объект marker все также на экране, фоны и активные конструкции работают как надо. Встречался ли кто с такой проблемой? В файле больше никаких объектов и настроек комнаты... ничего. И ступор...


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
FireF1yДата: Четверг, 25 Августа 2016, 12:09 | Сообщение # 2
был не раз
Сейчас нет на сайте
Сложно сказать без исходника. Возможно, здания просто создаются на одинаковых координатах. Возможно, создаются за пределами комнаты и удаляются. Может быть, выбранный image_index пустой. Тестируйте, отключайте присвоение рандомного спрайта, отключайте скорость у зданий, спавните их у курсора мыши, выводите show_message при создании постройки, так выявите ошибку рано или поздно. p.s. алармы лучше не использовать
GrannerДата: Четверг, 25 Августа 2016, 13:58 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Цитата FireF1y ()
FireF1y
, если не сложно, взгляните пожалуйста исходник. Вроде продолжаю проверять и координаты создания, буду и по вашим рекомендациям.
А что значит не использовать алармы? Есть что-то лучшее для генерации повторяющихся действий?


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
USeR14Дата: Четверг, 25 Августа 2016, 21:35 | Сообщение # 4
RUSOriginal Studio
Сейчас нет на сайте
Проблема в коде создания антен alarm[4]=120. Скорее всего, они где-то застревают за экраном вместе с домами. Надо создавать антены гораздо выше домов.

А вообще, странная методика создания окружения для такой игры. Слишком много объектов плохо для оптимизации. Нужно смотреть в сторону Parallax Scrolling, где задний фон будет только бесшовными спрайтами.




GrannerДата: Четверг, 25 Августа 2016, 23:24 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Да, спасибо, уже разобрался. Действительно, застревали. Переделал их создание и все пошло. Что касательно оптимизации, то согласен с параллаксом, только фон у меня там будет не совсем пассивным. Да и 35-36 рабочих объектов в комнате разве много? Правда, фпс тоже на уровне 30 сидит.

Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
FireF1yДата: Пятница, 26 Августа 2016, 08:30 | Сообщение # 6
был не раз
Сейчас нет на сайте
Цитата Granner ()
Да и 35-36 рабочих объектов в комнате разве много? Правда, фпс тоже на уровне 30 сидит.

35 объектов - вполне нормальное количество, но у вас их, в среднем, 830 в комнате, оттого и фпс около 30. А вообще, как уже писали, такая методика крайне неэффективна в плане оптимизации, рисуйте хотя бы пассивные объекты спрайтами. И переходите на GM:S, там с оптимизацией все намного лучше.

Добавлено (26 августа 2016, 08:30)
---------------------------------------------
Кстати да, это

Код
im_spr=irandom(5);
switch (im_spr)
    {
    case 0: image_index=0; image_speed=0; break;
    case 1: image_index=1; image_speed=0; break;
    case 2: image_index=2; image_speed=0; break;
    case 3: image_index=3; image_speed=0; break;
    case 4: image_index=4; image_speed=0; break;
    case 5: image_index=5; image_speed=0; break;
    }
заменяется так:
Код

image_index=irandom(5);
image_speed=0;

:)


Сообщение отредактировал FireF1y - Пятница, 26 Августа 2016, 05:01
GrannerДата: Пятница, 26 Августа 2016, 09:14 | Сообщение # 7
почетный гость
Сейчас нет на сайте
FireF1y, плюсик вам в карму :) Но у меня еще один нахальный вопросик - эм.... а откуда у меня в среднем 830 объектов? Мож я чего не понимаю, но в отладочном режиме дома смотрел - 33-35.

*прошло два часа*
Скачал на работе, запустил, оба-на... действительно 800 с гаком... Откуда? От моей чудо-оптимизации?


Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
FireF1yДата: Пятница, 26 Августа 2016, 09:23 | Сообщение # 8
был не раз
Сейчас нет на сайте
Очень много объектов object23
GrannerДата: Пятница, 26 Августа 2016, 10:45 | Сообщение # 9
почетный гость
Сейчас нет на сайте
Упс, точно, я ж их не удалял. Всем спасибо за советы! Пойду хлопать себя по щекам и страдать дальше )

Лучше - быть, чем - казаться.
P.S. Прежде чем задавать вопрос - всегда просматриваю форум и справку
  • Страница 1 из 1
  • 1
Поиск:

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