Spritefont (загружаем свой шрифт)

только самые лучшие уроки, мануалы, советы по Construct 2

Сообщение Spritefont (загружаем свой шрифт)
» 01 мар 2015, 16:23

Нет, шрифты совсем разные и они нужны, и проблема не в их количестве. Опытным путем выяснил что событие on created которое используется в настройках шрифта, каким то образом сбивает действия по спавнящимуся тексту. То есть при загрузке экрана у меня есть расставленные точки, которые спавнят над собой текст и передают ему свои переменные и заранее записанный текст. Так вот при спавне происходит остановка этих действий, и выполняются настройки шрифта. А текст из переменных он при этом не получает. А если позже к нему обратиться уже в другом условии то он доступен и текст принимает, но уже связь с источником инфы естественно теряется.
Сейчас пробую обращаться к настройкам посредством сигнала. Вроде и работает кое как, но в момент получения настроек происходит фриз программы на секунду.Почему то через сигнал обращение происходит гораздо дольше и фризит игру. А через функцию не сработало при массовом спавне, хотя еще буду тестить разовые обращения. Так скоро дойду до активации группы с настройками в нужный момент(. Либо остается вариант с невидимым текстом по умолчанию, и подключением настроек по факту видимости.
Изображение Изображение Изображение Изображение
Аватара пользователя

Игродел
Сообщений: 625
Я тут с 10 ноя 2014
Репутация 113 [ ? ]

Сообщение Spritefont (загружаем свой шрифт)
» 01 мар 2015, 16:36

Sharkanry, Попробуй просто задержку перед присвоением текста поставить.
Аватара пользователя

Игродел
Сообщений: 2252
Я тут с 11 окт 2013
Откуда: Санкт-Петербург
Двиг: С2
Лицензия: Pirate
VK: night_silent
Репутация 236 [ ? ]

Сообщение Spritefont (загружаем свой шрифт)
» 01 мар 2015, 17:10

Эх куда я только эту задержку не пихал. Не помогает. OnCreate разом перехватывает и пресекает все действия со спавнящимся объектом в этом же секторе. В отдельном пожалуйста, но не в том же. При чем это похоже не всегда так, я пробовал смоделировать ситуацию отдельно и все работало. Возможно я превысил какой нибудь лимит таких действий в проекте, или это хитрый баг джавы. Сейчас я сделал так: шрифт по умолчанию невидимый, при спавне делаю с ним что мне нужно и делаю видимым, применение настроек идет по условию is visible + for each + trigger once, вроде бы работает, но для мобильной версии придется ввести код настроек прямо в действия спавна. For each все таки ресурсоемкий. Ну и тесты проверочные еще не закончил, все таки баг серьезный, нестабильный, и сильно ограничивает возможности.

UPD а нет блин, похоже заработало, вставил wait 0 сразу после спавна, сейчас потестирую еще, я пытался ставить wait в разные места)), но похоже сразу после спавна все таки пропустил) в любом случае спасибо!

еще раз UPD, но не заработало при массовом спавне на старте уровня( возвращаюсь к for each
Изображение Изображение Изображение Изображение
Аватара пользователя

Игродел
Сообщений: 625
Я тут с 10 ноя 2014
Репутация 113 [ ? ]

Сообщение Spritefont (загружаем свой шрифт)
» 01 мар 2015, 18:03

В итоге сейчас я на группах, то есть все настройки одного шрифта запихнуты в неактивную группу, спавню текст активирую группу. В конце группы действие ее деактивации. Пока все тесты рабочие. И еще такое примечание, загрузку массива из строки можно поставить на отдельное условие вне группы on start layout - чтобы не нагружать процессор во время игры, ну если конечно памяти не жалко. Ну я так по крайней мере предполагаю).
Вот если кто нибудь столкнется с таким может найдет этот текст), я уже два дня это мучаю.
Изображение Изображение Изображение Изображение
Аватара пользователя

Игродел
Сообщений: 625
Я тут с 10 ноя 2014
Репутация 113 [ ? ]

Сообщение Spritefont (загружаем свой шрифт)
» 02 мар 2015, 09:02

Sharkanry писал(а):OnCreate разом перехватывает и пресекает все действия со спавнящимся объектом в этом же секторе

Что-то ты наверно неправильно делаешь. Либо обращение к источнику не правильное, либо выбор спрайтфонта хромает. OnCreate не должен мешать никаким действиям. У меня при старте лайоута создается порядка 80-100 спрайтфонтов и ко всем так же применяются разные действия(установка текста, 7 переменных и некоторые пинятся к другим объектам). Никаких проблем никогда не было.

P.S. Если бы мы видели код, то помогли бы тебе намного быстрее.
 Дополнительные контакты
Telegram: @DeXVinogradov
Skype: DeXVinogradov
Mail: dexvinogradov@[mail.ru, gmail.com, ya.ru]
Аватара пользователя
DeX

Игродел
Сообщений: 2486
Я тут с 13 дек 2014
Откуда: Москва
Skype: DeXVinogradov
Репутация 519 [ ? ]

Сообщение Spritefont (загружаем свой шрифт)
» 02 мар 2015, 10:28

DeX писал(а):
Sharkanry писал(а):OnCreate разом перехватывает и пресекает все действия со спавнящимся объектом в этом же секторе

Что-то ты наверно неправильно делаешь. Либо обращение к источнику не правильное, либо выбор спрайтфонта хромает. OnCreate не должен мешать никаким действиям. У меня при старте лайоута создается порядка 80-100 спрайтфонтов и ко всем так же применяются разные действия(установка текста, 7 переменных и некоторые пинятся к другим объектам). Никаких проблем никогда не было.

P.S. Если бы мы видели код, то помогли бы тебе намного быстрее.


