Понедельник, 20 Мая 2024, 22:27

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Тексты
Тексты
vsDaTavsДата: Вторник, 13 Сентября 2011, 16:38 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Здраствуйте товарищи игроделы. требуется ваша помощь. Для улучшения интерфейса много проблем возникает с текстами.
а именно:

1.нужно закрасить текст в 2 цвета на пополам. Используя функцию draw_text_color() выходит целая цветовая палитра, с 2 назначенными цветами и м кучей промежуточных цветов меж ними. А мне нужен четкий переход цвета в тексте.(например красный - зеленый)

2. можно ли как нибудь добавлять текст к другому.
условно это должно выглядеть так draw_text(x,y, текст + другая переменная)?

надеюсь на вашу помощь smile


http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Вторник, 13 Сентября 2011, 16:40
LunarPixelДата: Вторник, 13 Сентября 2011, 17:51 | Сообщение # 2
старожил
Сейчас нет на сайте
vsDaTavs,
1. составь текст из двух частей. Одну часть закрась первым цветом, вторую вторым.

2. И не условно это выглядит так же: draw_text(x,y, 'текст 2' + 'текст 2') или draw_text(x,y, 'текст 2' + переменная)


FadeBakerДата: Вторник, 13 Сентября 2011, 19:02 | Сообщение # 3
JavaSE Game Developer
Сейчас нет на сайте
Поправочка:
draw_text(x,y, 'текст 2' + string(переменная))

Писать "string" нужно тогда, если требуется вывести на экран текст (string) и число (integer). Например нужно вывести на экран название текущего оружия и после двоеточия кол-во патронов к нему. smile
Например так:
Code
draw_text(view_xview+20, view_yview+20, 'Автомат: ' + string(automat_ammo));


Уроки по 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.
vsDaTavsДата: Среда, 14 Сентября 2011, 17:49 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Quote
draw_text(x,y, 'текст 2' + 'текст

в первую очередь так попробовал, - ошибка
Quote
draw_text(x,y, 'текст 2' + string(переменная))

вот спасибо. конечно я дурак что сам не догадался. ставлю + )


http://farchive.jino.ru/
sk0rpi0nДата: Среда, 14 Сентября 2011, 20:04 | Сообщение # 5
Tiberium
Сейчас нет на сайте
Можно узнать, что вообще писать в draw_text_color? Как там цвета то задавать? Цифрами или словом?



Adventures of the Purple Ball - готов.
Wanderer - готов.


Сообщение отредактировал sk0rpi0n - Среда, 14 Сентября 2011, 20:09
BaHu3aTopДата: Среда, 14 Сентября 2011, 20:12 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Quote (Справка)
draw_text_color(x,y,string,c1,c2,c3,c4,alpha) Рисует строку в позиции (x,y) подобно вышеупомянутой функции. Четыре цвета определяют цвета левого верхнего, верхнего-правого, нижнего-правого, и нижнего-левого угла текста. alpha - является альфа прозрачностью, используйте (0-1).


vsDaTavsДата: Среда, 14 Сентября 2011, 23:36 | Сообщение # 7
почетный гость
Сейчас нет на сайте
draw_text_color(x,y,string,c1,c2,c3,c4,alpha)
c1,c2,c3,c4 - это верхний левый, верхний правый, нижний правый и нижний левый углы соответственно. если задавать разные цвета, то
получится плавный переход цвета, а не четкий в 2 цвета как мне нужно.

но вот как мне посоветовали я составлю текст из 2-х и попробую так

draw_text_color(x,y,string(перем)+draw_text_color(x,y,string,синий,синий,синий,синий,alpha),,красный,красный,красный,красный,alpha)

так неплохо, но вот координаты получается надо самому править, а надо чтобы текст сам правил.
кроме того к первому тексту припысывается ноль О_о

например если хочу написать 50 +5, то воспользовавшись написанным мной кодом и чуть подправив координаты получится
500+5

Итак: в итоге мне нужен текст, состоящий из двух текстов, каждый из которых имеет свой цвет. вот к чему я стремлюсь


http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Четверг, 15 Сентября 2011, 00:31
MyACTДата: Четверг, 15 Сентября 2011, 07:47 | Сообщение # 8
C# CODERS
Сейчас нет на сайте
Ставь у каждого текста draw_set_color(c_red)
c_red поменяй на свой но с_ не удаляй


3дэшечки: https://sketchfab.com/myactyindie
Курентли воркс он: https://myacty.itch.io/raskopnik
vsDaTavsДата: Четверг, 15 Сентября 2011, 20:37 | Сообщение # 9
почетный гость
Сейчас нет на сайте
вариант неплохой. Если спользовать функцию draw_set_color в качестве параметра функции draw_text, так можно контролировать цвета и единство текста. Однако ГМЛ не понимает саму функцию в качестве параметра и проходится его обозначать как string(draw_set_color), а так как в оном не указано текстовое значение, то будет возвращен ноль. иными словами
в тексте прорисовывается лишний ноль.
с цифрами там можно будет как схитрить, но если отображать сплошной текст, ноль здесь совсем не нужен
потому что это будет БАГОМ!!!


