Деактивация определённых объектов
|
|
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 ( ) А что если я попытаюсь удалить деактивированный объект, это удастся сделать? Нет, сначала нужно его активировать.
|
|
| |
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 (в том числе и сама комната)
|
|
| |