CMain.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. function CMain(oData) {
  2. var _bUpdate;
  3. var _iCurResource = 0;
  4. var RESOURCE_TO_LOAD = 0;
  5. var _iState = STATE_LOADING;
  6. var _oData;
  7. var _oPreloader;
  8. var _oMenu;
  9. var _oGame;
  10. var _oTeamChoose;
  11. var _aTeamLoadedBatter = new Array();
  12. this.initContainer = function () {
  13. s_oCanvas = document.getElementById("canvas");
  14. s_oStage = new createjs.Stage(s_oCanvas);
  15. createjs.Touch.enable(s_oStage);
  16. s_oStage.preventSelection = false;
  17. s_bMobile = jQuery.browser.mobile;
  18. if (s_bMobile === false) {
  19. s_oStage.enableMouseOver(20);
  20. $('body').on('contextmenu', '#canvas', function (e) {
  21. return false;
  22. });
  23. }
  24. s_iPrevTime = new Date().getTime();
  25. createjs.Ticker.addEventListener("tick", this._update);
  26. createjs.Ticker.framerate = 30;
  27. if (navigator.userAgent.match(/Windows Phone/i)) {
  28. DISABLE_SOUND_MOBILE = true;
  29. }
  30. s_oSpriteLibrary = new CSpriteLibrary();
  31. this.setLoadedArray();
  32. //ADD PRELOADER
  33. _oPreloader = new CPreloader();
  34. };
  35. this.preloaderReady = function () {
  36. this._loadImages();
  37. if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
  38. this._initSounds();
  39. }
  40. _bUpdate = true;
  41. };
  42. this.soundLoaded = function (evt) {
  43. _iCurResource++;
  44. var iPerc = Math.floor(_iCurResource / RESOURCE_TO_LOAD * 100);
  45. _oPreloader.refreshLoader(iPerc);
  46. };
  47. this._initSounds = function(){
  48. var aSoundsInfo = new Array();
  49. aSoundsInfo.push({path: './sounds/',filename:'buzzer',loop:false,volume:1, ingamename: 'buzzer'});
  50. aSoundsInfo.push({path: './sounds/',filename:'countdown1',loop:false,volume:1, ingamename: 'countdown1'});
  51. aSoundsInfo.push({path: './sounds/',filename:'countdown2',loop:false,volume:1, ingamename: 'countdown2'});
  52. aSoundsInfo.push({path: './sounds/',filename:'drop_bounce_grass',loop:false,volume:1, ingamename: 'drop_bounce_grass'});
  53. aSoundsInfo.push({path: './sounds/',filename:'hit_ball',loop:false,volume:1, ingamename: 'hit_ball'});
  54. aSoundsInfo.push({path: './sounds/',filename:'crowd_cheering',loop:true,volume:1, ingamename: 'crowd_cheering'});
  55. aSoundsInfo.push({path: './sounds/',filename:'applauses',loop:false,volume:1, ingamename: 'applauses'});
  56. aSoundsInfo.push({path: './sounds/',filename:'crowd_ohhh',loop:false,volume:1, ingamename: 'crowd_ohhh'});
  57. aSoundsInfo.push({path: './sounds/',filename:'click',loop:false,volume:1, ingamename: 'click'});
  58. aSoundsInfo.push({path: './sounds/',filename:'soundtrack',loop:true,volume:1, ingamename: 'soundtrack'});
  59. RESOURCE_TO_LOAD += aSoundsInfo.length;
  60. s_aSounds = new Array();
  61. for(var i=0; i<aSoundsInfo.length; i++){
  62. s_aSounds[aSoundsInfo[i].ingamename] = new Howl({
  63. src: [aSoundsInfo[i].path+aSoundsInfo[i].filename+'.mp3', aSoundsInfo[i].path+aSoundsInfo[i].filename+'.ogg'],
  64. autoplay: false,
  65. preload: true,
  66. loop: aSoundsInfo[i].loop,
  67. volume: aSoundsInfo[i].volume,
  68. onload: s_oMain.soundLoaded()
  69. });
  70. }
  71. };
  72. this._loadImages = function () {
  73. s_oSpriteLibrary.init(this._onImagesLoaded, this._onAllImagesLoaded, this);
  74. s_oSpriteLibrary.addSprite("but_play", "./sprites/but_play.png");
  75. s_oSpriteLibrary.addSprite("msg_box", "./sprites/msg_box.png");
  76. s_oSpriteLibrary.addSprite("but_exit", "./sprites/but_exit.png");
  77. s_oSpriteLibrary.addSprite("logo_menu", "./sprites/logo_menu.png");
  78. s_oSpriteLibrary.addSprite("audio_icon", "./sprites/audio_icon.png");
  79. s_oSpriteLibrary.addSprite("preloader_anim", "./sprites/preloader_anim.png");
  80. s_oSpriteLibrary.addSprite("bg_game", "./sprites/bg_game.jpg");
  81. s_oSpriteLibrary.addSprite("bg_menu", "./sprites/bg_menu.jpg");
  82. s_oSpriteLibrary.addSprite("score_panel", "./sprites/score_panel.png");
  83. s_oSpriteLibrary.addSprite("ball", "./sprites/ball.png");
  84. s_oSpriteLibrary.addSprite("1", "./sprites/1.png");
  85. s_oSpriteLibrary.addSprite("2", "./sprites/2.png");
  86. s_oSpriteLibrary.addSprite("3", "./sprites/3.png");
  87. s_oSpriteLibrary.addSprite("but_credits", "./sprites/but_credits.png");
  88. s_oSpriteLibrary.addSprite("logo_credits", "./sprites/logo_credits.png");
  89. s_oSpriteLibrary.addSprite("ball_target", "./sprites/ball_target.png");
  90. s_oSpriteLibrary.addSprite("bg_select_team", "./sprites/bg_select_team.jpg");
  91. s_oSpriteLibrary.addSprite("bg_select_mode", "./sprites/bg_select_mode.jpg");
  92. s_oSpriteLibrary.addSprite("flag_selection", "./sprites/flag_selection.png");
  93. s_oSpriteLibrary.addSprite("but_continue", "./sprites/but_continue.png");
  94. s_oSpriteLibrary.addSprite("pole_0", "./sprites/pole_0.png");
  95. s_oSpriteLibrary.addSprite("pole_1", "./sprites/pole_1.png");
  96. s_oSpriteLibrary.addSprite("but_pause", "./sprites/but_pause.png");
  97. s_oSpriteLibrary.addSprite("but_yes", "./sprites/but_yes.png");
  98. s_oSpriteLibrary.addSprite("but_no", "./sprites/but_no.png");
  99. s_oSpriteLibrary.addSprite("arrow", "./sprites/arrow.png");
  100. s_oSpriteLibrary.addSprite("bg_text", "./sprites/bg_text.png");
  101. s_oSpriteLibrary.addSprite("but_home", "./sprites/but_home.png");
  102. s_oSpriteLibrary.addSprite("but_restart", "./sprites/but_restart.png");
  103. s_oSpriteLibrary.addSprite("key_up", "./sprites/key_up.png");
  104. s_oSpriteLibrary.addSprite("key_left", "./sprites/key_left.png");
  105. s_oSpriteLibrary.addSprite("key_right", "./sprites/key_right.png");
  106. s_oSpriteLibrary.addSprite("bg_help", "./sprites/bg_help.png");
  107. s_oSpriteLibrary.addSprite("but_fullscreen", "./sprites/but_fullscreen.png");
  108. for (var j = 0; j < TOT_TEAMS; j++) {
  109. s_oSpriteLibrary.addSprite("flag_" + j, "./sprites/flag_" + j + ".png");
  110. }
  111. for (var i = 0; i < TOT_TEAMS; i++) {
  112. for(var j=0;j<2;j++){
  113. s_oSpriteLibrary.addSprite("batter_hit_" + i+"-"+j, "./sprites/batter_hit/batter_hit_" + i + "-" + j + ".png");
  114. }
  115. for(var j=0;j<2;j++){
  116. s_oSpriteLibrary.addSprite("batter_idle_" + i+"-"+j, "./sprites/batter_idle/batter_idle_" + i + "-" + j + ".png");
  117. }
  118. s_oSpriteLibrary.addSprite("bowler_" + i, "./sprites/bowler/bowler_" + i +".png");
  119. }
  120. RESOURCE_TO_LOAD += s_oSpriteLibrary.getNumSprites();
  121. s_oSpriteLibrary.loadSprites();
  122. };
  123. this._onImagesLoaded = function () {
  124. _iCurResource++;
  125. var iPerc = Math.floor(_iCurResource / RESOURCE_TO_LOAD * 100);
  126. _oPreloader.refreshLoader(iPerc);
  127. };
  128. this._onTeamsLoaded = function () {
  129. _iCurResource++;
  130. if (_iCurResource === RESOURCE_TO_LOAD) {
  131. this.gotoGame(s_iPlayerTeam, s_iOpponentTeam);
  132. }
  133. };
  134. this._onAllImagesLoaded = function () {
  135. };
  136. this.setLoadedArray = function () {
  137. for (var i = 0; i < TOT_TEAMS; i++) {
  138. _aTeamLoadedBatter[i] = false;
  139. }
  140. };
  141. this._onRemovePreloader = function(){
  142. _oPreloader.unload();
  143. playSound("soundtrack", 1,true);
  144. this.gotoMenu();
  145. };
  146. this.gotoMenu = function () {
  147. _oMenu = new CMenu();
  148. _iState = STATE_MENU;
  149. };
  150. this.gotoGame = function (iPlayerTeam, iOpponentTeam) {
  151. _oTeamChoose.unload();
  152. _aTeamLoadedBatter[s_iOpponentTeam] = true;
  153. _aTeamLoadedBatter[s_iPlayerTeam] = true;
  154. _oGame = new CGame(_oData, iPlayerTeam, iOpponentTeam);
  155. _iState = STATE_GAME;
  156. };
  157. this.gotoTeamChoose = function () {
  158. _oTeamChoose = new CTeamChoose();
  159. _iState = STATE_MENU;
  160. };
  161. this.stopUpdate = function(){
  162. _bUpdate = false;
  163. createjs.Ticker.paused = true;
  164. $("#block_game").css("display","block");
  165. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  166. Howler.mute(true);
  167. }
  168. };
  169. this.startUpdate = function(){
  170. s_iPrevTime = new Date().getTime();
  171. _bUpdate = true;
  172. createjs.Ticker.paused = false;
  173. $("#block_game").css("display","none");
  174. if(DISABLE_SOUND_MOBILE === false || s_bMobile === false){
  175. if(s_bAudioActive){
  176. Howler.mute(false);
  177. }
  178. }
  179. };
  180. this._update = function (event) {
  181. if (_bUpdate === false) {
  182. return;
  183. }
  184. var iCurTime = new Date().getTime();
  185. s_iTimeElaps = iCurTime - s_iPrevTime;
  186. s_iCntTime += s_iTimeElaps;
  187. s_iCntFps++;
  188. s_iPrevTime = iCurTime;
  189. if (s_iCntTime >= 1000) {
  190. s_iCurFps = s_iCntFps;
  191. s_iCntTime -= 1000;
  192. s_iCntFps = 0;
  193. }
  194. if (_iState === STATE_GAME) {
  195. _oGame.update();
  196. }
  197. s_oStage.update(event);
  198. };
  199. s_oMain = this;
  200. _oData = oData;
  201. ENABLE_FULLSCREEN = oData.fullscreen;
  202. ENABLE_CHECK_ORIENTATION = oData.check_orientation;
  203. this.initContainer();
  204. }
  205. var s_bMobile;
  206. var s_bAudioActive = true;
  207. var s_bFullscreen = false;
  208. var s_iCntTime = 0;
  209. var s_iTimeElaps = 0;
  210. var s_iPrevTime = 0;
  211. var s_iCntFps = 0;
  212. var s_iCurFps = 0;
  213. var s_iPlayerTeam;
  214. var s_iOpponentTeam;
  215. var s_iMode;
  216. var s_iAdsLevel = 1;
  217. var s_bBounce = true;
  218. var s_oDrawLayer;
  219. var s_oStage;
  220. var s_oMain;
  221. var s_oStadium;
  222. var s_oBall;
  223. var s_oSpriteLibrary;
  224. var s_oSoundTrack = null;
  225. var s_oBgSound;
  226. var s_oCanvas;
  227. var s_iCanvasResizeHeight;
  228. var s_iCanvasResizeWidth;
  229. var s_iCanvasOffsetHeight;
  230. var s_iCanvasOffsetWidth;
  231. var s_aSounds;