Advertisement
Gleix09

Untitled

Mar 10th, 2024
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Private Sub Particles_Update2(ii As Integer, offy As Integer, offx As Integer)
  2.  
  3.     ParticleTimer = timerTicksPerFrame * Particle_Stream(ii).mod_timer
  4.  
  5.     Dim i As Long
  6.     Dim c As Byte
  7.     Dim nowa As Long
  8.     nowa = GetTickCount
  9.  
  10.     With particle_group_list(ii)
  11.         For i = 0 To Particle_Stream(ii).NumOfParticles
  12.             If .PrtData(i).viva = 1 Then
  13.                 ''.PrtData(i).alpha = .PrtData(i).alpha - .PrtData(i).alpha_factor * mod_particletimer
  14.                .PrtData(i).progress = .PrtData(i).progress + timerTicksPerFrame * .PrtData(i).progress_factor
  15.  
  16.                 If .PrtData(i).progress > 1 Then
  17.                     '                    .PrtData(i).viva = 0
  18.                    .PrtVertList(i).Color = &H0
  19.                     .PrtData(i).progress = 0
  20.                     i = i - 1
  21.                 Else
  22.                     'If .PrtVertList(i).tamaño > mpz Then
  23.                    '.PrtData(i).viva = 0
  24.                    '.PrtVertList(i).Color = &H0
  25.                    '.PrtData(i).progress = 0
  26.                    'i = i - 1
  27.                    'Else
  28.                    If Particle_Stream(ii).alpha_coseno = 1 Then
  29.                         'tmp = (nowa - .PrtData(i).created) / Particle_Stream(.type).life
  30.                        Dim tmp As Double
  31.                         tmp = .PrtData(i).progress
  32.                         .PrtData(i).Alpha = -4 * (tmp - 1) * tmp * .PrtData(i).alpha_factor    '-(tmp * 2 - 1) ^ 2 + 1 ' (-Cos(tmp * Pi2) + 1) / 2
  33.                        tmp = .PrtData(i).Alpha * Particle_Stream(ii).rnd_alpha_factor
  34.                     Else
  35.                         .PrtData(i).Alpha = .PrtData(i).Alpha - .PrtData(i).alpha_factor * ParticleTimer
  36.                     End If
  37.  
  38.                     If .PrtData(i).Alpha > 1 Then .PrtData(i).Alpha = 1
  39.  
  40.                     .PrtData(i).V.X = .PrtData(i).V.X + .PrtData(i).spd.X * ParticleTimer * tmp
  41.                     .PrtData(i).V.Y = .PrtData(i).V.Y + .PrtData(i).spd.Y * ParticleTimer * tmp
  42.                     .PrtData(i).spd.X = .PrtData(i).spd.X + .PrtData(i).acc.X * ParticleTimer
  43.                     .PrtData(i).spd.Y = .PrtData(i).spd.Y + .PrtData(i).acc.Y * ParticleTimer
  44.  
  45.                     .PrtVertList(i).X = .PrtData(i).V.X + 250    '+ offset_map.x
  46.                    .PrtVertList(i).Y = .PrtData(i).V.Y + 250    '+ offset_map.x
  47.  
  48.                     'color
  49.                    Call D3DXColorLerp(.PrtData(i).Color, Particle_Stream(ii).StartColor, Particle_Stream(ii).EndColor, .PrtData(i).progress)    '(nowa - .PrtData(i).created) / Particle_Stream(.type).life)
  50.  
  51.                     .PrtVertList(i).Color = D3DColorMake(.PrtData(i).Color.R, .PrtData(i).Color.g, .PrtData(i).Color.b, .PrtData(i).Alpha)
  52.  
  53.                     c = 1
  54.                     'End If
  55.                End If
  56.             Else
  57.                 If i = 1 Then If .muere = 1 Then .lifecounter = .lifecounter - 1
  58.  
  59.                 If .lifecounter >= 0 Then
  60.  
  61.                     .PrtData(i).viva = 1
  62.                     .PrtData(i).created = nowa
  63.                     .PrtData(i).progress = 0
  64.                     '.PrtVertList(i).tamaño = Particle_Stream(.type).size
  65.  
  66.                     Select Case Particle_Stream(ii).Tipo
  67.                         Case 1, 5
  68.                             .PrtData(i).acc.X = Particle_Stream(ii).accX
  69.                             .PrtData(i).acc.Y = Particle_Stream(ii).accY
  70.                             '.PrtData(I).v.x = .emmisor.x + RandomNumber(-Particle_Stream(ii).VarZ, Particle_Stream(ii).VarZ)
  71.                            '.PrtData(I).v.y = .emmisor.y
  72.                            .PrtData(i).spd.X = Particle_Stream(ii).spdX + Particle_Stream(ii).rnd_x * Rnd - Particle_Stream(ii).rnd_x * Rnd
  73.                             .PrtData(i).spd.Y = Particle_Stream(ii).spdY + Particle_Stream(ii).rnd_y * Rnd - Particle_Stream(ii).rnd_y * Rnd
  74.                         Case 2
  75.                             '.PrtData(I).v.x = .emmisor.x + Coseno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
  76.                            '.PrtData(I).v.y = .emmisor.y + Seno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
  77.                            .PrtData(i).spd.X = Cos(i * Particle_Stream(ii).trig_factor) * (Particle_Stream(ii).rnd_x + 1)
  78.                             .PrtData(i).spd.Y = Sin(i * Particle_Stream(ii).trig_factor) * (Particle_Stream(ii).rnd_y + 1)
  79.                         Case 3
  80.                             '.PrtData(I).v.y = .emmisor.y - Particle_Stream(ii).VarZ * Coseno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_y
  81.                            '.PrtData(I).v.x = .emmisor.x + Particle_Stream(ii).VarZ * Seno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_x
  82.                            .PrtData(i).spd.Y = Particle_Stream(ii).spdY    '- Seno(i * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
  83.                            .PrtData(i).spd.X = Particle_Stream(ii).spdX    '- Coseno(i * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
  84.                        Case 4
  85.                             '.PrtData(I).v.y = .emmisor.y - Particle_Stream(ii).VarZ * Coseno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_y
  86.                            '.PrtData(I).v.x = .emmisor.x + Particle_Stream(ii).VarZ * Seno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_x
  87.                            .PrtData(i).spd.X = Particle_Stream(ii).spdX + Particle_Stream(ii).rnd_x * Rnd
  88.                             .PrtData(i).spd.Y = Particle_Stream(ii).spdY + Particle_Stream(ii).rnd_y * Rnd
  89.                             .PrtData(i).acc.X = Particle_Stream(ii).accX - Sin(i * Particle_Stream(ii).trig_factor)
  90.                             .PrtData(i).acc.Y = Particle_Stream(ii).accY + Cos(i * Particle_Stream(ii).trig_factor)
  91.                         Case 6
  92.                             '.PrtData(I).v.x = .emmisor.x - Coseno(I * Particle_Stream(ii).trig_factor) * Coseno(.progress) * Particle_Stream(ii).rnd_x
  93.                            '.PrtData(I).v.y = .emmisor.y + Seno(I * Particle_Stream(ii).trig_factor) * Coseno(.progress) * Particle_Stream(ii).rnd_y
  94.                            .PrtData(i).spd.X = 0    '(Rnd - Rnd) * Particle_Stream(ii).VarZ
  95.                            .PrtData(i).spd.Y = 0    '(Rnd - Rnd) * Particle_Stream(ii).VarZ
  96.                            .PrtData(i).acc.X = Particle_Stream(ii).accX - Sin(i * Particle_Stream(ii).trig_factor)
  97.                             .PrtData(i).acc.Y = Particle_Stream(ii).accY + Cos(i * Particle_Stream(ii).trig_factor)
  98.                         Case 7    'mediaesfera
  99.                            '.PrtData(I).v.y = .emmisor.y - Particle_Stream(ii).VarZ * Coseno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_y
  100.                            '.PrtData(I).v.x = .emmisor.x + Particle_Stream(ii).VarZ * Seno(I * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).rnd_x
  101.                            .PrtData(i).spd.Y = Particle_Stream(ii).spdY - Sin(i * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
  102.                             .PrtData(i).spd.X = Particle_Stream(ii).spdX - Cos(i * Particle_Stream(ii).trig_factor) * Particle_Stream(ii).VarZ
  103.                             .PrtData(i).acc.X = Particle_Stream(ii).accX - Sin(i * Particle_Stream(ii).trig_factor)
  104.                             .PrtData(i).acc.Y = Particle_Stream(ii).accY - Cos(i * Particle_Stream(ii).trig_factor)
  105.                     End Select
  106.  
  107.                     If Particle_Stream(ii).Tipo = 5 Then
  108.                         '.PrtVertList(I).tamaño = 16
  109.                    Else
  110.                         '.PrtVertList(I).tamaño = Particle_Stream(ii).size * Rnd
  111.                    End If
  112.  
  113.                     If Particle_Stream(ii).alpha_coseno Then
  114.                         .PrtData(i).Alpha = 0
  115.                         .PrtData(i).alpha_factor = Particle_Stream(ii).alpha_factor - (Rnd * Particle_Stream(ii).rnd_alpha_factor - Rnd * Particle_Stream(ii).rnd_alpha_factor) / 2
  116.                     Else
  117.                         .PrtData(i).Alpha = Particle_Stream(ii).AlphaInicial
  118.                         .PrtData(i).alpha_factor = Particle_Stream(ii).alpha_factor + Rnd * Particle_Stream(ii).rnd_alpha_factor
  119.                     End If
  120.  
  121.                     .PrtData(i).progress_factor = .PrtData(i).alpha_factor * 0.15
  122.  
  123.                     .PrtData(i).Color = Particle_Stream(ii).StartColor
  124.  
  125.                     .PrtVertList(i).X = .PrtData(i).V.X + 250  '+ offset_map.x
  126.                    .PrtVertList(i).Y = .PrtData(i).V.Y + 250    '+ offset_map.y
  127.  
  128.                     .PrtVertList(i).Color = D3DColorMake(.PrtData(i).Color.R, .PrtData(i).Color.g, .PrtData(i).Color.b, .PrtData(i).Alpha)
  129.                     c = 1
  130.                 Else
  131.                     c = 0
  132.                     .muere = 1
  133.                 End If
  134.             End If
  135.         Next i
  136.  
  137.         If .muere = 1 Then
  138.             If c = 0 Then
  139.                 ii = 0
  140.                 '.killable = 1
  141.            End If
  142.         End If
  143.  
  144.     End With
  145.  
  146. End Sub
  147.  
  148.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement