123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- PartGenerator = function (game, width, height, partIndex) {
- Phaser.Sprite.call(this, game, 0, 0 );
- game.add.existing(this);
- this.anchor.set( 0, 1 );
- var myInd = partIndex%2;
- if( width < scaleValue(60))
- myInd = 1;
- var renderGroup = this.game.add.group();
- this.offsetX = 0;
- var additionalWidth = 0;
- if( partIndex % 10 == 0 ){
- var left = renderGroup.create(scaleValue(2), 0,'sprites','Flag');
- left.anchor.set(0,0);
- var right = renderGroup.create(width+left.width*2-scaleValue(6), 0,'sprites','Flag');
- right.anchor.set(0,0);
- right.scale.set(-1,1);
- this.offsetX = left.width - scaleValue(2);
- additionalWidth = left.width*2 - scaleValue(4);
- }
- var renderTex = this.game.add.renderTexture( width+additionalWidth, height );
- this.loadTexture( renderTex );
- var shadowSize = width/8;
- if(shadowSize < scaleValue(5))
- shadowSize =scaleValue(5);
- if( myInd == 1 )
- {
- var left = renderGroup.create( this.offsetX, 0, 'sprites', 'part_1_1' );
- var center = renderGroup.create( this.offsetX + left.width, 0, 'sprites', 'part_1_2');
- center.scale.set( width-left.width*2, 1 );
- var right = renderGroup.create( this.offsetX + width - left.width, 0, 'sprites', 'part_1_1' );
- right.anchor.set( 1, 0);
- right.scale.set( -1, 1 );
- var offset = scaleValue(5);
- var size = scaleValue(10);
- var num = parseInt( (width - offset*2) / size );
- var total = num * size;
- for( var i = 0; i < num; i++ ){
- var zig = renderGroup.create( this.offsetX+offset+i*size, scaleValue(18), 'sprites', 'Zig');
- zig.scale.set( 0.7, 0.7 );
- }
- // sp.scale.set( width, 1 );
- // shadowSize = scaleValue(20);
- // var sp = renderGroup.create( this.offsetX, 0, 'sprites', 'partBase1' );
- // sp.scale.set( width, 1 );
- // var spacing = scaleValue(8)
- // var partWidth = scaleValue(26);
- // var space = width - shadowSize*2;
- // var parts = parseInt( space/(partWidth+spacing) );
- // var freeSpace = space - (parts * (partWidth+spacing));
- // for( var i = 0; i < parts; i++) {
- // var part = renderGroup.create( this.offsetX+shadowSize + freeSpace/2+scaleValue(3) + spacing/2 + i*(partWidth+spacing), scaleValue(1), 'sprites', 'partBase2Window' );
- // }
- // var leftPart = renderGroup.create( this.offsetX+shadowSize/2, scaleValue(1), 'sprites', 'partBase2Window' );
- // leftPart.anchor.set( 0.5, 0 );
- // leftPart.scale.set( 0.6, 1 );
- // var rightPart = renderGroup.create( this.offsetX+width-shadowSize/2, scaleValue(1), 'sprites', 'partBase2Window' );
- // rightPart.anchor.set( 0.5, 0 );
- // rightPart.scale.set( 0.6, 1 );
- }
- else if( myInd == 0)
- {
- // objects
- var numOfObjects = parseInt(width / scaleValue(30)) ;
- for( var i = 0; i < numOfObjects; i++ ){
- var object_index = this.game.rnd.integerInRange(1, 5);
- var obj = renderGroup.create(this.game.rnd.integerInRange(this.offsetX+scaleValue(10), this.offsetX+width-scaleValue(10)), 0, 'sprites', 'Object_'+object_index);
- if( object_index != 4 ){
- obj.y = scaleValue(32) - obj.height;
- }
- obj.scale.set( 1.2, 1.2 );
- }
- // generator
- var size = scaleValue(17);
- var halfWidth = width / 2;
- var x = this.offsetX + halfWidth;
- while( x > this.offsetX ){
- if( x-size <= this.offsetX) {
- var sp = renderGroup.create( this.offsetX, 0, 'sprites', 'part_2' );
- }else
- var sp = renderGroup.create( (x - size), 0, 'sprites', 'part_2' );
- x-=size;
- }
- var x = this.offsetX + halfWidth;
- while( x < this.offsetX+width ){
- var sp = renderGroup.create( x, 0, 'sprites', 'part_2' );
- if( x+size >= this.offsetX+width-scaleValue(15) ){
- var sp = renderGroup.create( this.offsetX+width - sp.width, 0, 'sprites', 'part_2' );
- break;
- }
- x+=size;
- }
- // var sp = renderGroup.create( this.offsetX, 0, 'sprites', 'partBase2' );
- // sp.scale.set( width,1 );
- // var cut1 = renderGroup.create( this.offsetX,0, 'sprites', 'partBase1A');
- // var long1 = renderGroup.create( this.offsetX+cut1.width-scaleValue(1),0, 'sprites', 'partBase1B');
- // long1.scale.set( shadowSize-cut1.width+scaleValue(1), 1 );
- // var cut2 = renderGroup.create( this.offsetX+shadowSize-scaleValue(1),0, 'sprites', 'partBase1A');
- // var long2 = renderGroup.create( cut2.x+cut2.width-scaleValue(1),0, 'sprites', 'partBase1B');
- // long2.scale.set( width-shadowSize-cut2.width+scaleValue(2), 1 );
- // var spacing = scaleValue(17)
- // var partWidth = scaleValue(20);
- // var space = width - shadowSize*2;
- // var parts = parseInt( space/(partWidth+spacing) );
- // var freeSpace = space - (parts * (partWidth+spacing));
- // for( var i = 0; i < parts; i++) {
- // var part = renderGroup.create( this.offsetX+shadowSize + freeSpace/2 + spacing/2 + i*(partWidth+spacing), scaleValue(16), 'sprites', 'partBase1Window' );
- // }
- // var leftPart = renderGroup.create( this.offsetX+shadowSize/2, scaleValue(16), 'sprites', 'partBase1Window' );
- // leftPart.anchor.set( 0.5, 0 );
- // leftPart.scale.set( shadowSize/scaleValue(30), 1 );
- // var rightPart = renderGroup.create( this.offsetX+width-shadowSize/2, scaleValue(16), 'sprites', 'partBase1Window' );
- // rightPart.anchor.set( 0.5, 0 );
- // rightPart.scale.set( shadowSize/scaleValue(30), 1 );
- }
- // var whiteAlpha = renderGroup.create(this.offsetX, 0, 'sprites', 'partAlphaWhite');
- // whiteAlpha.scale.set( shadowSize, 1 );
- // var blackAlpha = renderGroup.create(this.offsetX+width, 0, 'sprites', 'partAlphaBlack');
- // blackAlpha.scale.set( shadowSize, 1 );
- // blackAlpha.anchor.set( 1, 0 );
- renderTex.renderXY( renderGroup, 0 ,0 );
- renderGroup.destroy( true );
- };
- PartGenerator.prototype = Object.create(Phaser.Sprite.prototype);
- PartGenerator.prototype.constructor = PartGenerator;
- var p = PartGenerator.prototype;
- p.goAway = function() {
- var tween = this.game.add.tween( this );
- var rnd = this.game.rnd.integerInRange( 0, 1 );
- var targetX = scaleValue(320);
- if( rnd == 1 )
- targetX = -this.width;
- tween.to( {x: targetX}, 400, Phaser.Easing.Linear.None, true);
- tween.onComplete.add(function(){
- this.destroy();
- }, this);
- };
|