| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- function CGame(oData, iPlayerTeam, iOpponentTeam) {
- var _idleBatterWait = 0;
- var _idleBatterStrike = 0;
- var _idlePitcher = 0;
- var _iScore = 0;
- var _iBallThrowed = 0;
- var _iRandDir = 0;
- var _iPressedDir = -1;
- var _iLives;
- var _bUpdate;
- var _bWaiting = false; //0 waiting state, 1 striking state
- var _bBallThrowed = false;
- var _bMissed = false;
- var _bInput = true;
- var _bBeat = false;
- var _bStartGame;
- var _oInterface;
- var _oEndPanel = null;
- var _oParent;
- var _oContainerGame;
- var _oBatter;
- var _oBowler;
- var _oTarget;
- var _oPole;
- this._init = function (iPlayerTeam, iOpponentTeam) {
- $(s_oMain).trigger("start_session");
- setVolume("soundtrack", 0.35);
- playSound("crowd_cheering", 1, true);
- var oBg = createBitmap(s_oSpriteLibrary.getSprite('bg_game'));
- s_oStage.addChild(oBg);
- _oContainerGame = new createjs.Container();
- s_oStage.addChild(_oContainerGame);
- _oInterface = new CInterface();
- _oBowler = new CBowler(_oContainerGame, iOpponentTeam);
- var oSpritePole = s_oSpriteLibrary.getSprite("pole_1");
- _oPole = new CPole(CANVAS_WIDTH_HALF - 8, CANVAS_HEIGHT - 812, oSpritePole, _oContainerGame);
- var oSpriteTarget = s_oSpriteLibrary.getSprite("ball_target");
- _oTarget = new CBallTarget(-100, -100, oSpriteTarget, _oContainerGame);
- _oTarget.setVisible(false);
- s_oBall = new CBall(_oContainerGame);
- this.ballResetPos();
- _iLives = LIVES;
- _oBatter = new CBatter(_oContainerGame, iPlayerTeam);
- var oSpritePole = s_oSpriteLibrary.getSprite("pole_0");
- _oPole = new CPole(CANVAS_WIDTH_HALF, CANVAS_HEIGHT - 193, oSpritePole, _oContainerGame);
- if (s_bMobile === false) {
- document.onkeydown = onKeyDown;
- } else {
- _oInterface.createController();
- _oInterface.refreshButtonPos(s_iOffsetX, s_iOffsetY);
- _oInterface.createHitArea();
- }
- _bStartGame = true;
- _oInterface.createHelpPanel();
- };
- this.launchCountdown = function () {
- var oMissed = createBitmap(s_oSpriteLibrary.getSprite('3'));
- oMissed.x = CANVAS_WIDTH / 2;
- oMissed.y = CANVAS_HEIGHT / 2;
- oMissed.regX = 40;
- oMissed.regY = 84;
- _oContainerGame.addChild(oMissed);
- playSound("countdown1", 1, false);
- createjs.Tween.get(oMissed).to({scaleX: 1.3, scaleY: 1.3}, (500), createjs.Ease.cubicOut).wait(500).call(function () {
- this.visible = false;
- var oMissed = createBitmap(s_oSpriteLibrary.getSprite('2'));
- oMissed.x = CANVAS_WIDTH / 2;
- oMissed.y = CANVAS_HEIGHT / 2;
- oMissed.regX = 40;
- oMissed.regY = 84;
- oMissed.scaleX = 0.7;
- oMissed.scaleY = 0.7;
- _oContainerGame.addChild(oMissed);
- playSound("countdown1", 1, false);
- createjs.Tween.get(oMissed).to({scaleX: 1.3, scaleY: 1.3}, (500), createjs.Ease.cubicOut).wait(500).call(function () {
- _oContainerGame.removeChild(this);
- var oMissed = createBitmap(s_oSpriteLibrary.getSprite('1'));
- oMissed.x = CANVAS_WIDTH / 2;
- oMissed.y = CANVAS_HEIGHT / 2;
- oMissed.regX = 40;
- oMissed.regY = 84;
- oMissed.scaleX = 0.7;
- oMissed.scaleY = 0.7;
- _oContainerGame.addChild(oMissed);
- playSound("countdown1", 1, 0);
- createjs.Tween.get(oMissed).to({scaleX: 1.3, scaleY: 1.3}, (500), createjs.Ease.cubicOut).wait(500).call(function () {
- _oContainerGame.removeChild(this);
- _oInterface.createAnimText(TEXT_START, 48, false, null, 300, function () {
- _oContainerGame.removeChild(this);
- _bUpdate = true;
- _oInterface.setHitAreaVisible(false);
- });
- playSound("countdown2", 1, false);
- });
- });
- });
- };
- this._onExitHelpPanel = function () {
- _oInterface.onExitFromHelp();
- this.launchCountdown();
- $(s_oMain).trigger("start_level", 1);
- };
- function onKeyDown(evt) {
- if (_bInput === true) {
- if (!_bBeat) {
- if (evt.keyCode === 37) {
- s_oGame.hitLeft();
- } else if (evt.keyCode === 38) {
- s_oGame.hitCenter();
- } else if (evt.keyCode === 39) {
- s_oGame.hitRight();
- }
- }
- }
- evt.preventDefault();
- return false;
- }
- this.hitLeft = function () {
- _iPressedDir = HIT_LEFT;
- s_oGame._strike();
- s_oGame.beatDirection();
- };
- this.hitCenter = function () {
- _iPressedDir = HIT_CENTER;
- s_oGame._strike();
- s_oGame.beatDirection();
- };
- this.hitRight = function () {
- _iPressedDir = HIT_RIGHT;
- s_oGame._strike();
- s_oGame.beatDirection();
- };
- this._strike = function () {
- if (!_bWaiting) {
- _idleBatterWait = 0;
- } else {
- _idleBatterStrike = 0;
- }
- _bWaiting = !_bWaiting;
- _bBeat = true;
- _oInterface.setHitAreaVisible(true);
- };
- this._ballMissed = function () {
- _bUpdate = false;
- _bMissed = true;
- playSound("crowd_ohhh", 1, false);
- _oInterface.createAnimText(TEXT_BOWLED, 48, false, null, 300, this.afterBallMissed);
-
- _oTarget.setVisible(false);
- _iLives--;
- _oInterface.refreshLivesText(_iLives);
- };
- this.afterBallMissed = function () {
- _idleBatterWait = 0;
- if (_bWaiting) {
- s_oGame._strike();
- }
- s_oGame.changeStateTarget(false);
- _bUpdate = true;
- _bBeat = false;
- _oInterface.setHitAreaVisible(false);
- };
- this.getMissed = function () {
- return _bMissed;
- };
- this.setScore = function (iValue) {
- _iScore += Math.floor(iValue);
- _oInterface.viewScore(_iScore);
- };
- this.unload = function () {
- if (s_bMobile === false) {
- document.onkeydown = null;
- }
- _oInterface.unload();
- if (_oEndPanel !== null) {
- _oEndPanel.unload();
- }
- createjs.Tween.removeAllTweens();
- s_oStage.removeAllChildren();
- };
- this.onExit = function () {
- this.unload();
- s_oMain.gotoMenu();
- setVolume("soundtrack", 1);
- stopSound("crowd_cheering");
- $(s_oMain).trigger("end_level", 1);
- $(s_oMain).trigger("show_interlevel_ad");
- $(s_oMain).trigger("end_session", _iScore);
- };
- this.gameOver = function () {
- _bUpdate = false;
- _bInput = false;
- _oEndPanel = CEndPanel(s_oSpriteLibrary.getSprite('msg_box'));
- _oEndPanel.show(_iScore);
- };
- this._ballHitted = function (fHitValue) {
- _bUpdate = false;
- s_oBall.hideBall();
- var bStrobe = false;
- playSound("applauses", 1, false);
- var iPoint = SCORE_HIT - fHitValue;
- var szText = TEXT_CONGRATULATION[0];
- if (iPoint >= POINT_TEXT_EXCELLENT) {
- szText = TEXT_CONGRATULATION[2];
- bStrobe = true;
- } else if (iPoint > POINT_TEXT_GREAT) {
- szText = TEXT_CONGRATULATION[1];
- }
- _oInterface.createAnimText(szText, 48, bStrobe, TEXT_EXCELLENT_COLOR, 300, this.afterBallHit);
- };
- this.afterBallHit = function () {
- s_oGame._restart();
- s_oBall.addVelocity();
- _bUpdate = true;
- };
- this.changeStateTarget = function (bVal) {
- _oTarget.changeState(bVal);
- };
- this.randomDir = function () {
- _iRandDir = Math.floor(Math.random() * LAUNCH_DIR_OFFSET_RANGE.length);
- };
- this.ballResetPos = function () {
- this.randomDir();
- var iRandRangeX = (Math.random() * (LAUNCH_DIR_OFFSET_RANGE[_iRandDir].max - LAUNCH_DIR_OFFSET_RANGE[_iRandDir].min)) + LAUNCH_DIR_OFFSET_RANGE[_iRandDir].min;
- var pEndPosRandom = {x: END_POINT_X_THROWN + iRandRangeX, y: END_POINT_Y_THROWN};
- PERFECT_HIT_X = pEndPosRandom.x;
- _oTarget.setPosition(pEndPosRandom.x, pEndPosRandom.y);
- s_oBall.reset(pEndPosRandom);
- };
- this.pause = function (bVal) {
- _bStartGame = !bVal;
- createjs.Ticker.paused = bVal;
- };
- this._restart = function () {
- if (_iLives <= 0) {
- this.gameOver();
- } else {
- this.ballResetPos();
- _oTarget.setVisible(false);
- s_oGame.changeStateTarget(false);
- s_bBounce = true;
- _bBallThrowed = false;
- _bMissed = false;
- this._strike();
- _bBeat = false;
- _oInterface.setHitAreaVisible(false);
- }
- };
- this.resetGame = function () {
- _iLives = LIVES;
- _oInterface.refreshLivesText(_iLives);
- _iScore = 0;
- _oInterface.viewScore(_iScore);
- _bUpdate = true;
- _bWaiting = true;
- _bInput = true;
- _bBeat = false;
- this._restart();
- $(s_oMain).trigger("restart_level", 1);
- };
- this.ballMissedRestart = function () {
- if (_iLives <= 0) {
- this.gameOver();
- } else {
- this.ballResetPos();
- _bBallThrowed = false;
- if (_idleBatterStrike > 0) {
- this._strike();
- }
- _bMissed = false;
- _bBeat = false;
- _oInterface.setHitAreaVisible(false);
- }
- };
- this.beatDirection = function () {
- if (_iPressedDir === _iRandDir) {
- s_oBall.hitControl();
- }
- };
- this.update = function () {
- if (_bUpdate && _bStartGame) {
- if (!_bWaiting) {
- //waiting the pitcher
- if ((_idleBatterWait + 1) < NUM_SPRITE_BATTING) {
- _oBatter.viewBatter(_idleBatterWait + 1, _bWaiting);
- _idleBatterWait++;
- } else {
- _idleBatterWait = 0;
- _oBatter.viewBatter(_idleBatterWait, _bWaiting);
- }
- } else {
- //striking BATTER
- if ((_idleBatterStrike + 1) < NUM_SPRITE_BATTING) {
- _oBatter.viewBatter(_idleBatterStrike + 1, _bWaiting);
- _idleBatterStrike++;
- } else {
- _oBatter.viewBatter(_idleBatterStrike, _bWaiting);
- }
- if (_idleBatterStrike === 8) {
- s_oBall.hitBall();
- }
- }
- if (_bMissed === true) {
- this.ballMissedRestart();
- }
- if (!_bBallThrowed || _idlePitcher + 1 < NUM_SPRITE_BOWLER) {
- _oBowler.hideBowler(_idlePitcher);
- if (_idlePitcher + 1 < NUM_SPRITE_BOWLER) {
- _oBowler.viewBowler(_idlePitcher + 1);
- _idlePitcher++;
- } else {
- _idlePitcher = 0;
- }
- if (_idlePitcher === 28) {
- _iBallThrowed++;
- s_oBall.viewBall();
- _oTarget.setVisible(true);
- _bBallThrowed = true;
- }
- }
- if (_bBallThrowed) {
- s_oBall.update();
- }
- }
- };
- s_oGame = this;
- _oParent = this;
- LIVES = oData.lives;
- OFFSET_FOR_HIT = oData.offset_hit;
- OFFSET_FOR_PERFECT_HIT = oData.offset_perfect_hit;
- STEP_SPEED_BALL = oData.start_speed_ball;
- BALL_VELOCITY_ADDED = oData.ball_velocity_added;
- MAX_BALL_VELOCITY = oData.max_ball_velocity;
- SCORE_HIT = oData.score_ball_hit;
- NUM_LEVEL_FOR_ADS = oData.num_levels_for_ads;
- ALMOST_MINUS = PERFECT_HIT_Y - OFFSET_FOR_HIT;
- ALMOST_PLUS = PERFECT_HIT_Y + OFFSET_FOR_HIT;
- POINT_TEXT_EXCELLENT = SCORE_HIT - OFFSET_FOR_PERFECT_HIT;
- this._init(iPlayerTeam, iOpponentTeam);
- }
- var s_oGame;
|