Advertisement
Guest User

Untitled

a guest
Jun 12th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3.  
  4. f1=LoadFont("system",30,0)
  5. SetFont f1
  6. teksti=MakeImage(100,40)
  7. Color 10,10,10
  8. Dim p(100000,2)
  9. c=0
  10. DrawToImage teksti
  11. Text 0,0,"Peisik"
  12. DrawToScreen
  13. DrawImage teksti,0,0
  14. For x=1 To 99
  15.     For y=29 To 1 Step -1
  16.         PickColor x,y
  17.         'Color getRGB(RED),getRGB(GREEN),getRGB(BLUE)
  18.         'Dot x,y+30
  19.         If getRGB(GREEN)=10 And getRGB(GREEN)=10 and getRGB(BLUE)=10 Then
  20.         p(c,0)=(x-50)*2
  21.         p(c,1)=y*2
  22.         c+1
  23.         EndIf
  24.     Next y
  25. Next x
  26.  
  27. Box 40, 140, 320, 20, OFF
  28. DrawScreen
  29. Randomize 3
  30.  
  31.  
  32. Const noisew = 400
  33. Const noiseh = 300
  34.  
  35. Dim noisepattern(noisew, noiseh) As Float
  36. Dim prenoise(noisew-1, noiseh-1) As Float
  37. Dim noise(noisew-1, noiseh-1, 1) As Float
  38.  
  39. Function getinterpnoise#(i, j)
  40.     ii# = Float(i/16.0)
  41.     jj# = Float(j/16.0)
  42.     aa# = noisepattern(RoundDown(ii#)+1, RoundDown(jj#))*(ii#-RoundDown(ii#))+noisepattern(RoundDown(ii#), RoundDown(jj#))*(1.0-(ii#-RoundDown(ii#)))
  43.     bb# = noisepattern(RoundDown(ii#)+1, RoundDown(jj#)+1)*(ii#-RoundDown(ii#))+noisepattern(RoundDown(ii#), RoundDown(jj#)+1)*(1.0-(ii#-RoundDown(ii#)))
  44.     Return bb#*(jj#-RoundDown(jj))+aa#*(1.0-(jj#-RoundDown(jj#)))
  45. EndFunction
  46.  
  47. For i = 0 To noisew
  48.     For j = 0 To noiseh
  49.         noisepattern(i, j) = Rnd(-1.0, 1.0)
  50.     Next j
  51.     If i Mod 20 = 0 Then
  52.         Box 40, 140, 320, 20, OFF
  53.         Box 42, 142, 316*.333*i/float(noisew), 16
  54.         DrawScreen
  55.     EndIf
  56. Next i
  57.  
  58. For i = 0 To noisew-1
  59.     For j = 0 To noiseh-1
  60.         prenoise(i, j) = getinterpnoise#(i, j)
  61.     Next j
  62.     If i Mod 20 = 0 Then
  63.         Box 40, 140, 320, 20, OFF
  64.         Box 42, 142, 316*.333*(1.0+i/float(noisew)), 16
  65.         DrawScreen
  66.     EndIf
  67. Next i
  68.  
  69. For i = 1 To noisew-2
  70.     For j = 1 To noiseh-2
  71.         noise(i, j, 0) = (prenoise(i,j+1)-prenoise(i,j-1))
  72.         noise(i, j, 1) = (prenoise(i+1,j)-prenoise(i-1,j))
  73.     Next j
  74.     If i Mod 20 = 0 Then
  75.         Box 40, 140, 320, 20, OFF
  76.         Box 42, 142, 316*.333*(2.0+i/float(noisew)), 16
  77.         DrawScreen
  78.     EndIf
  79. Next i
  80.  
  81. Dim parts(9999, 2) As Float
  82. For i = 0 To 9999
  83.     parts(i,2)=-1.0
  84. Next i
  85. ptimer = Timer()
  86.  
  87. spawn = 40*5
  88. drawx# = 200
  89. drawy# = 150
  90. t=Timer()-10
  91. Repeat
  92.     spawn = spawn + UpKey() - DownKey()
  93.     spawned = 0
  94.     ra = 0
  95.     ang# = 0'WrapAngle(ang+.2)
  96.     cosa# = Cos(ang)
  97.     sina# = Sin(ang)
  98.     kk#=(Timer()-t)/1000.0*60
  99.     t=Timer()
  100.     Lock
  101.         For i = 0 To 2999
  102.             If parts(i,2)>0 Then
  103.                 ra = ra + 1
  104.                 vx# = noise(Int(parts(i, 0)), Int(parts(i, 1)), 0)
  105.                 vy# = noise(Int(parts(i, 0)), Int(parts(i, 1)), 1)
  106.                 l=1'((Timer()Mod 4000)>500)
  107.                 parts(i,0) = parts(i,0)+vx*kk*l'+cosa*vx+sina*vy
  108.                 parts(i,1) = parts(i,1)+vy*kk*l-0.3*kk*l'-sina*vx+cosa*vy-.3
  109.                 parts(i,2) = parts(i,2)-1.25*kk
  110.                 col = max(0, Min(255, parts(i,2)))
  111.                 Color col, (col*.055)^2.0, 0
  112.                 For x = parts(i,0)-1 To parts(i,0)+1
  113.                     Line x, parts(i,1)-1, x, parts(i,1)+1
  114.                 Next x
  115.             Else
  116.                 If spawned<spawn*kk And (KeyDown(cbkeyspace) Or (Timer()Mod 4000)<500) Then
  117.                     'kulma = Rand(2)
  118.                     'drawx# = (drawx+200+Cos(90+120*kulma)*120)/2.0
  119.                     'drawy# = (drawy+170-Sin(90+120*kulma)*120)/2.0
  120.                     r=Rand(c-1)
  121.                     parts(i,0) = p(r,0)+rnd(1)+200'drawx//Rnd(80.0, 320.0)
  122.                     parts(i,1) = p(r,1)+rnd(1)+150'drawy+20//Rnd(180.0, 200.0)
  123.                     parts(i,2) = 255.0
  124.                     spawned = spawned + 1
  125.                 EndIf
  126.             EndIf
  127.         Next i
  128.     Unlock
  129.     Color 255, 255, 255
  130.     Text 10, 220, "fp"+"s is "+Str(FPS())
  131.     Text 10, 240, "rendering "+Str(ra)+" particles"
  132.     Text 10, 260, "spawning "+Str(spawned)+" per frame"
  133.     Text 10, 280, "spawn "+spawn
  134.     DrawScreen
  135. Forever
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement