Четверг, 23 Мая 2024, 06:13

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » При начале диалога на долю секунды мелькает левый спрайт
При начале диалога на долю секунды мелькает левый спрайт
GMstr36rДата: Воскресенье, 29 Января 2023, 21:20 | Сообщение # 1
был не раз
Сейчас нет на сайте
При диалоге перед нормальной фразой появляется какой то другой спрайт без текста буквально на долю секунды, не нужно пропускать даже как обычную фразу
Помогите, как это исправить? :((

сама система диалогов ниже

*скрипт открытия диалога*
function openDialog(diag){
d = instance_create_depth(0,0,0,Ob_dialog)
d.timeline_index= diag
d.timeline_running=1
d.timeline_speed=0
d.timeline_position=1 }// в видеоуроке по которому я делала диалоги данная строчка исправляет проблему появления левого спрайта полностью и его не нужно пропускать как отдельную фразу :/

*объект мэнэджер, create*
global.diagCharacter=""
global.diagPhrase=""
global.diagAvatar=false

*таймлайн с фразами, делаю одну из них пустой для закрытия диалога*
global.diagCharacter="Big man"
global.diagAvatar= Sp_bigmanface
global.diagPhrase="..."

*объект диалог, draw gui*

draw_sprite(Sp_diag,-1,31,545)
draw_sprite(global.diagAvatar,-1,30,542)
draw_text(300,579,global.diagCharacter)
draw_text(300,609,global.diagPhrase)

*нажать E*
timeline_position++
if timeline_position=timeline_size(timeline_index)
{
instance_destroy()
}

*персонаж с которым можно поговорить, create*
if (!(instance_exists(Ob_dialog)) and distance_to_object(Ob_player)<15)
{
openDialog(T_d3)
}


Сообщение отредактировал GMstr36r - Воскресенье, 29 Января 2023, 21:20
HaGeДата: Понедельник, 30 Января 2023, 13:36 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
вообще обычно по таким данным сложно сказать, в чем ошибка.

однако я вижу, что тут переменной присваивается булево значение.
Код
global.diagAvatar=false


а потом почему-то используют её в качестве id спрайта
Код
draw_sprite(global.diagAvatar,-1,30,542)


я хз, что будет если пихнуть булево значение вместо id спрайта, но вероятно то, что ты примерно описал )0

сделай проверку перед рисованием:
Код
if (global.diagAvatar != false) ...


а еще лучше дополнительную булеву переменную введи, отвечающую за необходимость отображения спрайта. это чтобы не было путанницы в коде

Добавлено (30 Января 2023, 13:41)
---------------------------------------------
кста. оборачивай код в теги [code][/code]
так проще читать.

Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » При начале диалога на долю секунды мелькает левый спрайт
  • Страница 1 из 1
  • 1
Поиск:

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