Engine-klasse
ParticleEmitter
*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
Texture:ContentId |
Codevoorbeelden
Een Deeltjesemitter Maken vanuit het Niets
local emitter = Instance.new("ParticleEmitter")
-- Aantal deeltjes = Snelheid * Levensduur
emitter.Rate = 5 -- Deeltjes per seconde
emitter.Lifetime = NumberRange.new(1, 1) -- Hoe lang de deeltjes levend moeten zijn (min, max)
emitter.Enabled = true
-- Visuele eigenschappen
emitter.Texture = "rbxassetid://1266170131" -- Een transparante afbeelding van een witte ring
-- Voor Kleur, bouw een ColorSequence met behulp van ColorSequenceKeypoint
local colorKeypoints = {
-- API: ColorSequenceKeypoint.new(tijd, kleur)
ColorSequenceKeypoint.new(0, Color3.new(1, 1, 1)), -- Bij t=0, Wit
ColorSequenceKeypoint.new(0.5, Color3.new(1, 0.5, 0)), -- Bij t=.5, Oranje
ColorSequenceKeypoint.new(1, Color3.new(1, 0, 0)), -- Bij t=1, Rood
}
emitter.Color = ColorSequence.new(colorKeypoints)
local numberKeypoints = {
-- API: NumberSequenceKeypoint.new(tijd, grootte, envelop)
NumberSequenceKeypoint.new(0, 1), -- Bij t=0, volledig transparant
NumberSequenceKeypoint.new(0.1, 0), -- Bij t=.1, volledig ondoorzichtig
NumberSequenceKeypoint.new(0.5, 0.25), -- Bij t=.5, grotendeels ondoorzichtig
NumberSequenceKeypoint.new(1, 1), -- Bij t=1, volledig transparant
}
emitter.Transparency = NumberSequence.new(numberKeypoints)
emitter.LightEmission = 1 -- Wanneer deeltjes overlappen, vermenigvuldig hun kleur om helderder te zijn
emitter.LightInfluence = 0 -- Niet beïnvloed door wereldverlichting
-- Snelheidseigenschappen
emitter.EmissionDirection = Enum.NormalId.Front -- Stoot naar voren uit
emitter.Speed = NumberRange.new(0, 0) -- Snelheid van nul
emitter.Drag = 0 -- Pas geen weerstand toe op de deeltjesbeweging
emitter.VelocitySpread = NumberRange.new(0, 0)
emitter.VelocityInheritance = 0 -- Erf geen ouder snelheid
emitter.Acceleration = Vector3.new(0, 0, 0)
emitter.LockedToPart = false -- Vergrendel de deeltjes niet aan de ouder
emitter.SpreadAngle = Vector2.new(0, 0) -- Geen spreidingshoek op beide assen
-- Simulatie-eigenschappen
local numberKeypoints2 = {
NumberSequenceKeypoint.new(0, 0), -- Bij t=0, grootte van 0
NumberSequenceKeypoint.new(1, 10), -- Bij t=1, grootte van 10
}
emitter.Size = NumberSequence.new(numberKeypoints2)
emitter.ZOffset = -1 -- Render iets achter de werkelijke positie
emitter.Rotation = NumberRange.new(0, 360) -- Begin met willekeurige rotatie
emitter.RotSpeed = NumberRange.new(0) -- Draai niet tijdens simulatie
-- Maak een bevestiging zodat de deeltjes precies vanaf dezelfde plek worden uitgezonden (concentrische ringen)
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 5, 0) -- Verplaats de bevestiging een beetje omhoog
attachment.Parent = script.Parent
emitter.Parent = attachmentAPI-referentie
Eigenschappen
Texture
ParticleEmitter.Texture:ContentId
VelocitySpread
Methoden
Clear
ParticleEmitter:Clear():()
Teruggaves
()
Codevoorbeelden
Deeltjesemitter Burst
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
endEmit
Parameters
| Standaardwaarde: 16 |
Teruggaves
()
Codevoorbeelden
Deeltjes Emitteren Over Afstand
local RunService = game:GetService("RunService")
local emitter = script.Parent
local part = emitter.Parent
local PARTICLES_PER_STUD = 3
local lastPosition = part.Position
local distance = 0
local function onStep()
local displacement = part.Position - lastPosition
distance = distance + displacement.magnitude
local n = math.floor(distance * PARTICLES_PER_STUD)
emitter:Emit(n)
distance = distance - n / PARTICLES_PER_STUD
lastPosition = part.Position
end
RunService.Stepped:Connect(onStep)
emitter.Enabled = falseDeeltjesemitter Burst
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end