Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. Ship s;
  2.  
  3. void setup()
  4. {
  5. size(900, 800);
  6. frameRate(60);
  7.  
  8. stroke(255);
  9. strokeWeight(2);
  10. s = new Ship(width/2, height/2, 15);
  11.  
  12. fill(51,20);
  13. }
  14.  
  15. void draw()
  16. {
  17. rect(0,0,width,height);
  18. s.update();
  19. s.display();
  20. }
  21.  
  22. class Ship
  23. {
  24. final float turnSpeed = radians(4);
  25. final float moveSpeed = 6;
  26. float angle;
  27. int len;
  28.  
  29. PVector pos;
  30. PVector vel = new PVector(0, 0);
  31. PVector acc = new PVector(0, 0);
  32.  
  33. Ship(float x, float y, int len)
  34. {
  35. pos = new PVector(x, y);
  36. this.len = len;
  37. }
  38.  
  39. void turn()
  40. {
  41. if (keys[0])
  42. angle += turnSpeed;
  43. if (keys[1])
  44. angle -= turnSpeed;
  45. }
  46.  
  47. void move()
  48. {
  49. if (keys[2]) {
  50. vel.set(moveSpeed * sin(-angle), moveSpeed * cos(-angle));
  51. }
  52. }
  53.  
  54. void addVectors()
  55. {
  56. pos.add(vel);
  57. vel.add(acc);
  58. }
  59.  
  60. void deAccel()
  61. {
  62. float deAccel = 0.06;
  63. acc.set(-vel.x * deAccel, -vel.y * deAccel);
  64. }
  65.  
  66. void update()
  67. {
  68. turn();
  69. move();
  70. addVectors();
  71. deAccel();
  72. }
  73.  
  74. void display()
  75. {
  76. pushMatrix();
  77. translate(pos.x, pos.y);
  78. rotate(angle);
  79. line(0, 0, 0, len);
  80. popMatrix();
  81. }
  82. }
  83.  
  84. boolean[] keys = {false, false, false};
  85. void keyPressed()
  86. {
  87. if (key == 'd')
  88. keys[0] = true;
  89. else if (key == 'a')
  90. keys[1] = true;
  91. else if (key == 'w')
  92. keys[2] = true;
  93. }
  94.  
  95. void keyReleased()
  96. {
  97. if (key == 'd')
  98. keys[0] = false;
  99. else if (key == 'a')
  100. keys[1] = false;
  101. else if (key == 'w')
  102. keys[2] = false;
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement