Вопрос [NL] Как остановить печатающийся текст?

lights out, you don't tap out
Пользователь
Статус
Оффлайн
Регистрация
8 Дек 2018
Сообщения
500
Реакции[?]
110
Поинты[?]
22K
Я не понимаю как сделать печатающийся текст, который при достижении последнего слова в нём будет останавливаться и только при следующем включением текста он будет по новой печататься.
Как его сделать?

code_language.lua:
local textanim = {'R', 'RA', 'RAP', 'RAPI', 'RAPID'}
local curtime = math.floor(globals.curtime * 16)
local text = textanim[curtime % #textanim+1]
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
4 Мар 2021
Сообщения
816
Реакции[?]
165
Поинты[?]
78K
стаге + 1 самый простой способ или делай что-то типо лерпа(я знаю что я хуйню спизданул, но проверить надо)
 
lights out, you don't tap out
Пользователь
Статус
Оффлайн
Регистрация
8 Дек 2018
Сообщения
500
Реакции[?]
110
Поинты[?]
22K
стаге + 1 самый простой способ или делай что-то типо лерпа(я знаю что я хуйню спизданул, но проверить надо)
code_language.lua:
local textanim = {'R', 'RA', 'RAP', 'RAPI', 'RAPID'}
local curtime = math.floor(globals.curtime * 16)
local text = textanim[curtime % #textanim+1]
я попробовал сделать его так, но я не понимаю как мне его остановить при достижении 'RAPID'
 
lights out, you don't tap out
Пользователь
Статус
Оффлайн
Регистрация
8 Дек 2018
Сообщения
500
Реакции[?]
110
Поинты[?]
22K
Пожалуйста, авторизуйтесь для просмотра ссылки.
&
Пожалуйста, авторизуйтесь для просмотра ссылки.
пытаюсь как либо взаимодействовать вместе с текстом и push_clip_rect & pop_clip_rect и текст пропадает, из-за чего?
code_language.lua:
render.push_clip_rect(vector(x/2 + 8 - xw, y/2 + py + 11), vector(x/2 + 8 + xw, y/2 + py + 11))
    render.text(2, vector(x/2 + 8 + xw, y/2 + py + 11), color(100, 255, 105, 255), 'c', "RAPID")
render.pop_clip_rect()
 
Участник
Статус
Оффлайн
Регистрация
4 Мар 2021
Сообщения
816
Реакции[?]
165
Поинты[?]
78K
code_language.lua:
local textanim = {'R', 'RA', 'RAP', 'RAPI', 'RAPID'}
local curtime = math.floor(globals.curtime * 16)
local text = textanim[curtime % #textanim+1]
я попробовал сделать его так, но я не понимаю как мне его остановить при достижении 'RAPID'
проверку вставить можно было
if textanim == 'RAPID' then останавливаешь и все
 
lights out, you don't tap out
Пользователь
Статус
Оффлайн
Регистрация
8 Дек 2018
Сообщения
500
Реакции[?]
110
Поинты[?]
22K
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,354
Реакции[?]
493
Поинты[?]
85K
???
залочь current_text на min(curtime, длина массива)
 
Дизайнер
Статус
Оффлайн
Регистрация
18 Авг 2017
Сообщения
1,934
Реакции[?]
2,257
Поинты[?]
143K
Товары в продаже
1
это как простые анимации можно сделать

Код:
local typin = function (text, progress)
    return string.sub(text, 1, progress * #text)
end)

events.render:set(function ()
    local progress = globals.realtime % 1
    render.text(1, vector(500, 500), color(), "", typin("Lorem ipsum dolor sit amet", progress))
end)
писал с телефона поэтому не знаю как оно выглядит
 
lights out, you don't tap out
Пользователь
Статус
Оффлайн
Регистрация
8 Дек 2018
Сообщения
500
Реакции[?]
110
Поинты[?]
22K
это как простые анимации можно сделать

Код:
local typin = function (text, progress)
    return string.sub(text, 1, progress * #text)
end)

events.render:set(function ()
    local progress = globals.realtime % 1
    render.text(1, vector(500, 500), color(), "", typin("Lorem ipsum dolor sit amet", progress))
end)
писал с телефона поэтому не знаю как оно выглядит
он впринципе работает так-же как и код который я кидал выше, но мне надо остановить этот текст конкретно когда он дошёл до конца и чтобы он только печатался дальше при следующем его появлении.
if text == textanim[last index]
stop
экспериментировал по разному с этим приколом, никак не работает.
???
залочь current_text на min(curtime, длина массива)
если ты про math.min в замену на floor, то я его ставил тоже, но текст переставал что либо делать.
 
Дизайнер
Статус
Оффлайн
Регистрация
18 Авг 2017
Сообщения
1,934
Реакции[?]
2,257
Поинты[?]
143K
Товары в продаже
1
он впринципе работает так-же как и код который я кидал выше, но мне надо остановить этот текст конкретно когда он дошёл до конца и чтобы он только печатался дальше при следующем его появлении.
потому что ты время используешь, тебе нужен лерп
 
Эксперт
Статус
Оффлайн
Регистрация
24 Апр 2018
Сообщения
1,468
Реакции[?]
909
Поинты[?]
42K
это как простые анимации можно сделать

Код:
local typin = function (text, progress)
    return string.sub(text, 1, progress * #text)
end)

events.render:set(function ()
    local progress = globals.realtime % 1
    render.text(1, vector(500, 500), color(), "", typin("Lorem ipsum dolor sit amet", progress))
end)
писал с телефона поэтому не знаю как оно выглядит
Вылет игры -_-
 
lights out, you don't tap out
Пользователь
Статус
Оффлайн
Регистрация
8 Дек 2018
Сообщения
500
Реакции[?]
110
Поинты[?]
22K
Пользователь
Статус
Онлайн
Регистрация
2 Май 2022
Сообщения
288
Реакции[?]
37
Поинты[?]
14K
Я не понимаю как сделать печатающийся текст, который при достижении последнего слова в нём будет останавливаться и только при следующем включением текста он будет по новой печататься.
Как его сделать?

code_language.lua:
local textanim = {'R', 'RA', 'RAP', 'RAPI', 'RAPID'}
local curtime = math.floor(globals.curtime * 16)
local text = textanim[curtime % #textanim+1]
лучше сделать так


code_language.lua:
local text = "RAPID"

text = text:sub(0, #text*alpha)
А лучше использовать render.push_clip_rect(pos_a: vector, pos_b: vector[, intersect: boolean])render.push_clip_rect(pos_a: vector, pos_b: vector[, intersect: boolean])
 
lights out, you don't tap out
Пользователь
Статус
Оффлайн
Регистрация
8 Дек 2018
Сообщения
500
Реакции[?]
110
Поинты[?]
22K
А лучше использовать render.push_clip_rect(pos_a: vector, pos_b: vector[, intersect: boolean])render.push_clip_rect(pos_a: vector, pos_b: vector[, intersect: boolean])
вот бы мне кто пояснил как этот пуш клип использовать, ибо я сам не разобрался как его использовать либо тестовый код дал. а так спасибо как можно было лучше сделать из моего кода
 
Пользователь
Статус
Онлайн
Регистрация
2 Май 2022
Сообщения
288
Реакции[?]
37
Поинты[?]
14K
нано технологии?:roflanEbalo:
почему нано, а зачем тиккаунтом длину текста изменять, ты будешь каждый текст что ли так делать?
пытаюсь как либо взаимодействовать вместе с текстом и push_clip_rect & pop_clip_rect и текст пропадает, из-за чего?
code_language.lua:
render.push_clip_rect(vector(x/2 + 8 - xw, y/2 + py + 11), vector(x/2 + 8 + xw, y/2 + py + 11))
    render.text(2, vector(x/2 + 8 + xw, y/2 + py + 11), color(100, 255, 105, 255), 'c', "RAPID")
render.pop_clip_rect()
он поэтому и пропадает, он просто закрывает часть текста

делай так - (-xw*alpha) (+xw*alpha)
почему нано, а зачем тиккаунтом длину текста изменять, ты будешь каждый текст что ли так делать?

он поэтому и пропадает, он просто закрывает часть текста

делай так - (-xw*alpha) (+xw*alpha)

P.S alpha должна быть от 0.0, до 1.0
 
Последнее редактирование:
lights out, you don't tap out
Пользователь
Статус
Оффлайн
Регистрация
8 Дек 2018
Сообщения
500
Реакции[?]
110
Поинты[?]
22K
почему нано, а зачем тиккаунтом длину текста изменять, ты будешь каждый текст что ли так делать?

он поэтому и пропадает, он просто закрывает часть текста

делай так - (-xw*alpha) (+xw*alpha)



P.S alpha должна быть от 0.0, до 1.0
спасибо! помог сильно, лавки тебя
 
Сверху Снизу