Advertisement
Guest User

Super Move [WIP]

a guest
Mar 27th, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. extern void object::Main()
  2. {
  3. smove(40);
  4. }
  5.  
  6. void object::smove(int dist) //move avoiding terrain difficulties
  7. {
  8. point p = chkpos(0, dist);
  9. while(distance2d(this.position, p)<dist)
  10. {
  11. if(chkifhgh(0, 1)==true){motor(-0.1,-0.1);adjhgh(7,8);}
  12. else{motor(1,1);adjhgh(5,6);}
  13. }
  14. }
  15.  
  16. void object::adjhgh(int min, int max)
  17. {
  18. while(this.altitude<min){jet(1);}
  19. while(this.altitude>max){jet(-1);}
  20. jet(0);
  21. }
  22.  
  23. point object::chkpos(int ang, int c)
  24. {
  25. if(ang>90 or ang<-90){ang = 0;}
  26.  
  27. int ori = this.orientation+ang, a, b;
  28. point p, t = this.position;
  29. if(0 <= ori && ori <= 90){ori = 90-ori; a = c*sin(ori); b = c*cos(ori); p.x=(t.x+a); p.y=(t.y+b);}
  30. if(90 <= ori && ori <= 180){ori = 180-ori;a = c*sin(ori); b = c*cos(ori); p.x=(t.x-a); p.y=(t.y+b);}
  31. if(180 <= ori && ori <= 270){ori = 270-ori;a = c*sin(ori); b = c*cos(ori); p.x=(t.x-a); p.y=(t.y-b);}
  32. if(270 <= ori && ori <= 360){ori = 360-ori;a = c*cos(ori); b = c*sin(ori); p.x=(t.x+a); p.y=(t.y-b);}
  33. return p;
  34. }
  35.  
  36. bool object::chkifhgh(int ang, int c)
  37. {
  38. if(ang>90 or ang<-90){ang = 0;}
  39.  
  40. int ori = this.orientation+ang, a, b;
  41. point p, t = this.position;
  42. if(0 <= ori && ori <= 90){ori = 90-ori; a = c*sin(ori); b = c*cos(ori); p.x=(t.x+a); p.y=(t.y+b);}
  43. if(90 <= ori && ori <= 180){ori = 180-ori;a = c*sin(ori); b = c*cos(ori); p.x=(t.x-a); p.y=(t.y+b);}
  44. if(180 <= ori && ori <= 270){ori = 270-ori;a = c*sin(ori); b = c*cos(ori); p.x=(t.x-a); p.y=(t.y-b);}
  45. if(270 <= ori && ori <= 360){ori = 360-ori;a = c*cos(ori); b = c*sin(ori); p.x=(t.x+a); p.y=(t.y-b);}
  46. if(topo(p)>this.altitude){return true;}
  47. else {return false;}
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement