Перейти к содержимому
Zone of Games Forum

Рекомендованные сообщения

Kingsway

header.jpg

  • Метки: Ролевая игра, Приключение, Рогалик, Симулятор, Пиксельная графика
  • Платформы: PC
  • Разработчик: Andrew Morrish
  • Издатель: Adult Swim Games
  • Дата выхода: 18 июля 2017 года
  • Отзывы: 1410 отзывов, 92% положительных
Kingsway — операционная система №1 для повседневных задач, таких как уничтожение скелетов и организация добычи. Проблемы с сортировкой всех ваших зелий и мечей? Не волнуйтесь! Kingsway поможет вам справиться, а благодаря простому в использовании интерфейсу у вас останется время для мирной прогулки по подземному миру.
Скриншоты
Изменено пользователем 0wn3df1x

Поделиться сообщением


Ссылка на сообщение

С  spr_spriteFontTest работают шрифты. Поэтому оставлю этот шрифт для вывода имён на текстбоксах и рабочем столе.

Пока spr_spriteFontTest внёс только один символ для теста.

Вот только символы для ввода имени у меня не получилось вывести, какая-то закралась ошибка при редактировании.

Одно понятно, что нельзя один и тот же Pageitem использовать для одного шрифта, возможно в этом и кроется ошибка при выводе символа.

Координаты одному и тому же Pageitem можно прописать или оставить пустыми, чтобы не делать лишнюю работу для других мододелов, или переводчиков. Которые сами смогут потом добавить нужные символы себе.

Маска в spr_spriteFont похоже не работает, поскольку символ выводится на экран, то добавлять маску в этот шрифт не буду.
 

 

Поделиться сообщением


Ссылка на сообщение

 

@IndeecFOX 

Если разберёшься с кодом и шрифтом spr_spriteFont2, почему он не загружает символы, хотя добавил кириллицу, тогда продолжу перевод

Всё идёт через obj_TextBox— Подгрузка символов 95, отсчёт с 32 символа — используется как char

В obj_TextBox — Вставлен шрифт spr_spriteFont2

Скрытый текст

if surface_exists(surface)
{
    updateSurface = 0
    surface_set_target(surface)
    draw_clear_alpha(c_black, 0)
    if hasBox
    {
        _boxHeight = lineSpacing + _y * lineSpacing
        _boxOffset = 0
        _boxX = surface_get_width(surface) * 0.5
        if centered
            _boxOffset = ceil(currentWidth * 0.5)
        draw_set_color(boxColor)
        draw_rectangle((_boxX - _boxOffset + 1), 0, (_boxX + _boxOffset + 1), (1 + _boxHeight), false)
        draw_rectangle((_boxX - _boxOffset), 1, (_boxX + _boxOffset + 2), (1 + _boxHeight - 1), false)
    }
    var ordOffset = -32
    _x = 0
    _y = 0
    var _pos = 0
    var length = string_length(text)
    var cutoff = 0
    lineWidth[0] = 0
    numberOfLines = 1
    var flexWidth = 0
    i = 1
    while (i <= length)
    {
        _dontDraw = 0
        if (_pos == 0 && string_char_at(text, i) == " ")
            i += 1
        char = string_char_at(text, i)
        image_index = ord(char) + ordOffset
        if (image_index > 95)
            image_index = 95
        _pos += 10
        if (multiLine == 0 && (_x + letterSpacing * _pos) >= maxWidth && i != length)
        {
            draw_sprite_ext(sprite_index, 14, (widthBuffer * 0.5 + _x + offset - bbox_lefts[14] + letterSpacing * _pos), _y, 1, 1, 0, textColor, 1)
            draw_sprite_ext(sprite_index, 14, (widthBuffer * 0.5 + _x + offset - bbox_lefts[14] + letterSpacing * _pos + 3), _y, 1, 1, 0, textColor, 1)
            draw_sprite_ext(sprite_index, 14, (widthBuffer * 0.5 + _x + offset - bbox_lefts[14] + letterSpacing * _pos + 6), _y, 1, 1, 0, textColor, 1)
            cutoff = length - _pos
            _x += 5
            lineWidth[_y] = _x + letterSpacing * _pos
            break
        }
        else
        {
            offset = 0
            if centered
            {
                if (!(is_undefined(ds_list_find_value(lineWidthComplete, _y))))
                    offset = (ceil((ds_list_find_value(lineWidthComplete, _y)) * -0.5)) + (ceil(maxWidth * 0.5))
            }
            nextwordsize = 0
            if (multiLine && char == " ")
            {
                j = i + 1
                while (j < length && string_char_at(text, j) != " ")
                {
                    nextwordsize += ((bbox_rights[min(95, ((ord(string_char_at(text, j))) + ordOffset))]) - (bbox_lefts[min(95, ((ord(string_char_at(text, j))) + ordOffset))]) + letterSpacing)
                    j += 1
                }
            }
            else if (multiLine && char == "#")
            {
                _dontDraw = 1
                _x = 0
                _pos = 0
                _y += 1
                lineWidth[_y] = 0
                numberOfLines += 1
                height = numberOfLines * lineSpacing
            }
            if (!_dontDraw)
                draw_sprite_ext(sprite_index, image_index, (widthBuffer * 0.5 + _x + offset - bbox_lefts[image_index] + letterSpacing * _pos), (_y * lineSpacing), 1, 1, 0, textColor, 1)
            _w = bbox_rights[image_index] - bbox_lefts[image_index]
            _x += _w
            if flexableWidth
            {
                if (multiLine && (_x + letterSpacing * _pos + nextwordsize) >= maxWidth && i != length)
                {
                    if ((_x + letterSpacing * _pos + nextwordsize - 15) < maxWidth)
                        flexWidth = _x + letterSpacing * _pos + nextwordsize + 2 - maxWidth
                }
            }
            if (ds_list_size(lineWidthComplete) < numberOfLines)
                ds_list_add(lineWidthComplete, 0)
            lineWidth[_y] = _x + letterSpacing * (_pos - cutoff)
            if (multiLine && (_x + letterSpacing * _pos + nextwordsize) >= (maxWidth + flexWidth) && i != length)
            {
                _x = 0
                _pos = 0
                _y += 1
                lineWidth[_y] = 0
                numberOfLines += 1
                height = numberOfLines * lineSpacing
            }
            i += 1
            continue
        }
    }
    currentWidth = 0
    for (i = 0; i < numberOfLines; i += 1)
    {
        ds_list_replace(lineWidthComplete, i, lineWidth[i])
        if (ds_list_find_value(lineWidthComplete, i) > currentWidth)
            currentWidth = ds_list_find_value(lineWidthComplete, i)
    }
    surface_reset_target()
    lineWidth = 0
}

 

 

Изменено пользователем Tericonio

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: Gerald
      Daymare Town

      Метки: Исследования, Point & Click, Приключение, 2D, Чёрный юмор Разработчик: Mateusz Skutnik Издатель: Mateusz Skutnik Серия: Mateusz Skutnik Дата выхода: 16.09.2025 Отзывы Steam: 92 отзывов, 100% положительных
    • Автор: Gerald
      Livber: Smoke and Mirrors

      Метки: Психологический хоррор, Визуальная новелла, Несколько концовок, Интерактивная литература, Выбери себе приключение Разработчик: InEv Games Издатель: InEv Games Дата выхода: 28.10.2025 Отзывы Steam: 18 отзывов, 94% положительных


Zone of Games © 2003–2025 | Реклама на сайте.

×