NumberSequence
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Datatype.NumberSequencer veri türü, 0dan 1 'e kadar bir dizi sayı değerini temsil eder. Sayı değerleri 0 yazkullanılarak ifade edilir. Bu tür, Class.ParticleEmitter.Size</
Eşitlik
İki NumberSequence nesneleri sadece eşdeğer olur, çünkü onların NumberSequenceKeypoint değerleri eşdeğerdir, bununla birlikte her ikisi de benzer grafikler oluşturur.
Değerlendirme
The NumberSequence type does not have an built-in method for getting the value at a certain time/point because keypoints can have random envelopes. However,假 varsayılan kişi noktalarının tüm 0 olmasının keypoints'ın envanter değerleri değerlendirilmesi için kullanılabilir functionu varsayın.
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- Zaman 0 veya 1 ise, ilk veya son değeri döndür
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- Aksi takdirde, her bir anahtar noktasının sırasından geçin
for i = 1, #sequence.Keypoints - 1 do
local currKeypoint = sequence.Keypoints[i]
local nextKeypoint = sequence.Keypoints[i + 1]
if time >= currKeypoint.Time and time < nextKeypoint.Time then
-- Noktalar arasındaki alfa'nın ne kadar uzak olduğunu hesaplayın
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Alpha kullanarak değerleri arasındaki değeri iade edin
return currKeypoint.Value + (nextKeypoint.Value - currKeypoint.Value) * alpha
end
end
end
local numberSequence = NumberSequence.new{
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.5, 1),
NumberSequenceKeypoint.new(1, 0),
}
print(evalNumberSequence(numberSequence, 0.65)) --> 0.7