Пятница, 22 Ноября 2024, 03:06

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Растягивание спрайта по длине текста.
CmaujlukДата: Среда, 14 Августа 2013, 17:12 | Сообщение # 1
участник
Сейчас нет на сайте
Всем привет!
Помогите разобраться happy
При наведении на ячейку мышкой появляется надпись с его характеристикой. Выглядит примерно так:
Код
draw_text(mouse_x,mouse_y+5,string(obj_inv_items.txt[current_x,current_y]

Вопрос первый, как сделать чтобы создавался спрайт и растягивался(в ширину) или копировался так, чтобы текст был на фоне этого спрайта?
Второй вопрос, как центрировать текст под мышкой?
И третей, главный вопрос, если ячейка находится слишком близко к краю экрана, то текст уходит в никуда за экран и видно только часть текста, как сделать чтобы он смещался влево или вправо если он не влезает?
За ранее спасибо! smile


Не жадный на плюсы.
Наши проекты:
Clicker Mine Mania 2 - Увлекательный кликер в стиле Minecraft
Angry Bee Evolution - Эволюция с элементами кликера
Чего не хватает? - Викторина на логику"


Сообщение отредактировал Cmaujluk - Среда, 14 Августа 2013, 17:13
CreatingOverДата: Среда, 14 Августа 2013, 17:38 | Сообщение # 2
ColdGamedev
Сейчас нет на сайте
Расчитывай количество символов в тексте и меняй согласно длине image_xscale и image_yscale

Я снова с вами:з
Возвращение легенды. (нет)
FadeBakerДата: Среда, 14 Августа 2013, 17:49 | Сообщение # 3
JavaSE Game Developer
Сейчас нет на сайте
Cmaujluk, string_width(string) и string_height(string) используй.

Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
CmaujlukДата: Среда, 14 Августа 2013, 21:29 | Сообщение # 4
участник
Сейчас нет на сайте
Fade, В справке про эти функции читал, но не понял как они применяются, можно строку кода?

Не жадный на плюсы.
Наши проекты:
Clicker Mine Mania 2 - Увлекательный кликер в стиле Minecraft
Angry Bee Evolution - Эволюция с элементами кликера
Чего не хватает? - Викторина на логику"
FadeBakerДата: Среда, 14 Августа 2013, 21:46 | Сообщение # 5
JavaSE Game Developer
Сейчас нет на сайте
Cmaujluk, функции возвращают реальную длину строки, разве это не очевидно? Хотя бы из их названия.
Цитата (Cmaujluk)
можно строку кода?

Цитата (Fade)
string_width(string)

А это что по-твоему?


Уроки по GM
Minecraft 2D на GM
— Мои проекты —
Blood Harvest [2D] — Original
Blood Harvest [2D]: Remastered Edition
Adventure Craft [2D] — Sandbox
Space Shock [2D] — Scroll Shooter
Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
KazerexДата: Среда, 14 Августа 2013, 22:00 | Сообщение # 6
был не раз
Сейчас нет на сайте
string_width(str) и string_height(str) определяются длинну в пикселях текста, например если str='Какой-то текст', то выполнив эти функции ты получишь ширину и высоту "Какой-тотекст" значения 105 и 18. А дальше рисуешь прямоугольник, от левой точки откуда выводится текс до точки 49,18

В событие Create:
Код
draw_set_font(0)//Не забыть создать шрифт с полным диапазоном символов
text_x=256
text_y=256
str='Какой-то текст'


В событие Draw:
Код
draw_set_color(c_black)
draw_rectangle(text_x, text_y, text_x+string_width(str), text_y+string_height(str), false)
draw_set_color(c_white)
draw_text(text_x, text_y, str)


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


Сообщение отредактировал Kazerex - Среда, 14 Августа 2013, 22:01
CmaujlukДата: Четверг, 15 Августа 2013, 00:22 | Сообщение # 7
участник
Сейчас нет на сайте
Цитата (Fade)
А это что по-твоему?
Ты не понял, как применить?
У меня получилось что-то типа
Код

  txt_save=draw_sprite(spr_backg,0,mouse_x,mouse_y+5)
  txt_save.image_xscale=string_width(obj_inv_items.txt[current_x,current_y])

но не выходит, как я понял делаю что-то не так.

Добавлено (15.08.2013, 00:22)
---------------------------------------------
Взял из примера код, получилось, кому интересно вот:

Код
draw_sprite_ext(spr_txt_back,-1,mouse_x,mouse_y+5,string_width(obj_inv_items.txt[current_x,current_y]),1,0,c_white,0.8);


Не жадный на плюсы.
Наши проекты:
Clicker Mine Mania 2 - Увлекательный кликер в стиле Minecraft
Angry Bee Evolution - Эволюция с элементами кликера
Чего не хватает? - Викторина на логику"
  • Страница 1 из 1
  • 1
Поиск:

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