home *** CD-ROM | disk | FTP | other *** search
/ DarkBasic Professional / DarkBasicPro.iso / data1.cab / Lang_Files_(English) / Help / examples / particles / particles2-example.dba < prev    next >
Encoding:
Text File  |  2004-09-22  |  3.4 KB  |  107 lines

  1. rem Particles Functionality
  2.  
  3. rem Standard Setup Code for all examples
  4. sync on : sync rate 0 : color backdrop rgb(0,128,0)
  5. set text font "arial" : set text size 16
  6. set text to bold : set text transparent
  7.  
  8. rem Load images
  9. ImageNumberA=1 : load image "snow.bmp",ImageNumberA
  10. ImageNumberB=2 : load image "fire.bmp",ImageNumberB
  11. ImageNumberC=3 : load image "spec.bmp",ImageNumberC
  12.  
  13. rem Make special particle effects
  14. ParticleNumberA=1 : make snow particles ParticleNumberA, ImageNumberA, 500,-5,5,5, 10,10,10
  15. ParticleNumberB=2 : make fire particles ParticleNumberB, ImageNumberB, 500, 5,5,5, 10,10,10
  16.  
  17. rem Make textured particle effects
  18. ParticleNumberC=3
  19. make particles ParticleNumberC, ImageNumberC, 10, 10.0
  20. position particles ParticleNumberC, -3, 0, 10
  21. gosub _usingvectors
  22.  
  23. rem Make colored particle effects in the air
  24. ParticleNumberD=4
  25. make particles ParticleNumberD, 0, 10, 10.0
  26. position particles ParticleNumberD, 3, 2, 10
  27. set particle emissions ParticleNumberD, 1
  28. set particle speed ParticleNumberD, 0.005
  29. set particle velocity ParticleNumberD, 10
  30.  
  31. rem Setup camera
  32. position camera 0,1,0
  33. point camera 0,1,400
  34.  
  35. rem Main loop
  36. desc$="Particle Effects"
  37. while mouseclick()=0
  38.  
  39. rem Camera control to view particles
  40. if upkey()=1 then move camera 0.1
  41. if downkey()=1 then move camera -0.1
  42. if leftkey()=1 then turn camera left 1
  43. if rightkey()=1 then turn camera right 1
  44.  
  45. rem Spark across floor using mouse
  46. rot#=wrapvalue(rot#+1.0)
  47. color particles ParticleNumberC, rnd(255), rnd(255), rnd(255)
  48. position particles ParticleNumberC, (mousex()-320)/50.0, 0, 10
  49. rotate particles ParticleNumberC, 0, 0, rot#
  50.  
  51. rem Trigger random particle commands
  52. if rnd(50)=1 then show particles ParticleNumberD
  53. if rnd(50)=1 then hide particles ParticleNumberD
  54. if rnd(5)=1 then set particle emissions ParticleNumberC, 2+rnd(8)
  55. if rnd(5)=1 then set particle speed ParticleNumberC, (2+rnd(1))/100.0
  56. if rnd(5)=1 then set particle velocity ParticleNumberC, 4+rnd(2)
  57. if rnd(5)=1 then set particle gravity ParticleNumberC, rnd(5)
  58. if rnd(5)=1 then set particle life ParticleNumberC, 50+rnd(50)
  59. if rnd(5)=1 then set particle floor ParticleNumberC, rnd(1)
  60. if rnd(5)=1 then set particle chaos ParticleNumberC, rnd(10)/10.0
  61. if rnd(5)=1 then color particles ParticleNumberD, rnd(255), rnd(255), 0
  62.  
  63. rem Expressions
  64. set cursor 0,0
  65. print "PARTICLES DATA"
  66. print "exist:";particles exist(ParticleNumberC)
  67. if particles exist(ParticleNumberC)=1
  68.  print "x:";particles position x(ParticleNumberC)
  69.  print "y:";particles position y(ParticleNumberC)
  70.  print "z:";particles position z(ParticleNumberC)
  71. endif
  72.  
  73. rem Show Framerate
  74. text 20,screen height()-40,desc$
  75. fps$="DBPro Fps: "+str$(screen fps())
  76. text screen width()-20-text width(fps$),screen height()-40,fps$
  77.  
  78. rem Update screen
  79. sync
  80.  
  81. rem End loop
  82. endwhile
  83.  
  84. rem Delete particles
  85. delete particles ParticleNumberA
  86. delete particles ParticleNumberB
  87. delete particles ParticleNumberC
  88. delete particles ParticleNumberD
  89.  
  90. rem End program
  91. end
  92.  
  93. _usingvectors:
  94.  
  95. VectorNumber=1 : ParticlesNumber=3
  96. result==make vector3(VectorNumber)
  97. set vector3 VectorNumber, -3, 0, 10
  98. position particles ParticlesNumber, VectorNumber
  99. set vector3 VectorNumber, 0, 0, 45
  100. rotate particles ParticlesNumber, VectorNumber
  101. set vector3 to particles position VectorNumber, ParticlesNumber
  102. set vector3 to particles rotation VectorNumber, ParticlesNumber
  103. rot#=z vector3(VectorNumber)
  104. result=delete vector3(VectorNumber)
  105.  
  106. return
  107.