CTeamChoose.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. function CTeamChoose() {
  2. var _pStartPosAudio;
  3. var _pStartPosExit;
  4. var _pStartPosContinue;
  5. var _pStartPosFullscreen;
  6. var _oBg;
  7. var _oButContinue;
  8. var _oContTextSelectTeam;
  9. var _oContTextSelectOppTeam;
  10. var _oContTextYourTeam;
  11. var _oContTextOppTeam;
  12. var _oFade;
  13. var _oLoadingScreen = null;
  14. var _oAudioToggle;
  15. var _oButFullscreen;
  16. var _fRequestFullScreen = null;
  17. var _fCancelFullScreen = null;
  18. var _oButExit;
  19. var _oPlayerFlagSelect;
  20. var _oOpponentFlagSelect;
  21. var _oContainer;
  22. var _oYourTeamText;
  23. var _oOppTeamText;
  24. var _oYourTeamTextStroke;
  25. var _oOppTeamTextStroke;
  26. var _aPlayerTeamFlag;
  27. var _aOpponentTeamFlag;
  28. var _aTeamText;
  29. var _iActivePlayerTeam;
  30. var _iActiveOpponentTeam;
  31. this._init = function () {
  32. _oBg = createBitmap(s_oSpriteLibrary.getSprite('bg_select_team'));
  33. s_oStage.addChild(_oBg);
  34. _aTeamText = new Array();
  35. _oContainer = new createjs.Container();
  36. _iActivePlayerTeam = 0;
  37. _iActiveOpponentTeam = TEXT_TEAM.length - 1;
  38. var iTimeAnim = 1500;
  39. _aPlayerTeamFlag = this.createFlagSelection(PLAYER_SELECTION_FLAG_START_POS.x, PLAYER_SELECTION_FLAG_START_POS.y, iTimeAnim, this._onButPlayerTeamChoose);
  40. _aOpponentTeamFlag = this.createFlagSelection(OPPONENT_SELECTION_FLAG_START_POS.x, OPPONENT_SELECTION_FLAG_START_POS.y, iTimeAnim, this._onButOppTeamChoose);
  41. var oSpriteFlagSelection = s_oSpriteLibrary.getSprite("flag_selection");
  42. _oPlayerFlagSelect = createBitmap(oSpriteFlagSelection);
  43. _oPlayerFlagSelect.x = _aPlayerTeamFlag[0].getX();
  44. _oPlayerFlagSelect.y = _aPlayerTeamFlag[0].getY();
  45. _oPlayerFlagSelect.regX = oSpriteFlagSelection.width * 0.5;
  46. _oPlayerFlagSelect.regY = oSpriteFlagSelection.height * 0.5;
  47. _oOpponentFlagSelect = createBitmap(oSpriteFlagSelection);
  48. _oOpponentFlagSelect.x = _aOpponentTeamFlag[TEXT_TEAM.length - 1].getX();
  49. _oOpponentFlagSelect.y = _aOpponentTeamFlag[TEXT_TEAM.length - 1].getY();
  50. _oOpponentFlagSelect.regX = oSpriteFlagSelection.width * 0.5;
  51. _oOpponentFlagSelect.regY = oSpriteFlagSelection.height * 0.5;
  52. s_oStage.addChild(_oContainer);
  53. _oContainer.y = 12;
  54. _oContTextSelectOppTeam = this.createText(TEXT_SELECT_OPPONENT_TEAM, 22, 200).container;//szText, iSize, oContainer
  55. _oContTextSelectOppTeam.x = CANVAS_WIDTH_HALF + 130;
  56. _oContTextSelectOppTeam.y = 304;
  57. s_oStage.addChild(_oContTextSelectOppTeam);
  58. _oContTextSelectTeam = this.createText(TEXT_SELECT_YOUR_TEAM, 22, 200).container;
  59. _oContTextSelectTeam.x = CANVAS_WIDTH_HALF - 120;
  60. _oContTextSelectTeam.y = 304;
  61. s_oStage.addChild(_oContTextSelectTeam);
  62. var oTextYourTeam = this.createText(TEXT_TEAM[0], 30, 500);
  63. _oContTextYourTeam = oTextYourTeam.container;
  64. _oContTextYourTeam.x = CANVAS_WIDTH_HALF - 120;
  65. _oContTextYourTeam.y = CANVAS_HEIGHT_HALF + 132;
  66. _oYourTeamText = oTextYourTeam.text;
  67. _oYourTeamTextStroke = oTextYourTeam.text_stroke;
  68. s_oStage.addChild(_oContTextYourTeam);
  69. var oTextOppTeam = this.createText(TEXT_TEAM[TEXT_TEAM.length - 1], 30, 500);
  70. _oContTextOppTeam = oTextOppTeam.container;
  71. _oContTextOppTeam.x = CANVAS_WIDTH_HALF + 120;
  72. _oContTextOppTeam.y = CANVAS_HEIGHT_HALF + 132;
  73. _oOppTeamText = oTextOppTeam.text;
  74. _oOppTeamTextStroke = oTextOppTeam.text_stroke;
  75. s_oStage.addChild(_oContTextOppTeam);
  76. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  77. var oSprite = s_oSpriteLibrary.getSprite('audio_icon');
  78. _pStartPosAudio = {x: CANVAS_WIDTH - (oSprite.width / 2) - 60, y: (oSprite.height / 2) + 20};
  79. _oAudioToggle = new CToggle(_pStartPosAudio.x, _pStartPosAudio.y, oSprite, s_bAudioActive, s_oStage);
  80. _oAudioToggle.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
  81. }
  82. _pStartPosContinue = {x: CANVAS_WIDTH * 0.5 + 300, y: CANVAS_HEIGHT * 0.5 + 400};
  83. var oSpriteContinue = s_oSpriteLibrary.getSprite("but_continue");
  84. _oButContinue = new CGfxButton(_pStartPosContinue.x, _pStartPosContinue.y, oSpriteContinue, s_oStage);
  85. _oButContinue.addEventListener(ON_MOUSE_UP, this._onButContinueRelease, this);
  86. _oButContinue.pulseAnimation();
  87. var oSpriteExit = s_oSpriteLibrary.getSprite('but_exit');
  88. _pStartPosExit = {x: CANVAS_WIDTH - (oSpriteExit.width / 2) - 15, y: (oSpriteExit.height / 2) + 20};
  89. _oButExit = new CGfxButton(_pStartPosExit.x, _pStartPosExit.y, oSpriteExit, s_oStage);
  90. _oButExit.addEventListener(ON_MOUSE_UP, this._onExit, this);
  91. var doc = window.document;
  92. var docEl = doc.documentElement;
  93. _fRequestFullScreen = docEl.requestFullscreen || docEl.mozRequestFullScreen || docEl.webkitRequestFullScreen || docEl.msRequestFullscreen;
  94. _fCancelFullScreen = doc.exitFullscreen || doc.mozCancelFullScreen || doc.webkitExitFullscreen || doc.msExitFullscreen;
  95. if(ENABLE_FULLSCREEN === false){
  96. _fRequestFullScreen = false;
  97. }
  98. if (_fRequestFullScreen && screenfull.enabled){
  99. oSprite = s_oSpriteLibrary.getSprite('but_fullscreen');
  100. _pStartPosFullscreen = {x: oSprite.width/4 + 10,y:_pStartPosExit.y};
  101. _oButFullscreen = new CToggle(_pStartPosFullscreen.x,_pStartPosFullscreen.y,oSprite,s_bFullscreen,s_oStage);
  102. _oButFullscreen.addEventListener(ON_MOUSE_UP, this._onFullscreenRelease, this);
  103. }
  104. _oFade = new createjs.Shape();
  105. _oFade.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
  106. s_oStage.addChild(_oFade);
  107. createjs.Tween.get(_oFade).to({alpha: 0}, 1000).call(function () {
  108. _oFade.visible = false;
  109. _oContainer.addChild(_oPlayerFlagSelect, _oOpponentFlagSelect);
  110. });
  111. this.refreshButtonPos(s_iOffsetX, s_iOffsetY);
  112. };
  113. this._createFlag = function (i, iOffsetX, iOffsetY, iTimeWait, iTimeAnim, oFunction, oContainer) {
  114. var oFlag;
  115. var oSpriteFlag = s_oSpriteLibrary.getSprite("flag_" + i);
  116. oFlag = new CGfxButton(iOffsetX, iOffsetY, oSpriteFlag, oContainer);
  117. oFlag.addEventListenerWithParams(ON_MOUSE_UP, oFunction, this, i);
  118. var oButtonFlag = oFlag.getButton();
  119. oButtonFlag.scaleX = 0;
  120. oButtonFlag.scaleY = 0;
  121. createjs.Tween.get(oButtonFlag).wait(iTimeWait).to({scaleY: 1, scaleX: 1}, iTimeAnim, createjs.Ease.elasticOut);
  122. return oFlag;
  123. };
  124. this.createFlagSelection = function (iStartX, iStartY, iTimeAnim, oFunction) {
  125. var aFlag = new Array();
  126. var iX = iStartX;
  127. var iY = iStartY;
  128. for (var i = 0; i < TOT_TEAMS; i++) {
  129. var iTimeWait = Math.floor(Math.random() * 500);
  130. aFlag[i] = this._createFlag(i, iX, iY, iTimeWait, iTimeAnim, oFunction, _oContainer);
  131. if (i % MAX_COL_FLAG - 1 === 0) {
  132. iX = iStartX;
  133. iY += FLAG_OFFSET.y;
  134. } else {
  135. iX += FLAG_OFFSET.x;
  136. }
  137. }
  138. return aFlag;
  139. };
  140. this.createText = function (szText, iSize, iLineWidth) {
  141. var oContainer = new createjs.Container();
  142. var oText;
  143. oText = new createjs.Text(szText, iSize + "px " + FONT2, "#ffffff");
  144. oText.textAlign = "center";
  145. oText.lineWidth = iLineWidth;
  146. oText.x = 0;
  147. oText.y = 0;
  148. oContainer.addChild(oText);
  149. return {container: oContainer, text: oText};
  150. };
  151. this.refreshButtonPos = function (iNewX, iNewY) {
  152. _oButExit.setPosition(_pStartPosExit.x - iNewX, iNewY + _pStartPosExit.y);
  153. _oButContinue.setPosition(_pStartPosContinue.x - iNewX, _pStartPosContinue.y - iNewY);
  154. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  155. _oAudioToggle.setPosition(_pStartPosAudio.x - iNewX, iNewY + _pStartPosAudio.y);
  156. }
  157. if (_fRequestFullScreen && screenfull.enabled){
  158. _oButFullscreen.setPosition(_pStartPosFullscreen.x + iNewX,_pStartPosFullscreen.y + iNewY);
  159. }
  160. };
  161. this._onButPlayerTeamChoose = function (iID) {
  162. if (_iActivePlayerTeam !== iID && _iActiveOpponentTeam !== iID) {
  163. _oPlayerFlagSelect.x = _aPlayerTeamFlag[iID].getX();
  164. _oPlayerFlagSelect.y = _aPlayerTeamFlag[iID].getY();
  165. _oYourTeamText.text = TEXT_TEAM[iID];
  166. _iActivePlayerTeam = iID;
  167. }
  168. };
  169. this._onButOppTeamChoose = function (iID) {
  170. if (_iActiveOpponentTeam !== iID && _iActivePlayerTeam !== iID) {
  171. _oOpponentFlagSelect.x = _aOpponentTeamFlag[iID].getX();
  172. _oOpponentFlagSelect.y = _aOpponentTeamFlag[iID].getY();
  173. _oOppTeamText.text = TEXT_TEAM[iID];
  174. _iActiveOpponentTeam = iID;
  175. }
  176. };
  177. this.unload = function () {
  178. for (var i = 0; i < _aPlayerTeamFlag.length; i++) {
  179. _aPlayerTeamFlag[i].unload();
  180. _aPlayerTeamFlag[i] = null;
  181. }
  182. for (var i = 0; i < _aOpponentTeamFlag.length; i++) {
  183. _aOpponentTeamFlag[i].unload();
  184. _aOpponentTeamFlag[i] = null;
  185. }
  186. _oButExit.unload();
  187. _oButExit = null;
  188. _oButContinue.unload();
  189. _oButContinue = null;
  190. if(_oLoadingScreen !== null){
  191. _oLoadingScreen.unload();
  192. _oLoadingScreen = null;
  193. }
  194. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  195. _oAudioToggle.unload();
  196. _oAudioToggle = null;
  197. }
  198. if (_fRequestFullScreen && screenfull.enabled){
  199. _oButFullscreen.unload();
  200. }
  201. s_oStage.removeAllChildren();
  202. createjs.Tween.removeAllTweens();
  203. s_oTeamChoose = null;
  204. };
  205. this.loadingScreen = function () {
  206. var oContainerLoad = new createjs.Container();
  207. oContainerLoad.alpha = 0;
  208. _oLoadingScreen = new CLoadingScreen(oContainerLoad,this);
  209. createjs.Tween.get(oContainerLoad).to({alpha: 1}, 250, createjs.Ease.cubicOut);
  210. };
  211. this._onExit = function () {
  212. this.unload();
  213. s_oMain.gotoMenu();
  214. };
  215. this._onAudioToggle = function () {
  216. Howler.mute(s_bAudioActive);
  217. s_bAudioActive = !s_bAudioActive;
  218. };
  219. this._onButContinueRelease = function () {
  220. _oButContinue.block(true);
  221. s_iPlayerTeam = _iActivePlayerTeam;
  222. s_iOpponentTeam = _iActiveOpponentTeam;
  223. s_oMain.gotoGame(s_iPlayerTeam, s_iOpponentTeam);
  224. };
  225. this.resetFullscreenBut = function(){
  226. if (_fRequestFullScreen && screenfull.enabled){
  227. _oButFullscreen.setActive(s_bFullscreen);
  228. }
  229. };
  230. this._onFullscreenRelease = function(){
  231. if(s_bFullscreen) {
  232. _fCancelFullScreen.call(window.document);
  233. }else{
  234. _fRequestFullScreen.call(window.document.documentElement);
  235. }
  236. sizeHandler();
  237. };
  238. s_oTeamChoose = this;
  239. this._init();
  240. }
  241. var s_oTeamChoose = null;