Engine-klasse
TextLabel
*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.
Samenvatting
Eigenschappen
Codevoorbeelden
Spelstatus Tekst
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Plaats een StringValue genaamd "GameState" in de ReplicatedStorage
local vGameState = ReplicatedStorage:WaitForChild("GameState")
-- Plaats deze code in een TextLabel
local textLabel = script.Parent
-- Enkele kleuren die we zullen gebruiken met TextColor3
local colorNormal = Color3.new(0, 0, 0) -- zwart
local colorCountdown = Color3.new(1, 0.5, 0) -- oranje
local colorRound = Color3.new(0.25, 0.25, 1) -- blauw
-- We zullen deze functie uitvoeren om de TextLabel bij te werken terwijl de status van de
-- game verandert.
local function update()
-- Update de tekst
textLabel.Text = "Status: " .. vGameState.Value
-- Stel de kleur van de tekst in op basis van de huidige spelstatus
if vGameState.Value == "Countdown" then
textLabel.TextColor3 = colorCountdown
elseif vGameState.Value == "Round" then
textLabel.TextColor3 = colorRound
else
textLabel.TextColor3 = colorNormal
end
end
-- Patroon: update eenmaal wanneer we beginnen en ook wanneer vGameState verandert
-- We zouden altijd de meest actuele GameState moeten zien.
update()
vGameState.Changed:Connect(update)API-referentie
Eigenschappen
Font
Codevoorbeelden
Toon Alle Lettertypen
local frame = script.Parent
-- Maak een TextLabel die elk lettertype weergeeft
for _, font in pairs(Enum.Font:GetEnumItems()) do
local textLabel = Instance.new("TextLabel")
textLabel.Name = font.Name
-- Stel de tekst eigenschappen in
textLabel.Text = font.Name
textLabel.Font = font
-- Enkele weergave-eigenschappen
textLabel.TextSize = 24
textLabel.TextXAlignment = Enum.TextXAlignment.Left
-- Stel de grootte van het frame gelijk aan de hoogte van de tekst
textLabel.Size = UDim2.new(1, 0, 0, textLabel.TextSize)
-- Voeg toe aan het bovenliggende frame
textLabel.Parent = frame
end
-- Rangschik de frames in een lijst (als ze dat nog niet zijn)
if not frame:FindFirstChildOfClass("UIListLayout") then
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.Parent = frame
endFiets Lettertype
local textLabel = script.Parent
while true do
-- Itereer over alle verschillende lettertypes
for _, font in pairs(Enum.Font:GetEnumItems()) do
textLabel.Font = font
textLabel.Text = font.Name
task.wait(1)
end
endFontSize
Text
Codevoorbeelden
Vervagende Banner
local TweenService = game:GetService("TweenService")
local textLabel = script.Parent
local content = {
"Welkom bij mijn spel!",
"Zorg ervoor dat je plezier hebt!",
"Geef alsjeblieft suggesties!",
"Wees aardig tegen andere spelers!",
"Grief andere spelers niet!",
"Bekijk de winkel!",
"Tip: Sterf niet!",
}
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local RNG = Random.new()
local fadeIn = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 0,
})
local fadeOut = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 1,
})
local lastIndex
while true do
-- Stap 0: Vervaag uit voordat je iets doet
fadeOut:Play()
task.wait(tweenInfo.Time)
-- Stap 1: kies inhoud die niet de laatst weergegeven was
local index
repeat
index = RNG:NextInteger(1, #content)
until lastIndex ~= index
-- Zorg ervoor dat we de volgende keer niet hetzelfde tonen
lastIndex = index
-- Stap 2: toon de inhoud
textLabel.Text = content[index]
fadeIn:Play()
task.wait(tweenInfo.Time + 1)
endEmoji in Tekst
local textLabel = script.Parent
local moods = {
["happy"] = "😃",
["sad"] = "😢",
["neutral"] = "😐",
["tired"] = "😫",
}
while true do
for mood, face in pairs(moods) do
textLabel.Text = "Ik voel me " .. mood .. "! " .. face
task.wait(1)
end
endTextBounds
Codevoorbeelden
Dynamische TextBox Grootte
local textBox = script.Parent
-- De kleinste grootte die de TextBox kan hebben
local minWidth, minHeight = 10, 10
-- Stel de uitlijning in zodat onze tekst niet wiebelt terwijl we typen
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextYAlignment = Enum.TextYAlignment.Top
local function updateSize()
textBox.Size = UDim2.new(0, math.max(minWidth, textBox.TextBounds.X), 0, math.max(minHeight, textBox.TextBounds.Y))
end
textBox:GetPropertyChangedSignal("TextBounds"):Connect(updateSize)TextColor
TextColor3
Codevoorbeelden
Aftellingstekst
-- Plaats deze code in een LocalScript binnen een TextLabel/TextButton
local textLabel = script.Parent
-- Enkele kleuren die we zullen gebruiken met TextColor3
local colorNormal = Color3.new(0, 0, 0) -- zwart
local colorSoon = Color3.new(1, 0.5, 0.5) -- rood
local colorDone = Color3.new(0.5, 1, 0.5) -- groen
-- Loop oneindig
while true do
-- Aftellen van 10 naar 1
for i = 10, 1, -1 do
-- Stel de tekst in
textLabel.Text = "Tijd: " .. i
-- Stel de kleur in op basis van hoeveel tijd er nog over is
if i > 3 then
textLabel.TextColor3 = colorNormal
else
textLabel.TextColor3 = colorSoon
end
task.wait(1)
end
textLabel.Text = "GA!"
textLabel.TextColor3 = colorDone
task.wait(2)
endTextSize
Codevoorbeelden
"Kaboom!" Tekst
local textLabel = script.Parent
textLabel.Text = "Kaboom!"
while true do
for size = 5, 100, 5 do
textLabel.TextSize = size
textLabel.TextTransparency = size / 100
task.wait()
end
task.wait(1)
endTextStrokeTransparency
Codevoorbeelden
Text Highlight Oscillation
local textLabel = script.Parent
-- Hoe snel de highlight zou moeten knipperen
local freq = 2
-- Stel in op gele highlightkleur
textLabel.TextStrokeColor3 = Color3.new(1, 1, 0)
while true do
-- math.sin oscilleert van -1 tot 1, dus we veranderen het bereik naar 0 tot 1:
local transparency = math.sin(workspace.DistributedGameTime * math.pi * freq) * 0.5 + 0.5
textLabel.TextStrokeTransparency = transparency
task.wait()
endTextWrap
TextWrapped
Codevoorbeelden
Lange Tekst Wrapping
local textLabel = script.Parent
-- Deze tekst wrapping demo komt het beste tot zijn recht op een rechthoek van 200x50 px
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Enkele inhoud om uit te spellen
local content = "Hier is een lange reeks woorden die "
.. "uiteindelijk de breedte van het UI-element zal overschrijden "
.. "en regelafbrekingen zal vormen. Handig voor paragrafen "
.. "die echt lang zijn."
-- Een functie die tekst twee karakters tegelijk zal spellen
local function spellTheText()
-- Itereer van 1 tot de lengte van onze inhoud
for i = 1, content:len() do
-- Verkrijg een substring van onze inhoud: 1 tot i
textLabel.Text = content:sub(1, i)
-- Kleur de tekst als deze niet in onze doos past
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Zwart
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Rood
end
-- Wacht een kort moment bij even lengtes
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spel de tekst zonder schaling/wrapping
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spel de tekst met wrapping aan
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spel de tekst met tekstschaling aan
-- Opmerking: Tekst wordt rood (TextFits = false) zodra de tekst moet worden
-- verkleind om binnen het UI-element te passen.
textLabel.TextScaled = true
-- Opmerking: TextWrapped is impliciet ingeschakeld wanneer TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
endTextXAlignment
Codevoorbeelden
Tekstuitlijning
-- Plak dit in een LocalScript binnen een TextLabel/TextButton/TextBox
local textLabel = script.Parent
local function setAlignment(xAlign, yAlign)
textLabel.TextXAlignment = xAlign
textLabel.TextYAlignment = yAlign
textLabel.Text = xAlign.Name .. " + " .. yAlign.Name
end
while true do
-- Itereer over zowel TextXAlignment als TextYAlignment enum-items
for _, yAlign in pairs(Enum.TextYAlignment:GetEnumItems()) do
for _, xAlign in pairs(Enum.TextXAlignment:GetEnumItems()) do
setAlignment(xAlign, yAlign)
task.wait(1)
end
end
end