http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Четверг, 15 Сентября 2011, 21:04
LunarPixelДата: Четверг, 15 Сентября 2011, 21:13 | Сообщение # 10
старожил
Сейчас нет на сайте
Самый просто вариант, это разделить текст на две части и каждую закрасить отдельно. Но если текста много, то это конечно не удобно, но как вариант:

draw_set_color(c_red)
draw_text(0,0,'красный текст')
draw_set_color(c_green)
draw_text(100,0,'зеленый текст')

Если решение не найдешь, то как освобожусь, придумаю что нибудь получше, оптимальное. Самому интересно. smile


vsDaTavsДата: Четверг, 15 Сентября 2011, 21:30 | Сообщение # 11
почетный гость
Сейчас нет на сайте
я поспешил относительно draw_set_color стоило догадаться что если его использовать в качестве параметра, то независимо от того какой цвет был принят до этого, но весь текст в текущей функции draw_text отображается под цветом последнего параметра draw_setcolor, иными словами - текст получается одноцветный

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


http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Четверг, 15 Сентября 2011, 21:33
LunarPixelДата: Четверг, 15 Сентября 2011, 21:34 | Сообщение # 12
старожил
Сейчас нет на сайте
Пробуй так:
В Create:
text1='красный текст'
text2='зеленый текст'
a=string_length(text2)

В Draw:
draw_set_color(c_red)
draw_text(x,y,text1)
draw_set_color(c_green)
draw_text(x+a*7,y,text2)

Тоже не универсальный способ. Но можно что нибудь на его основе придумать. smile


vsDaTavsДата: Четверг, 15 Сентября 2011, 21:43 | Сообщение # 13
почетный гость
Сейчас нет на сайте
а перенос строки? если второй текст находится на первой строке, то следуя пареносу строки он не сравняется по абзацу

понимаешь о чем я? с такими постановками будут разные баги


http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Четверг, 15 Сентября 2011, 21:47
LunarPixelДата: Четверг, 15 Сентября 2011, 21:53 | Сообщение # 14
старожил
Сейчас нет на сайте
Раздели текст изначально.
Например текст:

Красный Зеленый
Красный Зеленый
Красный Зеленый

т.е. в Text1 помести:

Красный
Красный
Красный

а в Text2 соответственно:

Зеленый
Зеленый
Зеленый

Повторюсь, способ далеко не универсальный. Пока нет времени думать над чем нибудь серьезным. Завтра если время будет, напишу что нибудь универсальное. smile


vsDaTavsДата: Пятница, 16 Сентября 2011, 11:55 | Сообщение # 15
почетный гость
Сейчас нет на сайте
ну сколько раз можно повторять. Если бы тексты были базовыми, но тексты как бы генерируются исходя из ситуации в игре, и соответственно так вот подбирать будет огроомный гемор. Если нет функций, или и трюков с ними, то лучше оставить одноцветный текст чем так вот возиться

http://farchive.jino.ru/

Сообщение отредактировал vsDaTavs - Пятница, 16 Сентября 2011, 11:56
FadeBakerДата: Пятница, 16 Сентября 2011, 12:49 | Сообщение # 16
JavaSE Game Developer
Сейчас нет на сайте
Попробовал решить твою проблему, мягко говоря вышло не то, что нужно, но по крайней мере получился весьма красивый эффект. smile
Скачать


Уроки по 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.
vsDaTavsДата: Пятница, 16 Сентября 2011, 15:01 | Сообщение # 17
почетный гость
Сейчас нет на сайте
Да, эффект красивый biggrin

http://farchive.jino.ru/
LunarPixelДата: Пятница, 16 Сентября 2011, 15:07 | Сообщение # 18
старожил
Сейчас нет на сайте
vasyan555, да, эффект конечно хорош, вот только выполнять каждый шаг такой цикл это не очень хорошо. smile

vsDaTavs, сейчас вышлю пример того, что тебе надо. smile


FadeBakerДата: Пятница, 16 Сентября 2011, 15:11 | Сообщение # 19
JavaSE Game Developer
Сейчас нет на сайте
LunarPixel, vsDaTavs, спасибо, сам не ожидал, что такое получится. smile

Уроки по 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.
LunarPixelДата: Пятница, 16 Сентября 2011, 15:19 | Сообщение # 20
старожил
Сейчас нет на сайте
http://zalil.ru/31709864 вот пример.
Работает всё через скрипт.

scr_colorit(w_view,h_view,text,x1,y,x2,color1,color2)

w_view - ширина видимой области (комнаты или вида)
h_view - высота видимой области
text - текст который нужно преобразовать в цветной
x1 - смещение от начала текста, до точки перехода цвета
y - высота текста
x2 - смещение второй части текста от точки разрыва до конца
color1,color2 - цвета левой и правой части текста




Сообщение отредактировал LunarPixel - Пятница, 16 Сентября 2011, 15:19
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Тексты
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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