Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

[Помогите]Нужен код мульти-строчного textbox'a с возможностью скролинга

Тема в разделе "Модификации клиента", создана пользователем Aнатолий, 4 авг 2014.

  1. Автор темы
    Aнатолий

    Aнатолий Старожил Пользователь

    Баллы:
    103
    Skype:
    sasay1337
    Имя в Minecraft:
    4epB9Ik
    Привет всем.
    Собственно сабж.
    Поясню немного

    Прямоугольник с возможностью вставки текста
    (texbox.text(1, "абв") - где textbox это наш объект, text - функция, 1 - номер строки, абв - текст)
    при достижении (i) строки, появление скрол-бара с права.

    вот похожий пример (взял на mcgl)
    [​IMG]

    Заранее благодарен!
     
  2. Хостинг MineCraft
    <
  3. Agravaine

    Agravaine Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Agravaine25
    Сам пиши, харе код выпрашивать.
     
  4. Автор темы
    Aнатолий

    Aнатолий Старожил Пользователь

    Баллы:
    103
    Skype:
    sasay1337
    Имя в Minecraft:
    4epB9Ik
    а ты думаешь я не попробывал? xD
    Лучше не видеть что получилось...
    [​IMG]
     
    Последнее редактирование: 5 авг 2014
  5. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    1.При инициализации GUI вычисляй, сколько строк поместятся в твой квадрат.
    2. Для вычисления позиции скроллбара формула: (высота скроллбара-высота скроллера)/(кол-во строк)*(первую строку, находящуюся в квадрате в данный момент)
    3. По координатам скроллера добавь слушатель мыши и варьируй значения по высоте от 1 строки до (последней минус кол-во строк в квадрате)

    Код писать долго. Думаю, и сам поймешь.

    P.S: Все вычисления делай в области double-чисел, а то Integer даст большую погрешность.

    Естественно, при скроллинге меняй координату Y у каждой строки, а отображай те, которые находятся внутри квадрата
     
    Последнее редактирование: 5 авг 2014
  6. Автор темы
    Aнатолий

    Aнатолий Старожил Пользователь

    Баллы:
    103
    Skype:
    sasay1337
    Имя в Minecraft:
    4epB9Ik
    Спасибо!
    P.S я все понимаю до момента с прорисовкой текста при скроллинге. Когда строка доходит до барьера с верху - как сделать частичную прорисовку?
    (попробую склепать пример)
    [​IMG]
     
  7. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    Можешь за один шаг при скроллинге взять высоту текста, а высоту блока ровно какое-то кол-во строк......тогда не будет так, что за пределами блока окажется часть строки. А у всех строк, чьи координаты Y выше или ниже блока, не вызываем метод рендера. (пример: http://c2n.me/iFw4C6 - у меня скроллится блоками по 37px)


    Либо можно свободную часть экрана залепить картинками или цветом после рендера текста. (Mojang так и сделали со скроллпанелями)

    А если хочешь действительно частичную прорисовку, то придется создавать canvas под это дело.
     
    Последнее редактирование: 5 авг 2014
  8. Автор темы
    Aнатолий

    Aнатолий Старожил Пользователь

    Баллы:
    103
    Skype:
    sasay1337
    Имя в Minecraft:
    4epB9Ik
    Точно. Спасибо!
    Попробую.
     

Поделиться этой страницей