waves.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. /*** Move ***/
  2. var MOVE = {
  3. translation : {
  4. init : function (x, y) {
  5. return {directionX : 1, directionY : 0};
  6. },
  7. move : function() {
  8. var offset = (PLAYGROUND_WIDTH - 16 * this.width) / 2;
  9. if (Math.abs((this.getOriginX() - this.getX())) >= offset) {
  10. this.directionX *= -1;
  11. this.y = (this.y + this.height / 4);
  12. }
  13. },
  14. },
  15. mirror : {
  16. init : function(x, y) {
  17. if( x < PLAYGROUND_WIDTH / 2 ) {
  18. return {directionX: -1, directionY: 0};
  19. }
  20. return {directionX: 1, directionY: 0};
  21. },
  22. move : function() {
  23. var offset = this.width / 2;
  24. if (Math.abs((this.getOriginX() - this.getX())) >= offset) {
  25. this.directionX *= -1;
  26. this.y = (this.y + this.height / 4);
  27. }
  28. },
  29. },
  30. half_part_rotation : {
  31. init : function (x, y) {
  32. return {directionX:0, directionY:0};
  33. },
  34. move : function () {
  35. var _this = $(this)[0],
  36. mid = PLAYGROUND_WIDTH / 2,
  37. center = _this.center,
  38. width = _this.width;
  39. if( this.directionX == 0 && this.directionY == 0 ) {
  40. center = {x: ( this.getOriginX() < mid ? PLAYGROUND_WIDTH / 4 : 3 * PLAYGROUND_WIDTH / 4), y: getAliensMidHeight() };
  41. width = distance(center, {x: this.x, y: this.y});
  42. var xAxis = {x: width, y: 0},
  43. current = {x: center.x - this.getOriginX(), y: center.y - this.getOriginY()},
  44. alpha = angle( xAxis, current );
  45. this.directionX = 0.01;
  46. this.directionY = alpha;
  47. $(this)[0].center = center;
  48. $(this)[0].width = width;
  49. }
  50. if( this.getOriginX() < mid ) {
  51. this.directionY = this.directionY + this.directionX;
  52. } else {
  53. this.directionY = this.directionY - this.directionX;
  54. }
  55. if( Math.abs(this.directionY) > 2 * Math.PI ) {
  56. this.directionY = 0;
  57. }
  58. center.y = center.y + 0.1;
  59. _this.center = center;
  60. this.x = center.x + width * Math.cos(this.directionY);
  61. this.y = center.y + width * Math.sin(this.directionY);
  62. }
  63. },
  64. rotation : {
  65. init : function (x, y) {
  66. return {directionX:0, directionY:0};
  67. },
  68. move : function () {
  69. var _this = $(this)[0],
  70. mid = PLAYGROUND_WIDTH / 2,
  71. center = _this.center,
  72. width = _this.width;
  73. if( this.directionX == 0 && this.directionY == 0 ) {
  74. center = {x: mid, y: getAliensMidHeight() };
  75. width = distance(center, {x: this.x, y: this.y});
  76. var xAxis = {x: width, y: 0},
  77. current = {x: center.x - this.getOriginX(), y: center.y - this.getOriginY()},
  78. alpha = angle( xAxis, current );
  79. this.directionX = 0.01;
  80. this.directionY = alpha;
  81. $(this)[0].center = center;
  82. $(this)[0].width = width;
  83. }
  84. this.directionY = this.directionY - this.directionX;
  85. if( Math.abs(this.directionY) > 2 * Math.PI ) {
  86. this.directionY = 0;
  87. }
  88. center.y = center.y + 0.1;
  89. _this.center = center;
  90. this.x = center.x + width * Math.cos(this.directionY);
  91. this.y = center.y + width * Math.sin(this.directionY);
  92. }
  93. },
  94. sinusoid : {
  95. init : function (x, y) {
  96. return {directionX : 1, directionY : 1};
  97. },
  98. move : function () {
  99. var offset = this.width / 2;
  100. if (Math.abs((this.getOriginX() - this.getX())) >= offset) {
  101. this.directionX *= -1;
  102. }
  103. if( Math.abs(this.getOriginY() - this.getY()) >= 3 * this.height ) {
  104. this.directionY *= -1;
  105. }
  106. }
  107. }
  108. };
  109. /*** Move - end ***/
  110. /*** Waves ***/
  111. var WAVES = [
  112. {
  113. wave : [
  114. [ ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1 ],
  115. [ ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1 ],
  116. [ ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1 ],
  117. [ ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1 ],
  118. [ ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1, ALIENS.alien1 ]
  119. ],
  120. move : MOVE.translation,
  121. bonus : [40, 20]
  122. },
  123. {
  124. wave : [ [ Alien, Alien, Alien, undefined, Alien, Alien, Alien ],
  125. [ Alien, Alien, Alien, Alien, undefined, Alien, Alien, Alien ],
  126. [ Alien, Alien, Alien, Alien, undefined, Alien, Alien, Alien, Alien ],
  127. [ Alien, Alien, Alien, Alien, undefined, Alien, Alien, Alien, Alien, Alien ],
  128. [ Alien, Alien, Alien, Alien, Alien, undefined, Alien, Alien, Alien, Alien, Alien ]
  129. ],
  130. move : MOVE.mirror,
  131. bonus : [30, 15]
  132. },
  133. {
  134. wave : [ [ undefined, undefined, Alien, undefined, undefined, undefined, undefined, undefined, Alien, undefined, undefined ],
  135. [ undefined, Alien, Alien, Alien, undefined, undefined, undefined, Alien, Alien, Alien, undefined ],
  136. [ Alien, Alien, undefined, Alien, Alien, undefined, Alien, Alien, undefined, Alien, Alien ],
  137. [ undefined, Alien, Alien, Alien, Alien, undefined, undefined, Alien, Alien, Alien, undefined ],
  138. [ undefined, undefined, Alien, undefined, undefined, undefined, undefined, undefined, Alien, undefined, undefined ]
  139. ],
  140. move : MOVE.half_part_rotation,
  141. bonus : [20, 10]
  142. },
  143. {
  144. wave : [
  145. [ undefined, undefined, undefined, undefined, Alien, undefined, undefined, undefined, undefined ],
  146. [ undefined, undefined, undefined, Alien, Alien, Alien, undefined, undefined, undefined ],
  147. [ undefined, Alien, Alien, Alien, undefined, Alien, Alien, Alien, undefined ],
  148. [ undefined, Alien, Alien, Alien, undefined, Alien, Alien, Alien, undefined ],
  149. [ Alien, Alien, Alien, undefined, undefined, undefined, Alien, Alien, Alien ],
  150. [ undefined, Alien, Alien, Alien, undefined, Alien, Alien, Alien, undefined ],
  151. [ undefined, Alien, Alien, Alien, undefined, Alien, Alien, Alien, undefined ],
  152. [ undefined, undefined, undefined, Alien, Alien, Alien, undefined, undefined, undefined ],
  153. [ undefined, undefined, undefined, undefined, Alien, undefined, undefined, undefined, undefined ]
  154. ],
  155. move : MOVE.rotation,
  156. bonus : [25, 12]
  157. }
  158. ];
  159. /*** Waves - end ***/