Развитие игровой вспышки
Текущее время: Пт окт 19, 2018 8:44 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Phaser — Вопрос - ответ
СообщениеДобавлено: Вт июн 06, 2017 10:22 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср апр 24, 2013 8:13 pm
Сообщений: 436
Откуда: Ukraine
Здравствуйте друзья, не нашел данной темы, а по моему мнению очень пригодилась бы, дабы не плодить кучу тем.
Посему начну с себя.
Пишу на TypeScript
Запускаю я значит стейт с игрой

Код:
this.game.state.start('myGame', true, false);


Вот так создаю внутри все нужные мне спрайты

Код:
private Attack: Phaser.Sprite;
.....
this.Attack = new Phaser.Sprite(this.game, x, y, 'mysprite');
this.game.add.existing(this.Attack);


все отлично работает, и приходит время смены уровня, вызываю

Код:
this.game.state.start('myGame', true, false);


второй параметр должен очищает все то что я насоздавал, комментарий от разработчика:
Цитата:
Clear everything in the world? This clears the World display list fully (but not the Stage, so if you've added your own objects to the Stage they will need managing directly)


Насколько я понимаю должно очищать все то что создано в игре?

Но я столкнулся с тем что память растет, подскажите друзья как мне правильно чистить память?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Phaser — Вопрос - ответ
СообщениеДобавлено: Ср июн 07, 2017 10:08 am 
Не в сети
Аватар пользователя

Зарегистрирован: Ср дек 23, 2009 6:24 pm
Сообщений: 458
Откуда: Львов, Украина
Сайт: http://www.frees.black-door.net
Я тоже так думал, но удаляется далеко не всё.
Нужно делать стейту shutdown и удалять там всё что ты добавлял. У меня создавалось много битмап всяких в реалтайме, после нескольких перезапусков уровня игра просто вываливалась из за перебора по памяти. Пришлось чистить всё ручками.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Phaser — Вопрос - ответ
СообщениеДобавлено: Ср июн 07, 2017 10:52 am 
Не в сети
Аватар пользователя

Зарегистрирован: Ср апр 24, 2013 8:13 pm
Сообщений: 436
Откуда: Ukraine
Спасибо, а как удалять все то что я насоздавал?

Код:
this.Attack.destroy(true);


Этого будет достаточно?

И еще попутно вопрос, делаю кликер и заметил что на мобильном девайсе тормозит, а именно я на экран тапаю, тапаю, тапаю... а потом отпускаю и еще секунд 5 смотрю как оно выполняет реакцию на мои тапания.
Я так понял нужно оптимизировать графику, т.к. когда обьектов на сцене мало то все отлично. У меня везде используются Sprite где-то краем глаза видел что для статических обьектов дешевле использовать Image.
Я все статические изображения перегнал в Image но прироста производительности я не увидел, что я делаю не так?
Может можно еще как-то дешевле юзать статические изображения?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Phaser — Вопрос - ответ
СообщениеДобавлено: Ср июн 07, 2017 11:40 am 
Не в сети
Аватар пользователя

Зарегистрирован: Ср дек 23, 2009 6:24 pm
Сообщений: 458
Откуда: Львов, Украина
Сайт: http://www.frees.black-door.net
Я для пущей уверенности делаю так:

this.gui.removeChild(this.gui_stars);
this.gui_stars.destroy();
this.gui.destroy();

По поводу тормозов хз, тут не подскажу.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Phaser — Вопрос - ответ
СообщениеДобавлено: Ср июн 07, 2017 12:14 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср апр 24, 2013 8:13 pm
Сообщений: 436
Откуда: Ukraine
FreeS, спасибо большое :good:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Phaser — Вопрос - ответ
СообщениеДобавлено: Ср июн 07, 2017 4:05 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср дек 23, 2009 6:24 pm
Сообщений: 458
Откуда: Львов, Украина
Сайт: http://www.frees.black-door.net
Теперь у меня вопрос. Все кнопки в игре у меня спрайты. Проблема с кнопками - брендингом. Браузер блокирует открывание ссылки как попап.
Делаю так:

Код:
btn.inputEnabled = true;
btn.input.useHandCursor = true;
btn.events.onInputDown.add(function(){window.open("http://www.somesite.com/", "_blank")}, this);


Кто подскажет, как сделать что бы срабатывали клики и открывались ссылки ?


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Phaser — Вопрос - ответ
СообщениеДобавлено: Ср июн 07, 2017 5:38 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пн янв 09, 2017 8:44 pm
Сообщений: 175
FreeS писал(а):
Теперь у меня вопрос. Все кнопки в игре у меня спрайты. Проблема с кнопками - брендингом. Браузер блокирует открывание ссылки как попап.
Делаю так:

Код:
btn.inputEnabled = true;
btn.input.useHandCursor = true;
btn.events.onInputDown.add(function(){window.open("http://www.somesite.com/", "_blank")}, this);


Кто подскажет, как сделать что бы срабатывали клики и открывались ссылки ?


Firefox. Вероятно никак.

Но с HTML кнопкой такой проблемы не будет
Код:
    <input id="clickme" type="button" value="Click Me"/>

    $('#clickme').click(function(){
        window.open("http://www.somesite.com/", "_blank");
      });


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Phaser — Вопрос - ответ
СообщениеДобавлено: Ср июн 07, 2017 5:43 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пн янв 09, 2017 8:44 pm
Сообщений: 175
Хотя...
Грязный хак, вроде работает:
https://codepen.io/staff0rd/pen/pbmmPE?editors=0010


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Phaser — Вопрос - ответ
СообщениеДобавлено: Ср июн 07, 2017 5:55 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пн янв 09, 2017 8:44 pm
Сообщений: 175
Советую протестировать в разных браузерах, если применишь


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Phaser — Вопрос - ответ
СообщениеДобавлено: Вс июн 11, 2017 3:25 am 
Не в сети
Аватар пользователя

Зарегистрирован: Ср апр 24, 2013 8:13 pm
Сообщений: 436
Откуда: Ukraine
Друзья помогите разобраться с "областью клика" или как правильно?
В общем есть у меня спрайт "Hero", на нем чайлдом располагается спрайт "UpgradeFx".
Спрайт Hero подписан на событие клика мышки

Код:
this.Hero.inputEnabled = true;
this.Hero.events.onInputDown.add(this.ShowUpgrade, this);


Вот мне нужно чтобы событие срабатывало только при клике в области спрайта героя, а т.к. "UpgradeFx" добавлен на спрайт "Hero" чайлдом, то событие срабатывает и при клике на "UpgradeFx".

Вроде смотрю есть параметр ignoreChildInput, но что-то он не работает или я его неправильно использую?

Код:
this.Hero.ignoreChildInput = true;


Комментарий от разработчика:
Цитата:
If ignoreChildInput is false it will allow this objects children to be considered as valid for Input events.

If this property is true then the children will not be considered as valid for Input events.

Note that this property isn't recursive: only immediate children are influenced, it doesn't scan further down.


Друзья что я делаю не так?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB