PartGenerator.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. PartGenerator = function (game, width, height, partIndex) {
  2. Phaser.Sprite.call(this, game, 0, 0 );
  3. game.add.existing(this);
  4. this.anchor.set( 0, 1 );
  5. var myInd = partIndex%2;
  6. if( width < scaleValue(60))
  7. myInd = 1;
  8. var renderGroup = this.game.add.group();
  9. this.offsetX = 0;
  10. var additionalWidth = 0;
  11. if( partIndex % 10 == 0 ){
  12. var left = renderGroup.create(scaleValue(2), 0,'sprites','Flag');
  13. left.anchor.set(0,0);
  14. var right = renderGroup.create(width+left.width*2-scaleValue(6), 0,'sprites','Flag');
  15. right.anchor.set(0,0);
  16. right.scale.set(-1,1);
  17. this.offsetX = left.width - scaleValue(2);
  18. additionalWidth = left.width*2 - scaleValue(4);
  19. }
  20. var renderTex = this.game.add.renderTexture( width+additionalWidth, height );
  21. this.loadTexture( renderTex );
  22. var shadowSize = width/8;
  23. if(shadowSize < scaleValue(5))
  24. shadowSize =scaleValue(5);
  25. if( myInd == 1 )
  26. {
  27. var left = renderGroup.create( this.offsetX, 0, 'sprites', 'part_1_1' );
  28. var center = renderGroup.create( this.offsetX + left.width, 0, 'sprites', 'part_1_2');
  29. center.scale.set( width-left.width*2, 1 );
  30. var right = renderGroup.create( this.offsetX + width - left.width, 0, 'sprites', 'part_1_1' );
  31. right.anchor.set( 1, 0);
  32. right.scale.set( -1, 1 );
  33. var offset = scaleValue(5);
  34. var size = scaleValue(10);
  35. var num = parseInt( (width - offset*2) / size );
  36. var total = num * size;
  37. for( var i = 0; i < num; i++ ){
  38. var zig = renderGroup.create( this.offsetX+offset+i*size, scaleValue(18), 'sprites', 'Zig');
  39. zig.scale.set( 0.7, 0.7 );
  40. }
  41. // sp.scale.set( width, 1 );
  42. // shadowSize = scaleValue(20);
  43. // var sp = renderGroup.create( this.offsetX, 0, 'sprites', 'partBase1' );
  44. // sp.scale.set( width, 1 );
  45. // var spacing = scaleValue(8)
  46. // var partWidth = scaleValue(26);
  47. // var space = width - shadowSize*2;
  48. // var parts = parseInt( space/(partWidth+spacing) );
  49. // var freeSpace = space - (parts * (partWidth+spacing));
  50. // for( var i = 0; i < parts; i++) {
  51. // var part = renderGroup.create( this.offsetX+shadowSize + freeSpace/2+scaleValue(3) + spacing/2 + i*(partWidth+spacing), scaleValue(1), 'sprites', 'partBase2Window' );
  52. // }
  53. // var leftPart = renderGroup.create( this.offsetX+shadowSize/2, scaleValue(1), 'sprites', 'partBase2Window' );
  54. // leftPart.anchor.set( 0.5, 0 );
  55. // leftPart.scale.set( 0.6, 1 );
  56. // var rightPart = renderGroup.create( this.offsetX+width-shadowSize/2, scaleValue(1), 'sprites', 'partBase2Window' );
  57. // rightPart.anchor.set( 0.5, 0 );
  58. // rightPart.scale.set( 0.6, 1 );
  59. }
  60. else if( myInd == 0)
  61. {
  62. // objects
  63. var numOfObjects = parseInt(width / scaleValue(30)) ;
  64. for( var i = 0; i < numOfObjects; i++ ){
  65. var object_index = this.game.rnd.integerInRange(1, 5);
  66. var obj = renderGroup.create(this.game.rnd.integerInRange(this.offsetX+scaleValue(10), this.offsetX+width-scaleValue(10)), 0, 'sprites', 'Object_'+object_index);
  67. if( object_index != 4 ){
  68. obj.y = scaleValue(32) - obj.height;
  69. }
  70. obj.scale.set( 1.2, 1.2 );
  71. }
  72. // generator
  73. var size = scaleValue(17);
  74. var halfWidth = width / 2;
  75. var x = this.offsetX + halfWidth;
  76. while( x > this.offsetX ){
  77. if( x-size <= this.offsetX) {
  78. var sp = renderGroup.create( this.offsetX, 0, 'sprites', 'part_2' );
  79. }else
  80. var sp = renderGroup.create( (x - size), 0, 'sprites', 'part_2' );
  81. x-=size;
  82. }
  83. var x = this.offsetX + halfWidth;
  84. while( x < this.offsetX+width ){
  85. var sp = renderGroup.create( x, 0, 'sprites', 'part_2' );
  86. if( x+size >= this.offsetX+width-scaleValue(15) ){
  87. var sp = renderGroup.create( this.offsetX+width - sp.width, 0, 'sprites', 'part_2' );
  88. break;
  89. }
  90. x+=size;
  91. }
  92. // var sp = renderGroup.create( this.offsetX, 0, 'sprites', 'partBase2' );
  93. // sp.scale.set( width,1 );
  94. // var cut1 = renderGroup.create( this.offsetX,0, 'sprites', 'partBase1A');
  95. // var long1 = renderGroup.create( this.offsetX+cut1.width-scaleValue(1),0, 'sprites', 'partBase1B');
  96. // long1.scale.set( shadowSize-cut1.width+scaleValue(1), 1 );
  97. // var cut2 = renderGroup.create( this.offsetX+shadowSize-scaleValue(1),0, 'sprites', 'partBase1A');
  98. // var long2 = renderGroup.create( cut2.x+cut2.width-scaleValue(1),0, 'sprites', 'partBase1B');
  99. // long2.scale.set( width-shadowSize-cut2.width+scaleValue(2), 1 );
  100. // var spacing = scaleValue(17)
  101. // var partWidth = scaleValue(20);
  102. // var space = width - shadowSize*2;
  103. // var parts = parseInt( space/(partWidth+spacing) );
  104. // var freeSpace = space - (parts * (partWidth+spacing));
  105. // for( var i = 0; i < parts; i++) {
  106. // var part = renderGroup.create( this.offsetX+shadowSize + freeSpace/2 + spacing/2 + i*(partWidth+spacing), scaleValue(16), 'sprites', 'partBase1Window' );
  107. // }
  108. // var leftPart = renderGroup.create( this.offsetX+shadowSize/2, scaleValue(16), 'sprites', 'partBase1Window' );
  109. // leftPart.anchor.set( 0.5, 0 );
  110. // leftPart.scale.set( shadowSize/scaleValue(30), 1 );
  111. // var rightPart = renderGroup.create( this.offsetX+width-shadowSize/2, scaleValue(16), 'sprites', 'partBase1Window' );
  112. // rightPart.anchor.set( 0.5, 0 );
  113. // rightPart.scale.set( shadowSize/scaleValue(30), 1 );
  114. }
  115. // var whiteAlpha = renderGroup.create(this.offsetX, 0, 'sprites', 'partAlphaWhite');
  116. // whiteAlpha.scale.set( shadowSize, 1 );
  117. // var blackAlpha = renderGroup.create(this.offsetX+width, 0, 'sprites', 'partAlphaBlack');
  118. // blackAlpha.scale.set( shadowSize, 1 );
  119. // blackAlpha.anchor.set( 1, 0 );
  120. renderTex.renderXY( renderGroup, 0 ,0 );
  121. renderGroup.destroy( true );
  122. };
  123. PartGenerator.prototype = Object.create(Phaser.Sprite.prototype);
  124. PartGenerator.prototype.constructor = PartGenerator;
  125. var p = PartGenerator.prototype;
  126. p.goAway = function() {
  127. var tween = this.game.add.tween( this );
  128. var rnd = this.game.rnd.integerInRange( 0, 1 );
  129. var targetX = scaleValue(320);
  130. if( rnd == 1 )
  131. targetX = -this.width;
  132. tween.to( {x: targetX}, 400, Phaser.Easing.Linear.None, true);
  133. tween.onComplete.add(function(){
  134. this.destroy();
  135. }, this);
  136. };