sumguytwitches

0zin vectors companions

Aug 28th, 2020
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //companion snake
  2. lock cent to facing:vector * 5.
  3. set c to 6.
  4. set vd to list().
  5. for i in range(c) vd:add(vecdraw(facing:starvector * 15, facing:vector, hsva(1,1,1,(c-i)/c), "", 1, true, ((c-i)/c) * 0.4 + 0.15, false)).
  6. set gr to 0.004. set rnd to 0.1. set dr to 0.02.
  7. set vd_v to facing:vector * random().
  8.  
  9. when true then {
  10. for i in range(c-1,0,1) {
  11. set col to vd[i-1]:color. set col:a to ((c-i)/c)^2. set vd[i]:color to col.
  12. set vd[i]:vec to (vd[i-1]:start - vd[i]:start) * 1.2.
  13. set vd[i]:start to vd[i-1]:start.
  14. }
  15. set vd_v to vd_v + (vd[0]:start-cent) * random() * -gr + V(random()-0.5,random()-0.5,random()-0.5) * rnd + vd_v:normalized*vd_v:sqrmagnitude * -dr.
  16. set vd[0]:vec to vd_v * 3.
  17. set vd[0]:start to vd[0]:start + vd_v.
  18. set vd[0]:color to hsva(min(1,vd_v:mag/2),1,1,1).
  19. return not rcs.
  20. }
  21.  
  22. //companion snake 2
  23. set vd2 to list().
  24. for i in range(c) vd2:add(vecdraw(facing:starvector * -15, facing:vector, hsva(1,1,1,(c-i)/c), "", 1, true, ((c-i)/c) * 0.4 + 0.1, false)).
  25. set gr2 to 0.02.set dr2 to 0.03.
  26. set vd_v2 to facing:vector.
  27.  
  28. when true then {
  29. for i in range(c-1,0,1) {
  30. set col to vd2[i-1]:color. set col:a to ((c-i)/c)^2. set vd2[i]:color to col.
  31. set vd2[i]:vec to (vd2[i-1]:start - vd2[i]:start) * 1.2.
  32. set vd2[i]:start to vd2[i-1]:start.
  33. }
  34. set vd_v2 to vd_v2 + (vd2[0]:start-vd[0]:start) * -gr2 + vd_v2:normalized*vd_v2:sqrmagnitude * -dr2.
  35. set vd2[0]:vec to vd_v2 * 3.
  36. set vd2[0]:start to vd2[0]:start + vd_v2.
  37. set vd2[0]:color to hsva(min(1,vd_v2:mag/2),1,1,1).
  38. return not rcs.
  39. }
  40.  
  41. //bouncer
  42. when body:geopositionof(vd[0]:start):terrainheight > (vd[0]:start-body:position):mag - body:radius then { set vd_v to up:vector * vd_v:mag. return not rcs. }
  43. when body:geopositionof(vd2[0]:start):terrainheight > (vd2[0]:start-body:position):mag - body:radius then { set vd_v2 to up:vector * vd_v2:mag. return not rcs. }
  44.  
Add Comment
Please, Sign In to add comment