| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- function CFruit(iX,iY,oSpriteSheet,oDim,iSpeed,iType,oAttachContainer){
- var _bSliced;
- var _iRadius;
- var _iShiftx;
- var _iShiftLeftX;
- var _iShiftRightX;
- var _iSpeed;
- var _iRunTime = 0;
- var _iRunFactor;
- var _iRotFactor;
- var _iRotFactorSlice1;
- var _iRotFactorSlice2;
- var _iRunTimeSlice1 = 0;
- var _iRunTimeSlice2 = 0;
- var _iSliceLenOffset;
- var _iType;
- var _oDim;
- var _vStartDir;
- var _oSprite;
- var _oSlice1;
- var _oSlice2;
- var _oThisFruit;
- var _oAttachContainer;
-
- this._init = function(iX,iY,oSpriteSheet,oDim,iSpeed,iType,oAttachContainer){
- _oAttachContainer = oAttachContainer;
- _oSprite = createSprite(oSpriteSheet, "idle",oDim.regX,oDim.regY,oDim.width,oDim.height);
- _oSprite.x = iX;
- _oSprite.y = iY;
- _oAttachContainer.addChild(_oSprite);
-
- _bSliced= false;
- _oDim = oDim;
- if(_oDim.width < _oDim.height){
- _iRadius = Math.floor(_oDim.width/2);
- }else{
- _iRadius = Math.floor(_oDim.height/2);
- }
- _iSliceLenOffset = Math.floor((_iRadius * 2) * 0.5);
- _iSliceLenOffset = Math.pow(_iSliceLenOffset,2);
- _iSpeed = iSpeed;
- _iRunFactor = _iSpeed/9;
- if(iX > (CANVAS_WIDTH/2) ){
- _iShiftx = randomFloatBetween(-0.5,0,2);
- }else{
- _iShiftx = randomFloatBetween(0,0.5,2);
- }
-
- _iRotFactor = randomFloatBetween(-MAX_FRUIT_ROT_SPEED,MAX_FRUIT_ROT_SPEED,2);
- _vStartDir = new CVector2(0,-1);
- _iType = iType;
- };
-
- this.unload = function(){
- _oAttachContainer.removeChild(_oSprite);
- };
-
- this.setInfoAfterSlice = function(){
- _bSliced = true;
-
- if(_oSprite.rotation > 90){
- _iRunTimeSlice1 = _iRunTime + (_iRunFactor*2);
- _iRunTimeSlice2 = _iRunTime - (_iRunFactor*2);
- _iShiftLeftX = _iShiftx + 0.1;
- _iShiftRightX = _iShiftx - 0.1;
- _iRotFactorSlice1 = _iRotFactor * 1.2;
- _iRotFactorSlice2 = -_iRotFactor * 1.2;
- }else{
- _iRunTimeSlice1 = _iRunTime - (_iRunFactor*2);
- _iRunTimeSlice2 = _iRunTime + (_iRunFactor*2);
- _iShiftLeftX = _iShiftx - 0.1;
- _iShiftRightX = _iShiftx + 0.1;
- _iRotFactorSlice1 = -_iRotFactor * 1.2;
- _iRotFactorSlice2 = _iRotFactor * 1.2;
- }
-
- if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
- playSound(s_aFruitSpliceSound[_iType],1,false);
- }
-
- };
-
- this.sliceDiagonalRight = function(){
- this.setInfoAfterSlice();
-
- _oSlice1 = createSprite(oSpriteSheet, "slice_1",oDim.regX,oDim.regY,oDim.width,oDim.height);
- _oSlice1.x = _oSprite.x;
- _oSlice1.y = _oSprite.y;
- _oSlice1.rotation =_oSprite.rotation;
- _oAttachContainer.addChild(_oSlice1);
-
- _oSlice2 = createSprite(oSpriteSheet, "slice_2",oDim.regX,oDim.regY,oDim.width,oDim.height);
- _oSlice2.x = _oSprite.x;
- _oSlice2.y = _oSprite.y;
- _oSlice2.rotation =_oSprite.rotation;
- _oAttachContainer.addChild(_oSlice2);
-
- _oThisFruit.unload();
- };
-
- this.sliceDiagonalLeft = function(){
- this.setInfoAfterSlice();
-
- _oSlice1 = createSprite(oSpriteSheet, "slice_3",oDim.regX,oDim.regY,oDim.width,oDim.height);
- _oSlice1.x = _oSprite.x;
- _oSlice1.y = _oSprite.y;
- _oSlice1.rotation =_oSprite.rotation;
- _oAttachContainer.addChild(_oSlice1);
-
- _oSlice2 = createSprite(oSpriteSheet, "slice_4",oDim.regX,oDim.regY,oDim.width,oDim.height);
- _oSlice2.x = _oSprite.x;
- _oSlice2.y = _oSprite.y;
- _oSlice2.rotation =_oSprite.rotation;
- _oAttachContainer.addChild(_oSlice2);
-
- _oThisFruit.unload();
- };
-
- this.sliceVertical = function(){
- this.setInfoAfterSlice();
-
- _oSlice1 = createSprite(oSpriteSheet, "slice_5",oDim.regX,oDim.regY,oDim.width,oDim.height);
- _oSlice1.x = _oSprite.x;
- _oSlice1.y = _oSprite.y;
- _oSlice1.rotation =_oSprite.rotation;
- _oAttachContainer.addChild(_oSlice1);
-
- _oSlice2 = createSprite(oSpriteSheet, "slice_6",oDim.regX,oDim.regY,oDim.width,oDim.height);
- _oSlice2.x = _oSprite.x;
- _oSlice2.y = _oSprite.y;
- _oSlice2.rotation =_oSprite.rotation;
- _oAttachContainer.addChild(_oSlice2);
-
- _oThisFruit.unload();
- };
-
- this.sliceHorizontal = function(){
- this.setInfoAfterSlice();
-
- _oSlice1 = createSprite(oSpriteSheet, "slice_7",oDim.regX,oDim.regY,oDim.width,oDim.height);
- _oSlice1.x = _oSprite.x;
- _oSlice1.y = _oSprite.y;
- _oSlice1.rotation =_oSprite.rotation;
- _oAttachContainer.addChild(_oSlice1);
-
- _oSlice2 = createSprite(oSpriteSheet, "slice_8",oDim.regX,oDim.regY,oDim.width,oDim.height);
- _oSlice2.x = _oSprite.x;
- _oSlice2.y = _oSprite.y;
- _oSlice2.rotation =_oSprite.rotation;
- _oAttachContainer.addChild(_oSlice2);
-
- _oThisFruit.unload();
- };
-
- this.getCenter = function(){
- return new CVector2(_oSprite.x,_oSprite.y);
- };
-
- this.getRadius = function(){
- return _iRadius;
- };
-
- this.getSliceOffset = function(){
- return _iSliceLenOffset;
- };
-
- this.getX = function(){
- return _oSprite.x;
- };
-
- this.getY = function(){
- return _oSprite.y;
- };
-
- this.getSprite = function(){
- return _oSprite;
- };
-
- this.getRotation = function(){
- return _oSprite.rotation;
- };
-
- this.getVectorDir = function(){
- return rotateVector2D(toRadian(-_oSprite.rotation),_vStartDir);
- };
-
- this.isSliced = function(){
- return _bSliced;
- };
-
- this.getType = function(){
- return _iType;
- };
-
- this.update = function(){
- _iRunTime += _iRunFactor;
- if(_bSliced === false){
- _oSprite.y = _oSprite.y - _iSpeed + _iRunTime * _iRunTime/1000;
- _oSprite.x = _oSprite.x + _iRunTime*0.1*_iShiftx;
- _oSprite.rotation += _iRotFactor;
- }else{
- _iRunTimeSlice1 += _iRunFactor;
- _oSlice1.y = _oSlice1.y - _iSpeed + _iRunTimeSlice1 * _iRunTimeSlice1/1000;
- _oSlice1.x = _oSlice1.x + _iRunTime*0.1*_iShiftLeftX;
- _oSlice1.rotation += _iRotFactorSlice1;
-
- _iRunTimeSlice2 += _iRunFactor;
- _oSlice2.y = _oSlice2.y - _iSpeed + _iRunTimeSlice2 * _iRunTimeSlice2/1000;
- _oSlice2.x = _oSlice2.x + _iRunTime*0.1*_iShiftRightX;
- _oSlice2.rotation += _iRotFactorSlice2;
-
- var iRemove = 0;
- if(_oSlice1.y > Y_START_FRUIT){
- _oAttachContainer.removeChild(_oSlice1);
- iRemove++;
- }
-
- if(_oSlice2.y > Y_START_FRUIT){
- _oAttachContainer.removeChild(_oSlice1);
- iRemove++;
- }
-
- if(iRemove === 2){
- s_oGame.removeSlices(this);
- }
- }
- };
-
- _oThisFruit = this;
-
- this._init(iX,iY,oSpriteSheet,oDim,iSpeed,iType,oAttachContainer);
- }
|