Среда, 25 Декабря 2024, 11:04

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Бегущая строка и ее обновление
RandallДата: Пятница, 27 Марта 2015, 02:23 | Сообщение # 1
участник
Сейчас нет на сайте
Доброго времени суток еще раз, камрады.
Подскажите, пожалуйста:
Есть прога с бегущей строкой, текст вводится пользователем, каждый раз разной длины.
Строка бежит справа налево, тупо пока х>-10000. Потом обновляется (х=1000).
Так вот, как обновлять бегущую строку вовремя, чтоб, скажем в случае короткого бегущего текста не было пустых пауз по две минуты?
Идеально бы некую формулу расчета длины конечного текста от его размера, чтоб не заниматься подбором...


1. Adventure Mouse - мини-аркада про мыш и его друга сыр
2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия
3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave
Всё здесь http://zvizdez.ru/download.php?list.1


Сообщение отредактировал Randall - Пятница, 27 Марта 2015, 02:24
KingДата: Пятница, 27 Марта 2015, 03:20 | Сообщение # 2
участник
Сейчас нет на сайте
Не знаю как там в GMS, но в GM8 тебе могли бы помочь вот такие вот функции
Код
string_length(str) Возвращает количество символов в строке str.
string_width(string) Ширина строки в текущем шрифте при рисовании используя функцию draw_text(). Может использоваться для точного позиционирования графики.
string_height(string) высота строки в текущем шрифте при рисовании, используя функцию draw_text().


Nothing is true, everything is permitted.
Shadows Games
YellowAfterlifeДата: Пятница, 27 Марта 2015, 03:33 | Сообщение # 3
Сейчас нет на сайте
GMK
Create:
Код
keyboard_string = "Type something..."
runline_text = keyboard_string
runline_pos = 0 // offset (in pixels)
runline_space = 30 // space after the end of text

Step:
Код
runline_text = keyboard_string
runline_pos += 4

Draw:
Код
draw_set_font(fnt_runline)
var p, w, i, dw;
w = string_width(runline_text) + runline_space
if (w > 0) {
     p = runline_pos
     p = (p mod w) + (p < 0) * w
     dw = room_width // output width
     i = max(2, ceil(dw / w))
     while (i >= 0) {
         draw_text(i * w - p, 50, runline_text)
         i -= 1
     }
}


  • Страница 1 из 1
  • 1
Поиск:

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