Четверг, 02 Апреля 2020, 09:50

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Деактивация определённых объектов
Деактивация определённых объектов
Quad69Дата: Среда, 19 Февраля 2014, 15:09 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Всем привет!
Сейчас решил увеличить комнату в моей игре, и с комнатой количество объектов.
Объектов у меня в комнате очень много, и мой компьютер сильно греется от этого(Но Fps все ровно на максимум). Игра моя в онлайн, и я играю в неё с другом, но у него компьютер ОЧЕНЬ слабый.

Как сделать за пределами вида деактивацию ОПРЕДЕЛЁННЫХ объектов?
За помощь дам +
LunarPixelДата: Среда, 19 Февраля 2014, 15:15 | Сообщение # 2
старожил
Сейчас нет на сайте
maksim1221232, в этих самых определенных объектах, в событии "за пределами вида" (outside view), либо в другом более подходящем условии, в зависимости от необходимости, прописать instance_deactivate_object(id). Ну и по мере движения вида (или, опять же, от какого-либо другого условия) совершать instance_activate_region();

Quad69Дата: Среда, 19 Февраля 2014, 15:33 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Поставил такой код:
В Step игрока:
Код
instance_activate_region(view_xview[0],view_yview[0],view_wview[0],view_hview[0],true)


В событие "Вне вида 0" объекта:
Код
instance_deactivate_object(id)


Игрок у меня двигается очень странно.
P.s Скорость комнаты 50
LunarPixelДата: Среда, 19 Февраля 2014, 15:39 | Сообщение # 4
старожил
Сейчас нет на сайте
Не совсем корректно. Так попробуй:
Цитата
instance_activate_region(view_xview[0],view_yview[0],view_xview[0]+view_wview[0],view_yview[0]+view_hview[0],true)


Quad69Дата: Среда, 19 Февраля 2014, 15:47 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Цитата LunarPixel ()
instance_activate_region(view_xview[0],view_yview[0],view_xview[0]+view_wview[0],view_yview[0]+view_hview[0],true)

Когда поставил это, через пару минут игра вообще зависла.

Добавлено (19.02.2014, 15:47)
---------------------------------------------
Немного поясню это:
Цитата maksim1221232 ()
Игрок у меня двигается очень странно.

Игрок стал застревать в объектах. Когда он прыгает, он сразу-же моментально приземляется.


Сообщение отредактировал maksim1221232 - Среда, 19 Февраля 2014, 15:48
LunarPixelДата: Среда, 19 Февраля 2014, 15:59 | Сообщение # 6
старожил
Сейчас нет на сайте
maksim1221232, попробуй тогда лучше так сделать, убери instance_deactivate_object(id)

И если у тебя позволяет структура внедрить такое, то в step кого-нибудь объекта-контроллера напиши.
Код
instance_deactivate_all(1)
instance_activate_region(view_xview[0],view_yview[0],view_xview[0]+view_wview[0],view_yview[0]+view_hview[0],true)


Имей в виду, что все объекты (кроме того, в котором используется код) будут деактивироваться, т.е. если в каком-то из других объектов есть что-то важное для всего игрового процесса, надо это учитывать.

Если будет работать нормально, то можно будет и про определенные объекты подумать.


Quad69Дата: Среда, 19 Февраля 2014, 16:16 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Тоже самое.
Цитата maksim1221232 ()
Когда поставил это, через пару минут игра вообще зависла.
LunarPixelДата: Среда, 19 Февраля 2014, 16:22 | Сообщение # 8
старожил
Сейчас нет на сайте
maksim1221232, странно, и первым, и вторым способом пользовался неоднократно. Вот небольшой пример, вроде все хорошо работает: ссылка

HSPДата: Среда, 19 Февраля 2014, 16:28 | Сообщение # 9
почетный гость
Сейчас нет на сайте
Код
instance_deactivate_object(object0); //отключить все экземпляры object0
instance_activate_region(view_xview[0],view_yview[0],view_wview[0],view_hview[0],1); // активировать все в виде0

Добавлено (19.02.2014, 16:28)
---------------------------------------------
Вот так попробуй

Сообщение отредактировал HSP - Среда, 19 Февраля 2014, 16:28
LunarPixelДата: Среда, 19 Февраля 2014, 16:31 | Сообщение # 10
старожил
Сейчас нет на сайте
Да, прокосячил со вторым и третьим аргументом в деактивации. Забыл, что там ширина и высота задается, а не координаты. Так что, по идеи, первый вариант должен работать. Ну и вариант, который HSP написал тем более.

Quad69Дата: Среда, 19 Февраля 2014, 16:35 | Сообщение # 11
заслуженный участник
Сейчас нет на сайте
HSP, Спасибо! Теперь всё нормально!
LunarPixel, Тоже спасибо что пытался помочь.

А что если я попытаюсь удалить деактивированный объект, это удастся сделать?
LunarPixelДата: Среда, 19 Февраля 2014, 16:37 | Сообщение # 12
старожил
Сейчас нет на сайте
Цитата maksim1221232 ()
А что если я попытаюсь удалить деактивированный объект, это удастся сделать?

Нет, сначала нужно его активировать. smile


HSPДата: Среда, 19 Февраля 2014, 16:38 | Сообщение # 13
почетный гость
Сейчас нет на сайте
LunarPixel, сам в игре использую этот код, так как некоторые обьекты выключать нельзя (всякие контроллы, которые не двигаются) за пределами вида
Quad69Дата: Среда, 19 Февраля 2014, 16:38 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
LunarPixel, А как мне активировать объект и удалить его, зная координаты?
LunarPixelДата: Среда, 19 Февраля 2014, 16:44 | Сообщение # 15
старожил
Сейчас нет на сайте
maksim1221232, ну, как вариант, либо перед удалением активировать всё, либо активировать конкретно зону с этим объектом, через instance_activate_region. Зная координаты и размеры объекта, можно вообще только его и захватить для активации.

HSPДата: Среда, 19 Февраля 2014, 16:47 | Сообщение # 16
почетный гость
Сейчас нет на сайте
instance_activate_region(left,top,width,height,inside) активируем регион в котором находится обьект

position_destroy(x,y) удаляем все обьекты в позиции x y


Сообщение отредактировал HSP - Среда, 19 Февраля 2014, 16:48
Quad69Дата: Среда, 19 Февраля 2014, 16:49 | Сообщение # 17
заслуженный участник
Сейчас нет на сайте
Так возможно?

Код
instance_activate_region(argument0-64,argument1-64,argument0+64,argument1+64,1)

К примеру argument0=512 и argument1=600
Работать будет?
HSPДата: Среда, 19 Февраля 2014, 16:50 | Сообщение # 18
почетный гость
Сейчас нет на сайте
maksim1221232, будет, с чего бы ему не работать?
Quad69Дата: Среда, 19 Февраля 2014, 16:50 | Сообщение # 19
заслуженный участник
Сейчас нет на сайте
И ещё один вопрос: У меня есть большое количество тайлов, они как-нибуть влияют на Fps?
HSPДата: Среда, 19 Февраля 2014, 16:51 | Сообщение # 20
почетный гость
Сейчас нет на сайте
Цитата maksim1221232 ()
И ещё один вопрос: У меня есть большое количество тайлов, они как-нибуть влияют на Fps?

я думаю, что все, что находится в комнате влияет на FPS (в том числе и сама комната)
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Деактивация определённых объектов
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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