{
   "name" : "Boids Example",
   "author" : "xffff",
   "description" : "Example of BoidRoids in use",
   "ancestor_list" : [],
   "labels" : [
      "example",
      "boids",
      "port",
      "swarming"
   ],
   "is_private" : null,
   "id" : "1-4RZ",
   "code" : "// quick example to show use of BoidRoids class\r\n\r\n(\r\nvar numboids, boids, run, w, m, boidcolour, maxvel;\r\n\r\nnumboids = 100;\r\nrun=true;\r\nboids=BoidRoids(numboids);\r\nboids.separation(0.5);\r\nboids.alignment(0.3);\r\nboids.coherence(0.5);\r\nboids.inertia(0.3);\r\nboids.friction(0.5);\r\nboids.septhresh(0.02);\r\nmaxvel = 0.75;\r\nboids.maxvel(maxvel);\r\nboids.gravity(0.25);\r\nboids.gravpoint(0.5,0.5);\r\n\r\nboidcolour = Array.fill(numboids,{Color.rand});\r\n\r\nw = Window.new.front;\r\nw.view.background_(Color.white);\r\n\r\nw.drawFunc = {\r\n\tvar theseboids = boids.getBoids;\r\n\tnumboids.do{ |i|\r\n\t\tQPen.fillColor = boidcolour[i];\r\n\t\tQPen.use{\r\n\t\t\tQPen.fillOval(\r\n\t\t\t\tRect(theseboids[i][0].linlin(0,1,0,400),\r\n\t\t\t\t\ttheseboids[i][1].linlin(0,1,0,400),\r\n\t\t\t\t\ttheseboids[i][2].linlin(0,maxvel/2,10,100),\r\n\t\t\t\t\ttheseboids[i][3].linlin(0,maxvel/2,10,100))\r\n\t\t\t);\r\n\t\t\tQPen.perform(\\fill);\r\n\t\t};\r\n\t};\r\n};\r\n{ while { run } { w.refresh; (1/24).wait;} }.fork(AppClock);\r\nw.onClose_({run=false});\r\n)"
}
