Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Private Sub Particles_Update2(ii As Integer, offy As Integer, offx As Integer)
- ParticleTimer = timerTicksPerFrame * Particle_Stream(ii).mod_timer
- Dim i As Long
- Dim c As Byte
- Dim nowa As Long
- nowa = GetTickCount
- With particle_group_list(ii)
- For i = 0 To Particle_Stream(ii).NumOfParticles
- If .PrtData(i).viva = 1 Then
- ''.PrtData(i).alpha = .PrtData(i).alpha - .PrtData(i).alpha_factor * mod_particletimer
- .PrtData(i).progress = .PrtData(i).progress + timerTicksPerFrame * .PrtData(i).progress_factor
- If .PrtData(i).progress > 1 Then
- ' .PrtData(i).viva = 0
- .PrtVertList(i).Color = &H0
- .PrtData(i).progress = 0
- i = i - 1
- Else
- 'If .PrtVertList(i).tamaño > mpz Then
- '.PrtData(i).viva = 0
- '.PrtVertList(i).Color = &H0
- '.PrtData(i).progress = 0
- 'i = i - 1
- 'Else
- If Particle_Stream(ii).alpha_coseno = 1 Then
- 'tmp = (nowa - .PrtData(i).created) / Particle_Stream(.type).life
- Dim tmp As Double
- tmp = .PrtData(i).progress
- .PrtData(i).Alpha = -4 * (tmp - 1) * tmp * .PrtData(i).alpha_factor '-(tmp * 2 - 1) ^ 2 + 1 ' (-Cos(tmp * Pi2) + 1) / 2
- tmp = .PrtData(i).Alpha * Particle_Stream(ii).rnd_alpha_factor
- Else
- .PrtData(i).Alpha = .PrtData(i).Alpha - .PrtData(i).alpha_factor * ParticleTimer
- End If
- If .PrtData(i).Alpha > 1 Then .PrtData(i).Alpha = 1
- .PrtData(i).V.X = .PrtData(i).V.X + .PrtData(i).spd.X * ParticleTimer * tmp
- .PrtData(i).V.Y = .PrtData(i).V.Y + .PrtData(i).spd.Y * ParticleTimer * tmp
- .PrtData(i).spd.X = .PrtData(i).spd.X + .PrtData(i).acc.X * ParticleTimer
- .PrtData(i).spd.Y = .PrtData(i).spd.Y + .PrtData(i).acc.Y * ParticleTimer
- .PrtVertList(i).X = .PrtData(i).V.X + 250 '+ offset_map.x
- .PrtVertList(i).Y = .PrtData(i).V.Y + 250 '+ offset_map.x
- 'color
- Call D3DXColorLerp(.PrtData(i).Color, Particle_Stream(ii).StartColor, Particle_Stream(ii).EndColor, .PrtData(i).progress) '(nowa - .PrtData(i).created) / Particle_Stream(.type).life)
- .PrtVertList(i).Color = D3DColorMake(.PrtData(i).Color.R, .PrtData(i).Color.g, .PrtData(i).Color.b, .PrtData(i).Alpha)
- c = 1
- 'End If
- End If
- Else
- If i = 1 Then If .muere = 1 Then .lifecounter = .lifecounter - 1
- If .lifecounter >= 0 Then
- .PrtData(i).viva = 1
- .PrtData(i).created = nowa
- .PrtData(i).progress = 0
- '.PrtVertList(i).tamaño = Particle_Stream(.type).size
- Select Case Particle_Stream(ii).Tipo
- Case 1, 5
- .PrtData(i).acc.X = Particle_Stream(ii).accX
- .PrtData(i).acc.Y = Particle_Stream(ii).accY
- '.PrtData(I).v.x = .emmisor.x + RandomNumber(-Particle_Stream(ii).VarZ, Particle_Stream(ii).VarZ)
- '.PrtData(I).v.y = .emmisor.y
- .PrtData(i).spd.X = Particle_Stream(ii).spdX + Particle_Stream(ii).rnd_x * Rnd - Particle_Stream(ii).rnd_x * Rnd
- .PrtData(i).spd.Y = Particle_Stream(ii).spdY + Particle_Stream(ii).rnd_y * Rnd - Particle_Stream(ii).rnd_y * Rnd
- Case 2
- '.PrtData(I).v.x = .emmisor.x + Coseno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
- '.PrtData(I).v.y = .emmisor.y + Seno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
- .PrtData(i).spd.X = Cos(i * Particle_Stream(ii).trig_factor) * (Particle_Stream(ii).rnd_x + 1)
- .PrtData(i).spd.Y = Sin(i * Particle_Stream(ii).trig_factor) * (Particle_Stream(ii).rnd_y + 1)
- Case 3
- '.PrtData(I).v.y = .emmisor.y - Particle_Stream(ii).VarZ * Coseno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_y
- '.PrtData(I).v.x = .emmisor.x + Particle_Stream(ii).VarZ * Seno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_x
- .PrtData(i).spd.Y = Particle_Stream(ii).spdY '- Seno(i * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
- .PrtData(i).spd.X = Particle_Stream(ii).spdX '- Coseno(i * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
- Case 4
- '.PrtData(I).v.y = .emmisor.y - Particle_Stream(ii).VarZ * Coseno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_y
- '.PrtData(I).v.x = .emmisor.x + Particle_Stream(ii).VarZ * Seno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_x
- .PrtData(i).spd.X = Particle_Stream(ii).spdX + Particle_Stream(ii).rnd_x * Rnd
- .PrtData(i).spd.Y = Particle_Stream(ii).spdY + Particle_Stream(ii).rnd_y * Rnd
- .PrtData(i).acc.X = Particle_Stream(ii).accX - Sin(i * Particle_Stream(ii).trig_factor)
- .PrtData(i).acc.Y = Particle_Stream(ii).accY + Cos(i * Particle_Stream(ii).trig_factor)
- Case 6
- '.PrtData(I).v.x = .emmisor.x - Coseno(I * Particle_Stream(ii).trig_factor) * Coseno(.progress) * Particle_Stream(ii).rnd_x
- '.PrtData(I).v.y = .emmisor.y + Seno(I * Particle_Stream(ii).trig_factor) * Coseno(.progress) * Particle_Stream(ii).rnd_y
- .PrtData(i).spd.X = 0 '(Rnd - Rnd) * Particle_Stream(ii).VarZ
- .PrtData(i).spd.Y = 0 '(Rnd - Rnd) * Particle_Stream(ii).VarZ
- .PrtData(i).acc.X = Particle_Stream(ii).accX - Sin(i * Particle_Stream(ii).trig_factor)
- .PrtData(i).acc.Y = Particle_Stream(ii).accY + Cos(i * Particle_Stream(ii).trig_factor)
- Case 7 'mediaesfera
- '.PrtData(I).v.y = .emmisor.y - Particle_Stream(ii).VarZ * Coseno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_y
- '.PrtData(I).v.x = .emmisor.x + Particle_Stream(ii).VarZ * Seno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_x
- .PrtData(i).spd.Y = Particle_Stream(ii).spdY - Sin(i * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
- .PrtData(i).spd.X = Particle_Stream(ii).spdX - Cos(i * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
- .PrtData(i).acc.X = Particle_Stream(ii).accX - Sin(i * Particle_Stream(ii).trig_factor)
- .PrtData(i).acc.Y = Particle_Stream(ii).accY - Cos(i * Particle_Stream(ii).trig_factor)
- End Select
- If Particle_Stream(ii).Tipo = 5 Then
- '.PrtVertList(I).tamaño = 16
- Else
- '.PrtVertList(I).tamaño = Particle_Stream(ii).size * Rnd
- End If
- If Particle_Stream(ii).alpha_coseno Then
- .PrtData(i).Alpha = 0
- .PrtData(i).alpha_factor = Particle_Stream(ii).alpha_factor - (Rnd * Particle_Stream(ii).rnd_alpha_factor - Rnd * Particle_Stream(ii).rnd_alpha_factor) / 2
- Else
- .PrtData(i).Alpha = Particle_Stream(ii).AlphaInicial
- .PrtData(i).alpha_factor = Particle_Stream(ii).alpha_factor + Rnd * Particle_Stream(ii).rnd_alpha_factor
- End If
- .PrtData(i).progress_factor = .PrtData(i).alpha_factor * 0.15
- .PrtData(i).Color = Particle_Stream(ii).StartColor
- .PrtVertList(i).X = .PrtData(i).V.X + 250 '+ offset_map.x
- .PrtVertList(i).Y = .PrtData(i).V.Y + 250 '+ offset_map.y
- .PrtVertList(i).Color = D3DColorMake(.PrtData(i).Color.R, .PrtData(i).Color.g, .PrtData(i).Color.b, .PrtData(i).Alpha)
- c = 1
- Else
- c = 0
- .muere = 1
- End If
- End If
- Next i
- If .muere = 1 Then
- If c = 0 Then
- ii = 0
- '.killable = 1
- End If
- End If
- End With
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement