CInterface.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. function CInterface(){
  2. var _oLifeText;
  3. var _oButExit;
  4. var _oScoreText;
  5. var _oLifeIcon;
  6. var _oLifeContainer;
  7. var _oScoreContainer;
  8. var _oAudioToggle;
  9. var _oButFullscreen;
  10. var _fRequestFullScreen = null;
  11. var _fCancelFullScreen = null;
  12. var _pStartPosExit;
  13. var _pStartPosAudio;
  14. var _pStartPosLife;
  15. var _pStartPosLifeIcon;
  16. var _pStartPosScore;
  17. var _pStartPosFullscreen;
  18. this._init = function(){
  19. _pStartPosLifeIcon = {x:20,y:20};
  20. _oLifeIcon = new createBitmap(s_oSpriteLibrary.getSprite('life'));
  21. _oLifeIcon.x = 20;
  22. _oLifeIcon.y = 20;
  23. s_oStage.addChild(_oLifeIcon);
  24. _pStartPosLife = {x:150,y:45};
  25. _oLifeContainer = new createjs.Container();
  26. _oLifeContainer.x = _pStartPosLife.x;
  27. _oLifeContainer.y = _pStartPosLife.y;
  28. s_oStage.addChild(_oLifeContainer);
  29. var iWidth = 100;
  30. var iHeight = 50;
  31. var iX = 0;
  32. var iY = 0;
  33. _oLifeText = new CTLText(_oLifeContainer,
  34. iX-iWidth/2, iY-iHeight/2, iWidth, iHeight,
  35. 40, "left", FONT_COLOR, FONT_GAME, 1,
  36. 2, 2,
  37. sprintf(TEXT_MULTIPLIER_LIFE, NUM_LIVES),
  38. true, true, false,
  39. false );
  40. _oLifeText.setShadow("#000", 2,2,2);
  41. _pStartPosScore = {x:CANVAS_WIDTH/2,y:45};
  42. _oScoreContainer = new createjs.Container();
  43. _oScoreContainer.x = _pStartPosScore.x;
  44. _oScoreContainer.y = _pStartPosScore.y;
  45. s_oStage.addChild(_oScoreContainer);
  46. var iWidth = 200;
  47. var iHeight = 50;
  48. var iX = 0;
  49. var iY = 0;
  50. _oScoreText = new CTLText(_oScoreContainer,
  51. iX-iWidth/2, iY-iHeight/2, iWidth, iHeight,
  52. 40, "center", FONT_COLOR, FONT_GAME, 1,
  53. 2, 2,
  54. sprintf(TEXT_SCORE, 0),
  55. true, true, false,
  56. false );
  57. _oScoreText.setShadow("#000", 2,2,2);
  58. var oSprite = s_oSpriteLibrary.getSprite('but_exit');
  59. _pStartPosExit = {x: CANVAS_WIDTH - (oSprite.height/2)- 10, y: (oSprite.height/2) + 10};
  60. _oButExit = new CGfxButton(_pStartPosExit.x, _pStartPosExit.y, oSprite, s_oStage);
  61. _oButExit.addEventListener(ON_MOUSE_UP, this._onExit, this);
  62. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  63. var oSprite = s_oSpriteLibrary.getSprite('audio_icon');
  64. _pStartPosAudio = {x: _pStartPosExit.x - oSprite.width/2 - 10, y: (oSprite.height/2) + 10};
  65. _oAudioToggle = new CToggle(_pStartPosAudio.x,_pStartPosAudio.y,oSprite,s_bAudioActive,s_oStage);
  66. _oAudioToggle.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
  67. _pStartPosFullscreen = {x:_pStartPosAudio.x - oSprite.width/2 - 10,y:_pStartPosAudio.y};
  68. }else{
  69. _pStartPosFullscreen = {x: _pStartPosExit.x - oSprite.width - 10, y: (oSprite.height/2) + 10};
  70. }
  71. var doc = window.document;
  72. var docEl = doc.documentElement;
  73. _fRequestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
  74. _fCancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
  75. if(ENABLE_FULLSCREEN === false){
  76. _fRequestFullScreen = false;
  77. }
  78. if (_fRequestFullScreen && screenfull.isEnabled){
  79. oSprite = s_oSpriteLibrary.getSprite('but_fullscreen');
  80. _oButFullscreen = new CToggle(_pStartPosFullscreen.x,_pStartPosFullscreen.y,oSprite,s_bFullscreen,s_oStage);
  81. _oButFullscreen.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this);
  82. }
  83. this.refreshButtonPos(s_iOffsetX,s_iOffsetY);
  84. };
  85. this.refreshButtonPos = function(iNewX,iNewY){
  86. _oButExit.setPosition(_pStartPosExit.x - iNewX,iNewY + _pStartPosExit.y);
  87. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  88. _oAudioToggle.setPosition(_pStartPosAudio.x - iNewX,iNewY + _pStartPosAudio.y);
  89. }
  90. if (_fRequestFullScreen && screenfull.isEnabled){
  91. _oButFullscreen.setPosition(_pStartPosFullscreen.x - iNewX,_pStartPosFullscreen.y + iNewY);
  92. }
  93. _oLifeIcon.x = _pStartPosLifeIcon.x + iNewX;
  94. _oLifeIcon.y = _pStartPosLifeIcon.y + iNewY;
  95. _oLifeContainer.x = _pStartPosLife.x + iNewX;
  96. _oLifeContainer.y = _pStartPosLife.y + iNewY;
  97. _oScoreContainer.y = _pStartPosScore.y + iNewY;
  98. };
  99. this.unload = function(){
  100. _oButExit.unload();
  101. _oButExit = null;
  102. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  103. _oAudioToggle.unload();
  104. _oAudioToggle = null;
  105. }
  106. if (_fRequestFullScreen && screenfull.isEnabled){
  107. _oButFullscreen.unload();
  108. }
  109. s_oInterface = null
  110. };
  111. this.loseLife = function(iLives){
  112. _oLifeText.refreshText(sprintf(TEXT_MULTIPLIER_LIFE, iLives));
  113. };
  114. this.refreshScore = function(iScore){
  115. _oScoreText.refreshText( sprintf(TEXT_SCORE, iScore) );
  116. };
  117. this._onAudioToggle = function(){
  118. Howler.mute(s_bAudioActive);
  119. s_bAudioActive = !s_bAudioActive;
  120. };
  121. this.resetFullscreenBut = function(){
  122. if (_fRequestFullScreen && screenfull.isEnabled){
  123. _oButFullscreen.setActive(s_bFullscreen);
  124. }
  125. };
  126. this._onFullscreenRelease = function(){
  127. if(s_bFullscreen) {
  128. _fCancelFullScreen.call(window.document);
  129. }else{
  130. _fRequestFullScreen.call(window.document.documentElement);
  131. }
  132. sizeHandler();
  133. };
  134. this._onExit = function(){
  135. s_oGame.onExit();
  136. };
  137. s_oInterface = this;
  138. this._init();
  139. return this;
  140. }
  141. var s_oInterface = null;