Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2019
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //create
  2. w=40 //width of dots
  3. m=100 //mass
  4. md=1 //minimum distance
  5. ex=10 //exceleration
  6. cs=32 //centering speed
  7. vd=1.00 //velocity devider
  8. z=2 //zoom
  9. pd=false //pixelated display (slower)
  10. pxe=true //pixel editor
  11. loop=true //recomended true
  12. rt=1 //retest size (not functional)
  13. avvelo=true //use centering
  14.  
  15. //actual code again
  16. //UI values
  17. go=false
  18. vu=3
  19. vr=3
  20. cm=0.125
  21. ts=1
  22. da=1
  23. ored=255
  24. oblue=255
  25. ogreen=255
  26. //other
  27. n=0 //number of points
  28. mxn=0 //maximum points
  29. rgbr=260 //rgb right
  30. rgbs=64 //rgb size
  31. rgbp=8 //rgb spacings
  32. menus=44 //menu size
  33. uih=24 //UI height
  34. colr=c_white
  35. mosx=0
  36. mosy=view_hview+width
  37. mexists=false
  38. menu="Hide"
  39. //zoom
  40. w/=z
  41. m/=z
  42. md/=z
  43. //pxe setup
  44. if (pxe=true)
  45. {
  46. var i;
  47. for (i=0;i<=floor(view_wview/w);i+=1)
  48. {
  49.     var l;
  50.     for (l=0;l<=floor(view_hview/w);l+=1)
  51.     {
  52.         pxl[i,l]=false
  53.     }
  54. }
  55. }
  56. //option titles and other things
  57. op=1
  58. opp=1
  59. opn=6
  60. opt[1,1]="Curser Mass" oppn[1]=1
  61. opt[2,1]="Velocity Up" oppn[2]=2
  62. opt[2,2]="Velocity Right"
  63. opt[3,1]="Red Value" oppn[3]=3
  64. opt[3,2]="Green Value"
  65. opt[3,3]="Blue Value"
  66. opt[4,1]="Time Speed" oppn[4]=1
  67. opt[5,1]="Dot Amount" oppn[5]=1
  68. opt[6,1]="Number of Dots" oppn[6]=1
  69. #define step
  70. if (mexists=true)
  71. {mosx=mouse_x; mosy=mouse_y;}
  72. else
  73. if(mouse_check_button_pressed(mb_left))
  74. {mexists=true; mosx=mouse_x; mosy=mouse_y;}
  75. if (keyboard_check_pressed(vk_space))
  76. {
  77. if (go=false)
  78. {
  79.     go=true
  80.     if (pxe=true)
  81.     {
  82.     var i;
  83.     for (i=0;i<=floor(view_wview/w);i+=1)
  84.     {
  85.         var l;
  86.         for (l=0;l<=floor(view_hview/w);l+=1)
  87.         {
  88.             pxl[i,l]=false
  89.         }
  90.     }
  91.     }
  92. }
  93. else {go=false}
  94. }
  95. if!(mosy<=24)
  96. {
  97. px[0]=mosx;
  98. py[0]=mosy;
  99. col[0]=colr;
  100. }
  101. //point code
  102. if (go=true)
  103. {
  104. var s;
  105. for (s=1;s<=ts;s+=1)
  106. {
  107. //new velocities
  108. var i;
  109. for (i=1;i<=n;i+=1)
  110. {
  111.     nvx[i]=0
  112.     nvy[i]=0
  113.     var l;
  114.     for (l=0;l<=n;l+=1)
  115.     {
  116.         if(l=0) {m*=cm}
  117.         if(l!=i)
  118.         {
  119.             ri=px[l]-px[i]; //right distance
  120.             up=py[l]-py[i]; //up distance
  121.             d=sqrt(sqr(ri)+sqr(up)); //actual distance
  122.             if (d<md) {d=md}
  123.             f=m/(d/md); //force
  124.             nvx[i]+=(f/d)*ri
  125.             nvy[i]+=(f/d)*up
  126.         }
  127.         if(l=0) {m/=cm}
  128.     }
  129.     vx[i]=(vx[i]+nvx[i]/ex)
  130.     vy[i]=(vy[i]+nvy[i]/ex)
  131.     vx[i]/=vd
  132.     vy[i]/=vd
  133. }
  134. //new locations
  135. var i;
  136. for (i=1;i<=n;i+=1)
  137. {
  138.  
  139.     px[i]+=vx[i]/ex;
  140.     py[i]+=vy[i]/ex;
  141.     if(loop=true)
  142.     {
  143.         while (px[i]>view_wview) {px[i]-=view_wview}
  144.         while (py[i]>view_hview) {py[i]-=view_hview}
  145.         while (px[i]<0) {px[i]+=view_wview}
  146.         while (py[i]<0) {py[i]+=view_hview}
  147.     }
  148. }
  149. //averages
  150. if (avvelo=true)
  151. {
  152. avx=0;
  153. avy=0;
  154. for (i=1;i<=n;i+=1)
  155. {
  156.     avx+=vx[i];
  157.     avy+=vy[i];
  158. }
  159. avx/=n;
  160. avy/=n;
  161. for (i=1;i<=n;i+=1)
  162. {
  163.     vx[i]-=avx/cs;
  164.     vy[i]-=avy/cs;
  165. }
  166. avx=0;
  167. avy=0;
  168. for (i=1;i<=n;i+=1)
  169. {
  170.     avx+=px[i];
  171.     avy+=py[i];
  172. }
  173. avx/=n;
  174. avy/=n;
  175. for (i=1;i<=n;i+=1)
  176. {
  177.     px[i]+=(view_wview/2-avx)/cs;
  178.     py[i]+=(view_hview/2-avy)/cs;
  179. }
  180. }
  181.  
  182. } //timespeed end
  183. } //go end
  184.  
  185. //options
  186. if!(mosy<=24)
  187. {
  188. if (keyboard_check_pressed(vk_right)) {op+=1}
  189. if (keyboard_check_pressed(vk_left)) {op-=1}
  190. if(op<1) {op=opn}
  191. if(op>opn) {op=1}
  192. if (keyboard_check_pressed(vk_up)) {opp+=1}
  193. if (keyboard_check_pressed(vk_down)) {opp-=1}
  194. if(opp<1) {opp=oppn[op]}
  195. if(opp>oppn[op]) {opp=1}
  196. if(op=1)
  197. {
  198.     if (mouse_wheel_up()) {cm*=2}
  199.     if (mouse_wheel_down()) {cm/=2}
  200. }
  201. if(op=2)
  202. {
  203.     if (opp=1) {
  204.     if (mouse_wheel_up()) {vu*=2 vu+=1}
  205.     if (mouse_wheel_down()) {vu-=1 vu/=2} }
  206.     if (opp=2) {
  207.     if (mouse_wheel_up()) {vr*=2 vr+=1}
  208.     if (mouse_wheel_down()) {vr-=1 vr/=2} }
  209.    
  210. }
  211. if(op=3)
  212. {
  213.     if (opp=1) {
  214.     if (mouse_wheel_up()&&ored<=240) {ored+=15}
  215.     if (mouse_wheel_down()&&ored>=15) {ored-=15} }
  216.     if (opp=2) {
  217.     if (mouse_wheel_up()&&ogreen<=240) {ogreen+=15}
  218.     if (mouse_wheel_down()&&ogreen>=15) {ogreen-=15} }
  219.     if (opp=3) {
  220.     if (mouse_wheel_up()&&oblue<=240) {oblue+=15}
  221.     if (mouse_wheel_down()&&oblue>=15) {oblue-=15} }
  222. }
  223. if(op=4)
  224. {
  225.     if (mouse_wheel_up()) {ts*=2}
  226.     if (mouse_wheel_down()&&ts>1) {ts/=2}
  227. }
  228. if(op=5)
  229. {
  230.     if (mouse_wheel_up()) {da*=2}
  231.     if (mouse_wheel_down()&&da>1) {da/=2}
  232. }
  233. if(op=6)
  234. {
  235.     if (mouse_wheel_up()&&n>mxn/2) {n=mxn}
  236.     if (mouse_wheel_up()&&n<=mxn/2) {n*=2}
  237.     if (mouse_wheel_down()&&n>1) {n=ceil(n/2)}
  238. }
  239. //place point
  240. if(mouse_check_button_pressed(mb_left)&&(pxe=false||go=true))
  241. {
  242.     var s;
  243.     for(s=1;s<=da;s+=1)
  244.     {
  245.     n+=1;
  246.     mxn+=1;
  247.     rand=random_range(-1,1)
  248.     col[n]=colr;
  249.     px[n]=mosx; py[n]=mosy; vx[n]=(vr+rand)/z; vy[n]=-(vu+rand)/z;
  250.     }
  251. }
  252. //pixelart
  253. if (pxe=true&&go=false)
  254. {
  255. px[0]=w*floor(mosx/w)
  256. py[0]=w*floor(mosy/w)
  257. pxlx=floor(mosx/w)
  258. pxly=floor(mosy/w)
  259. if(mouse_check_button(mb_left)&&pxl[pxlx,pxly]=false)
  260. {
  261.     pxl[pxlx,pxly]=true
  262.     var s;
  263.     for(s=1;s<=da;s+=1)
  264.     {
  265.     n+=1;
  266.     mxn+=1;
  267.     rand=random_range(-1,1)
  268.     col[n]=colr;
  269.     px[n]=pxlx*w; py[n]=pxly*w; vx[n]=(vr+rand)/z; vy[n]=-(vu+rand)/z;
  270.     }
  271. }
  272. }
  273. }//mouse y end
  274. //rgb UI
  275. else
  276. {
  277.     if(mosx>=rgbr&&mosx<=rgbr+rgbs)
  278.     {
  279.         if (mouse_wheel_up()&&ored<=240) {ored+=15}
  280.         if (mouse_wheel_down()&&ored>=15) {ored-=15}
  281.         if (keyboard_check_pressed(vk_down)) {ored=0}
  282.         if (keyboard_check_pressed(vk_up)) {ored=255}
  283.     }
  284.     if(mosx>=rgbr+rgbs+rgbp&&mosx<=rgbr+rgbs*2+rgbp)
  285.     {
  286.         if (mouse_wheel_up()&&ogreen<=240) {ogreen+=15}
  287.         if (mouse_wheel_down()&&ogreen>=15) {ogreen-=15}
  288.         if (keyboard_check_pressed(vk_down)) {ogreen=0}
  289.         if (keyboard_check_pressed(vk_up)) {ogreen=255}
  290.     }
  291.     if(mosx>=rgbr+rgbs*2+rgbp*2&&mosx<=rgbr+rgbs*3+rgbp*2)
  292.     {
  293.         if (mouse_wheel_up()&&oblue<=240) {oblue+=15}
  294.         if (mouse_wheel_down()&&oblue>=15) {oblue-=15}
  295.         if (keyboard_check_pressed(vk_down)) {oblue=0}
  296.         if (keyboard_check_pressed(vk_up)) {oblue=255}
  297.     }
  298.     if(mouse_check_button_pressed(mb_left)&&mosx<=menus)
  299.     {
  300.         if(menu="Hide") {menu="Show"}
  301.         else {menu="Hide"}
  302.     }
  303. }
  304. //other
  305. colr=make_color_rgb(ored,ogreen,oblue);
  306. if (go=true) {time="ON"}
  307. if (go=false) {time="OFF"}
  308. if (ored<190&&ogreen<190&&oblue<190)
  309. {rgbcol=c_white}
  310. else {rgbcol=c_black}
  311. //option values
  312. opv[1,1]=cm
  313. opv[2,1]=vu
  314. opv[2,2]=vr
  315. opv[3,1]=ored
  316. opv[3,2]=ogreen
  317. opv[3,3]=oblue
  318. opv[4,1]=ts
  319. opv[5,1]=da
  320. opv[6,1]=n
  321. #define draw
  322. var i;
  323. if (pd=false)
  324. {
  325.     for (i=0;i<=n;i+=1)
  326.     {
  327.         draw_set_color(col[i])
  328.         draw_rectangle(px[i],py[i],px[i]+w,py[i]+w,false)
  329.     }
  330. }
  331. else
  332. {
  333.     for (i=0;i<=n;i+=1)
  334.     {
  335.         draw_set_color(col[i])
  336.         draw_rectangle(w*floor(px[i]/w),w*floor(py[i]/w),w*floor(1+px[i]/w),w*floor(1+py[i]/w),false)
  337.     }
  338. }
  339.  
  340. //User Interfase
  341. draw_set_color(c_gray)
  342. draw_rectangle(0,0,view_wview,uih,false)
  343. draw_set_color(make_color_rgb(64,64,64))
  344. draw_rectangle(0,0,menus,uih,false)
  345. //rgb UI
  346. draw_set_color(colr)
  347. draw_rectangle(rgbr,0,rgbr+rgbs,uih,false)
  348. draw_rectangle(rgbr+rgbs+rgbp,0,rgbr+rgbs*2+rgbp,uih,false)
  349. draw_rectangle(rgbr+rgbs*2+rgbp*2,0,rgbr+rgbs*3+rgbp*2,uih,false)
  350. draw_set_color(rgbcol)
  351. draw_set_halign(fa_center)
  352. draw_text(rgbr+rgbs/2,0,"R:"+ored)
  353. draw_text(rgbr+rgbs*1.5+rgbp,0,"G:"+ogreen)
  354. draw_text(rgbr+rgbs*2.5+rgbp*2,0,"B:"+oblue)
  355. //Text
  356. draw_set_color(c_white)
  357. draw_set_halign(fa_left)
  358. draw_line_width(0,uih,view_wview,uih,3)
  359. draw_text(rgbr+rgbs*3+rgbp*3+4,0,"Hover and Scroll to change RGB")
  360. draw_set_halign(fa_center)
  361. draw_text(menus/2,0,menu)
  362. draw_set_halign(fa_left)
  363. draw_text(menus+rgbp,0,"Click or Drag to place dots")
  364. if(menu="Hide")
  365. {
  366. draw_text(0,32,"Space to change Time: "+time)
  367. draw_text(0,64,"Scroll to change "+opt[op,opp]+": "+opv[op,opp])
  368. draw_text(0,96,"Left and Right for more options: Op. "+op)
  369. draw_text(0,128,"Number of dots: "+n)
  370. draw_text(0,160,"FPS: "+fps)
  371. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement