This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Bir etiket (Label) bileşeni (component), bir metin parçasını oyun uzayında ekranda görüntüler. Varsayılan olarak tüm sprite ve karo grafikleriyle birlikte sıralanır ve çizilir. Bileşenin, metnin nasıl işleneceğini (rendering) belirleyen bir dizi özelliği vardır. Defold’un GUI sistemi metni destekler ancak GUI öğelerini oyun dünyasına yerleştirmek zor olabilir. Etiketler bunu kolaylaştırır.
Bir etiket bileşeni oluşturmak için oyun nesnesine (game object) sağ tıklayın ve Add Component ▸ Label seçeneğini seçin.

(Aynı şablondan birden fazla etiket örneği oluşturmak isterseniz alternatif olarak yeni bir etiket bileşeni dosyası oluşturabilirsiniz: Assets tarayıcısındaki bir klasöre sağ tıklayın ve New... ▸ Label seçeneğini seçin, ardından dosyayı istediğiniz oyun nesnelerine bileşen olarak ekleyin)

Font özelliğini kullanmak istediğiniz yazı tipine ayarlayın ve Material özelliğini yazı tipi türüyle eşleşen bir materyale ayarladığınızdan emin olun:

Bir Vector yazı tipi kullanmak için Vektör yazı tipi kurulumunu izleyin, .font kaynağını etiketin Font özelliğine atayın ve etiketin Material özelliğini /builtins/fonts/label-vector.material olarak ayarlayın. Görüntülenen boyutu kontrol etmek için Font Size özelliğini kullanın.
Renkli emoji için COLRv1 yedek yazı tipi ve paketleme kurulumunu da tamamlayın. Aşağıdaki örnek, label kimliğine sahip bir etiket ve aynı oyun nesnesinde bir betik olduğunu varsayar. Selamlamayı yalnızca glifleri hazır olduktan sonra görüntülemek için etiketin Text alanını boş bırakın:
function init(self)
local text = "Hello 😀 🍎 🚀"
local font_resource = go.get("#label", "font")
-- Add the fallback once for this shared font resource.
font.add_font(font_resource, "/fonts/NotoColorEmoji-Regular.ttf")
font.prewarm_text(font_resource, text, function(self, request_id, result, err)
if result then
go.set("#label", "text", text)
else
print("Could not prepare label text:", err)
end
end)
end
Normal harfler özgün yazı tipini, emoji ise eklenen renkli yazı tipini kullanır. Diğer etiketler veya GUI metin düğümleri bu yazı tipi kaynağını paylaşıyorsa yedek yazı tipini tek bir yerde başlatıp yeniden kullanın.
Id, Position, Rotation ve Scale özelliklerinin yanı sıra bileşene özgü aşağıdaki özellikler de bulunur:
Varsayılan materyalde performans nedeniyle gölge işlemenin devre dışı bırakıldığını unutmayın.
Blend Mode özelliği, bileşenin (component) grafiklerinin arkasındaki grafiklerle nasıl harmanlanacağını belirler. Kullanılabilir harmanlama modları (blend modes) ve hesaplanma biçimleri şunlardır:
src.a * src.rgb + (1 - src.a) * dst.rgbsrc.rgb + dst.rgbsrc.rgb * dst.rgbsrc.rgb - dst.rgb * dst.rgbPivot özelliğini ayarlayarak metnin hizalama modunu değiştirebilirsiniz.
Center, North veya South olarak ayarlanırsa metin ortalanır.West modlarından herhangi birine ayarlanırsa metin sola hizalanır.East modlarından herhangi birine ayarlanırsa metin sağa hizalanır.
Etiket metnini ve çeşitli diğer özellikleri alıp ayarlayarak çalışma sırasında etiketleri değiştirebilirsiniz.
textstring). go.get() ve go.set() aracılığıyla kullanılabilir.colorvector4)outlinevector4)shadowvector4)scalenumber veya her eksende ayrı ölçekleme için bir vector3.sizevector3)function init(self)
-- Set the text of the "my_label" component in the same game object
-- as this script.
go.set("#my_label", "text", "New text")
local text = go.get("#my_label", "text")
print(text) -- New text
end
label.set_text() ve label.get_text() işlevlerinin kullanımı artık önerilmez; bunların yerine text özelliği önerilir. Eski işlevler uyumluluk için kullanılabilir durumdadır. Eski ayarlama işlevi bir iletiyi kuyruğa eklerken go.set() metni hemen günceller.
function init(self)
-- Set the color of the "my_label" component in the same game object
-- as this script. Color is a RGBA value stored in a vector4.
local grey = vmath.vector4(0.5, 0.5, 0.5, 1.0)
go.set("#my_label", "color", grey)
-- ...and remove the outline, by setting its alpha to 0...
go.set("#my_label", "outline.w", 0)
-- ...and scale it x2 along x axis.
local scale_x = go.get("#my_label", "scale.x")
go.set("#my_label", "scale.x", scale_x * 2)
end
game.project dosyasında etiketlerle ilgili birkaç proje ayarı bulunur.