У меня тоже часть шрифтов работало нормально, и сейчас работает. Но часть на отрез отказывается. Возможно это связано с тем что я менял исходники, и правил общие настройки шрифта после того как уже использовал их в проекте. Проблема проявилась где то после этого, возможно полное удаление шрифта и всех действий связанных с ним решило бы эту проблему. Сейчас я ее решил группами и все работает, меня в принципе устраивает. Но если интересно:
Вот два кода спавна, они в разных ивеншитах, ивентшифт с настройками шрифта подключен к ним. Перечеркнутое действие это то что работает сейчас. Я его зачеркнул для ясности.
Изображение
Изображение
вот код настроек шрифта как он не работает, в смысле он как раз работает, а не работают предыдущие два сразу после спавна если этот код активен:
Изображение
Изображение Изображение Изображение Изображение
Аватара пользователя

Игродел
Сообщений: 625
Я тут с 10 ноя 2014
Репутация 113 [ ? ]

Сообщение Spritefont (загружаем свой шрифт)
» 02 мар 2015, 11:15

Sharkanry писал(а): не работают предыдущие два сразу после спавна если этот код активен:

Такой вопрос. Как ты проверял, что они не работают? Запускал через Debug или просто появился текст или нет?

Просто сейчас использовал разные варианты создания и применения настроек шрифта. Сделал подобную ситуацию, как у тебя и все работало. Единственный косяк, который я смог сделать, это поигрался с Width, Horizontal alignment и Scale. При разных настройках этих параметров текст бывает просто пропадает или уходит далеко влево, что видно только пару последних символов. Причем это зависит от количества символов в тексте, который нам надо установить и от того массива.

Я не знаю, как ты это все проверял поэтому могу предположить, что те две части кода работают просто ты этого не видишь.
Рекомендую поиграться с настройками спрайтфонта Hotspot, alignment, scale, width, spacing.
 Дополнительные контакты
Telegram: @DeXVinogradov
Skype: DeXVinogradov
Mail: dexvinogradov@[mail.ru, gmail.com, ya.ru]
Аватара пользователя
DeX

Игродел
Сообщений: 2486
Я тут с 13 дек 2014
Откуда: Москва
Skype: DeXVinogradov
Репутация 519 [ ? ]

Сообщение Spritefont (загружаем свой шрифт)
» 02 мар 2015, 11:33

DeX писал(а):
Sharkanry писал(а): не работают предыдущие два сразу после спавна если этот код активен:

Такой вопрос. Как ты проверял, что они не работают? Запускал через Debug или просто появился текст или нет?

Просто сейчас использовал разные варианты создания и применения настроек шрифта. Сделал подобную ситуацию, как у тебя и все работало. Единственный косяк, который я смог сделать, это поигрался с Width, Horizontal alignment и Scale. При разных настройках этих параметров текст бывает просто пропадает или уходит далеко влево, что видно только пару последних символов. Причем это зависит от количества символов в тексте, который нам надо установить и от того массива.

Я не знаю, как ты это все проверял поэтому могу предположить, что те две части кода работают просто ты этого не видишь.
Рекомендую поиграться с настройками спрайтфонта Hotspot, alignment, scale, width, spacing.


у меня тоже отдельно моделирование этой ситуации работает как должно).
Я изначально в общие настройки текста, для проверки забивал тестовое слово, оно вместо нужного текста там остается, когда передача не проходит, и я вижу это слово. Если что, и пустым я это поле тоже оставлял), тогда оно остается пустым. Если настройки отключаю, то шрифт получает текст, но не получает настройки, включаю - наоборот. Мало того, там можно выкинуть все настройки текста и оставить только пустое событие онкреэйтед, и даже тогда текст в шрифт не пройдет.
Я предполагаю что при верстке проекта, в настройки шрифта сохранились какие то параметры которые потом уже нельзя поменять из программы, я шрифт изменил, и изменил его общие настройки, а в файлах проекта, какие-то старые настройки для него остались, и из-за этого глюки. Целиком вычищать шрифт из проекта не хочу, на него слишком много завязано в разных сценах. Да и группы работают надежно и быстро.
Изображение Изображение Изображение Изображение
Аватара пользователя

Игродел
Сообщений: 625
Я тут с 10 ноя 2014
Репутация 113 [ ? ]

Сообщение Spritefont (загружаем свой шрифт)
» 02 июн 2015, 03:03

Можно как-то в спрайт фонте перевести строку после нужного слова, что-то вроде ньюлайн? вообще есть какие-то табуляторы?

Подскажите как перекрасить букву в другой цвет в самом Контсрукте?
Аватара пользователя

Участник
Сообщений: 25
Я тут с 21 июл 2014
Репутация 0 [ ? ]

Сообщение Spritefont (загружаем свой шрифт)
» 02 июн 2015, 11:41

BloodKarl писал(а):Можно как-то в спрайт фонте перевести строку после нужного слова, что-то вроде ньюлайн? вообще есть какие-то табуляторы?

для переноса строки используется стандартное выражение &newline& пример

Код: Выделить всё
действие: set text > "шел Вася &newline& за печеньками"

на выходе получаем

шел Вася
за печеньками

BloodKarl писал(а):Подскажите как перекрасить букву в другой цвет в самом Контсрукте?

это можно сделать через эффекты WebGL с помощью конкретного эффекта set color но я этого делать очень не советую, так как на Андроиде эти эффекты очень сильно жрут ресурсы. лучше добавить несколько объектов spritefont с разными цветами шрифтов :ok:
Аватара пользователя

Администратор
Сообщений: 6831
Я тут с 05 сен 2012
Двиг: C2
Репутация 495 [ ? ]



Вернуться в Лучшие уроки по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх