Game Maker - создание игр | HellRoom Games

Game Maker | GameMaker: Studio [Game-Maker.ru] => Для новичков: вопросы и ответы по Game Maker => Тема начата: Solar Off Roader от Июнь 27, 2023, 11:09:29



Название: Как подсчитать количество строк текста в draw_text_ext?
Отправлено: Solar Off Roader от Июнь 27, 2023, 11:09:29
Приветствую!  sm_hi3 Пишу текстовый квест, и вот такая задача - нарисовать фон-плашку, которая могла бы автоматически подстраиваться под размер текста (пример в скриншоте). Текст выводиться с помощью draw_text_ext.  Как подсчитать количество строк или может ещё есть какой способ реализовать такое?)



[вложение удалено Администратором]


Название: Re: Как подсчитать количество строк текста в draw_text_ext?
Отправлено: ярик от Июнь 27, 2023, 12:36:30
Справка:
string_width (https://manual-ru.yoyogames.com/#t=GameMaker_Language%2FGML_Reference%2FStrings%2Fstring_width.htm)
string_height (https://manual-ru.yoyogames.com/#t=GameMaker_Language%2FGML_Reference%2FStrings%2Fstring_height.htm)
draw_set_halign (https://manual-ru.yoyogames.com/#t=GameMaker_Language%2FGML_Reference%2FDrawing%2FText%2Fdraw_set_halign.htm)   (Опционально)

Код:
//draw_set_halign(fa_left);
//draw_set_color(color);
draw_roundrect(x, y, x + string_width(string), y + string_height(string), false);

    // string - рисуемый вами текст.
    // x, y - координаты рисуемого вами текста.

Надеюсь вы разберётесь в данном методе.


Название: Re: Как подсчитать количество строк текста в draw_text_ext?
Отправлено: Solar Off Roader от Июнь 27, 2023, 14:26:10
Справка:
string_width (https://manual-ru.yoyogames.com/#t=GameMaker_Language%2FGML_Reference%2FStrings%2Fstring_width.htm)
string_height (https://manual-ru.yoyogames.com/#t=GameMaker_Language%2FGML_Reference%2FStrings%2Fstring_height.htm)
draw_set_halign (https://manual-ru.yoyogames.com/#t=GameMaker_Language%2FGML_Reference%2FDrawing%2FText%2Fdraw_set_halign.htm)   (Опционально)

Код:
//draw_set_halign(fa_left);
//draw_set_color(color);
draw_roundrect(x, y, x + string_width(string), y + string_height(string), false);

    // string - рисуемый вами текст.
    // x, y - координаты рисуемого вами текста.

Надеюсь вы разберётесь в данном методе.

Дело в том, что draw_text_ext рисует текст в установленной ширине и сам переносит текст на следующую строку. По вашему методу GM измерит весь текст в 1 строку и нарисует прямоугольник в одну строку, т к string_height(string) получается равен 1

Код:
var ww = string_width(text);
var hh = string_height(text);

if point_in_rectangle(mouse_x, mouse_y, x + 25, y, x + ww + 25, y + hh)
{
draw_set_color(c_aqua);
draw_set_halign(fa_left);
draw_roundrect_colour(x, y, x + ww, y + hh, #2B2E4A, #2B2E4A, false);
draw_text_ext(x + 25, y, text, stringHeight, boxWidth);

} else {

draw_set_color(c_white);
draw_set_halign(fa_left);
draw_roundrect_colour(x, y, x + ww, y + hh, #2B2E4A, #2B2E4A, false);
draw_text_ext(x + 25, y, text, stringHeight, boxWidth);

}


[вложение удалено Администратором]


Название: Re: Как подсчитать количество строк текста в draw_text_ext?
Отправлено: SilentPhil от Июнь 27, 2023, 17:45:19
string_width_ext и string_height_ext соответственно


Название: Re: Как подсчитать количество строк текста в draw_text_ext?
Отправлено: Solar Off Roader от Июнь 27, 2023, 17:57:40
string_width_ext и string_height_ext соответственно

Спасибо! Уже хотел дедовским способом :xD: