Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function CGame(oInfo) {
- var _bUpdate = false;
- var _bKeyDown = false;
- var _iSpeed;
- var _iMaxHeroSpeed;
- var _iScore = 0;
- var _totTime = 0;
- var _numIngredients = 0;
- var _iScoreInterval = 0;
- var _iLives;
- var _iCurHeroX;
- var _iTimeElaps = 0;
- var _oBg;
- var _oButExit;
- var _aLineXPos;
- var _aObstaclePos;
- var _aObstacleInScene;
- var _aIngredientsPos;
- var _aIngredientsInScene;
- var _oHero;
- var _oHurt;
- var _oButLeft;
- var _oButRight;
- var _oScoreText;
- var _oLivesText;
- var _oGameOverPanel;
- var _oScrollingBg;
- var _oHelpBg;
- var _oAudioToggle;
- this._init = function() {
- var oBgCanvas = new createjs.Shape();
- oBgCanvas.graphics.beginFill("#5B89A1").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
- s_oStage.addChild(oBgCanvas);
- this._initLineObjects();
- this._initIngredients();
- this._initObstacles();
- var oBgGUI = new createjs.Shape();
- oBgGUI.graphics.beginFill("rgba(0,0,0,1)").drawRect(0, 0, CANVAS_WIDTH, 100);
- s_oStage.addChild(oBgGUI);
- oBgGUI = new createjs.Shape();
- oBgGUI.graphics.beginFill("rgba(0,0,0,1)").drawRect(0, 924, CANVAS_WIDTH, 100);
- s_oStage.addChild(oBgGUI);
- var oSprite = s_oSpriteLibrary.getSprite('but_exit');
- _oButExit = new CGfxButton(CANVAS_WIDTH - (oSprite.width / 2) - 10, 10 + (oSprite.height / 2), oSprite, true);
- _oButExit.addEventListener(ON_MOUSE_UP, this._onExit, this);
- if (s_bMobile === false) {
- document.onkeydown = onKeyDown;
- document.onkeyup = onKeyUp;
- }
- if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
- _oAudioToggle = new CToggle(CANVAS_WIDTH - 150, 10 + (oSprite.height / 2), s_oSpriteLibrary.getSprite('audio_icon'), s_bAudioActive);
- _oAudioToggle.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
- }
- _iLives = NUM_LIVES;
- _iCurHeroX = 1;
- var oSpriteHero = s_oSpriteLibrary.getSprite('hero');
- _oHero = new CHero(_aLineXPos[_iCurHeroX], oSpriteHero);
- var oSpriteLife = s_oSpriteLibrary.getSprite("life");
- var oLife = createBitmap(oSpriteLife);
- oLife.x = 10;
- oLife.y = 15;
- s_oStage.addChild(oLife);
- _oScoreText = new createjs.Text(TEXT_SCORE + ": 0", "bold 50px Arial", "#ffffff");
- _oScoreText.x = (CANVAS_WIDTH / 2);
- _oScoreText.y = 30;
- _oScoreText.textAlign = "center";
- s_oStage.addChild(_oScoreText);
- _oLivesText = new createjs.Text("X" + _iLives, "bold 50px Arial", "#ffffff");
- _oLivesText.x = 130;
- _oLivesText.y = 30;
- _oLivesText.textAlign = "center";
- s_oStage.addChild(_oLivesText);
- _oHurt = new createjs.Shape();
- _oHurt.graphics.beginFill("red").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
- _oHurt.alpha = 0.1;
- _oHurt.visible = false;
- s_oStage.addChild(_oHurt);
- oSprite = s_oSpriteLibrary.getSprite('but_left');
- _oButLeft = new CGfxButton(BUT_LEFT_X, BUT_LEFT_Y, oSprite, true);
- _oButLeft.addEventListener(ON_MOUSE_DOWN, this._onReleaseLeft, this);
- oSprite = s_oSpriteLibrary.getSprite('but_right');
- _oButRight = new CGfxButton(BUT_RIGHT_X, BUT_RIGHT_Y, oSprite, true);
- _oButRight.addEventListener(ON_MOUSE_DOWN, this._onReleaseRight, this);
- oSprite = s_oSpriteLibrary.getSprite('but_jump');
- _oButJump = new CTextButton(CANVAS_WIDTH / 2, BUT_RIGHT_Y, oSprite, TEXT_JUMP, "Arial", "#383838", 40);
- _oHelpBg = new CHelpPanel(s_oSpriteLibrary.getSprite('bg_help'));
- _iSpeed = 0;
- _iMaxHeroSpeed = MAX_STARTING_SPEED;
- createjs.Sound.setMute(true);
- };
- this.unload = function() {
- _oButExit.unload();
- _oButExit = null;
- _oButLeft.unload();
- _oButLeft = null;
- _oButRight.unload();
- _oButRight = null;
- s_oStage.removeAllChildren();
- };
- function onKeyUp(evt) {
- _bKeyDown = false;
- }
- function onKeyDown(evt) {
- if (_bUpdate === false || _bKeyDown) {
- return;
- }
- if (!evt) {
- var evt = window.event;
- }
- _bKeyDown = true;
- switch (evt.keyCode) {
- case 37:
- s_oGame.shiftLeft();
- break;
- case 39:
- s_oGame.shiftRight();
- break;
- case 32:
- s_oGame.jump();
- break;
- }
- }
- this.shiftLeft = function() {
- this._onReleaseLeft();
- };
- this.shiftRight = function() {
- this._onReleaseRight();
- };
- this._onExitHelp = function() {
- _oHelpBg.unload();
- s_oStage.removeChild(_oHelpBg);
- _bUpdate = true;
- };
- this._initLineObjects = function() {
- _aLineXPos = new Array(128, 384, 640);
- var oSprite = s_oSpriteLibrary.getSprite('road_tile');
- _oScrollingBg = new CScrollingBg(oSprite);
- };
- this._initIngredients = function() {
- _aIngredientsPos = new Array();
- _aIngredientsPos[0] = [_aLineXPos[0]];
- _aIngredientsPos[1] = [_aLineXPos[1]];
- _aIngredientsPos[2] = [_aLineXPos[2]];
- _aIngredientsPos[3] = [_aLineXPos[0]];
- _aIngredientsPos[4] = [_aLineXPos[1]];
- _aIngredientsPos[5] = [_aLineXPos[2]];
- _aIngredientsPos[6] = [_aLineXPos[0]];
- _aIngredientsPos[7] = [_aLineXPos[1]];
- _aIngredientsPos[8] = [_aLineXPos[2]];
- _aIngredientsPos[9] = [_aLineXPos[0]];
- _aIngredientsPos[10] = [_aLineXPos[1]];
- _aIngredientsPos[11] = [_aLineXPos[2]];
- _aIngredientsPos[12] = [_aLineXPos[0]];
- _aIngredientsPos[13] = [_aLineXPos[1]];
- _aIngredientsPos[14] = [_aLineXPos[2]];
- _aIngredientsPos = shuffle(_aIngredientsPos);
- _aIngredientsInScene = new Array();
- var oSprite = s_oSpriteLibrary.getSprite('ingredients');
- var oData = {
- images: [oSprite],
- frames: [
- [0, 0, 98, 108, 0, 49, 100],
- [98, 0, 98, 108, 0, 49, 100],
- [196, 0, 98, 108, 0, 49, 100],
- [294, 0, 98, 108, 0, 48, 100],
- [392, 0, 98, 108, 0, 48, 100],
- [490, 0, 98, 108, 0, 48, 100],
- [588, 0, 98, 168, 0, 54, 84],
- [686, 0, 98, 168, 0, 54, 84],
- [784, 0, 98, 168, 0, 54, 84],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- [882, 0, 98, 108, 0, 40, 100],
- ]
- };
- var SpriteObj = new createjs.SpriteSheet(oData);
- var iCont = 0;
- var iYPos = -oSprite.height;
- while (iYPos > -(CANVAS_HEIGHT * 8)) {
- for (var k = 0; k < _aIngredientsPos[iCont].length; k++) {
- var oIngredient = new CObstacle(_aIngredientsPos[iCont][k], iYPos, SpriteObj, SpriteObj.getFrameBounds(iCont).width, SpriteObj.getFrameBounds(iCont).height, SpriteObj.getFrameBounds(iCont).x, SpriteObj.getFrameBounds(iCont).y);
- _aIngredientsInScene.push(oIngredient);
- }
- iYPos -= (oSprite.height + DISTANCE_AMONG_OBSTACLES);
- iCont++;
- }
- };
- this._initObstacles = function() {
- _aObstaclePos = new Array();
- _aObstaclePos[0] = [_aLineXPos[0]];
- _aObstaclePos[1] = [_aLineXPos[1]];
- _aObstaclePos[2] = [_aLineXPos[2]];
- _aObstaclePos[3] = [_aLineXPos[0], _aLineXPos[1]];
- _aObstaclePos[4] = [_aLineXPos[1], _aLineXPos[2]];
- _aObstaclePos[5] = [_aLineXPos[2], _aLineXPos[0]];
- _aObstaclePos[6] = [_aLineXPos[0], _aLineXPos[1]];
- _aObstaclePos[7] = [_aLineXPos[1], _aLineXPos[2]];
- _aObstaclePos[8] = [_aLineXPos[2], _aLineXPos[0]];
- _aObstaclePos[9] = [_aLineXPos[2], _aLineXPos[0]];
- _aObstaclePos[10] = [_aLineXPos[0], _aLineXPos[1]];
- _aObstaclePos[11] = [_aLineXPos[1], _aLineXPos[2]];
- _aObstaclePos[12] = [_aLineXPos[2], _aLineXPos[0]];
- _aObstaclePos[13] = [_aLineXPos[0], _aLineXPos[1]];
- _aObstaclePos[14] = [_aLineXPos[1], _aLineXPos[2]];
- _aObstaclePos = shuffle(_aObstaclePos);
- _aObstacleInScene = new Array();
- var oSprite = s_oSpriteLibrary.getSprite('enemy');
- var oData = {
- images: [oSprite],
- frames: [
- [0, 0, 98, 200, 0, 49, 100],
- [98, 0, 98, 200, 0, 49, 100],
- [196, 0, 98, 200, 0, 49, 100],
- [294, 0, 96, 200, 0, 48, 100],
- [388, 0, 96, 200, 0, 48, 100],
- [484, 0, 96, 200, 0, 48, 100],
- [580, 0, 108, 168, 0, 54, 84],
- [688, 0, 108, 168, 0, 54, 84],
- [796, 0, 108, 168, 0, 54, 84],
- [904, 0, 80, 200, 0, 40, 100],
- [984, 0, 80, 200, 0, 40, 100],
- [1064, 0, 80, 200, 0, 40, 100]
- ]
- };
- var SpriteObj = new createjs.SpriteSheet(oData);
- var iCont = 0;
- var iYPos = -oSprite.height;
- while (iYPos > -(CANVAS_HEIGHT * 8)) {
- for (var k = 0; k < _aObstaclePos[iCont].length; k++) {
- var oObstacle = new CObstacle(_aObstaclePos[iCont][k], iYPos, SpriteObj, SpriteObj.getFrameBounds(iCont).width, SpriteObj.getFrameBounds(iCont).height, SpriteObj.getFrameBounds(iCont).x, SpriteObj.getFrameBounds(iCont).y);
- _aObstacleInScene.push(oObstacle);
- }
- iYPos -= (oSprite.height + DISTANCE_AMONG_OBSTACLES);
- iCont++;
- }
- };
- this._increaseScore = function() {
- _totTime += 1;
- _iScore += SCORE_INCREASE;
- _oScoreText.text = TEXT_SCORE + ": " + _iScore;
- _iScoreInterval += SCORE_INCREASE;
- if (_iScoreInterval > INCREASE_SPEED_UP_INTERVAL) {
- _iScoreInterval = 0;
- _iMaxHeroSpeed += INCREASE_SPEED;
- console.log('SPEEEED IS' + _iMaxHeroSpeed + ' -- TIME IS -- '+_totTime + ' -- SCORE IS -- '+_iScore);
- }
- };
- this._ingredientsScore = function() {
- _iScore += SCORE_INGREDIENT_INCREASE;
- _oScoreText.text = TEXT_SCORE + ": " + _iScore;
- _numIngredients++;
- jQuery('#added_pts').html('<div class="pts animated fadeOutUp infinite">+' + SCORE_INGREDIENT_INCREASE + '</div>');
- };
- this._lifeLost = function() {
- _oHurt.visible = true;
- var oParent = this;
- createjs.Tween.get(_oHurt).to({
- alpha: 0.6
- }, 400).call(function() {
- oParent._resetHurt();
- });
- _iScore -= MALUS_SCORE;
- if (_iScore < 0) {
- _iScore = 0;
- }
- _oScoreText.text = TEXT_SCORE + ": " + _iScore;
- if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
- createjs.Sound.play("crash");
- }
- _iLives--;
- _oLivesText.text = "X" + _iLives;
- if (_iLives === 0) {
- this._gameOver();
- }
- };
- this._resetHurt = function() {
- _oHurt.visible = false;
- _oHurt.alpha = 0.5;
- };
- this._gameOver = function() {
- _bUpdate = false;
- var oSprite = s_oSpriteLibrary.getSprite('msg_box');
- _oGameOverPanel = new CEndPanel(oSprite);
- _oGameOverPanel.show(_iScore, _numIngredients, _iMaxHeroSpeed, _totTime);
- };
- this._onReleaseLeft = function() {
- if (_iCurHeroX === 0 || _oHero.isJumping()) {
- return;
- }
- _iCurHeroX--;
- _oHero.move(_aLineXPos[_iCurHeroX]);
- if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
- createjs.Sound.play("steer");
- }
- };
- this._onReleaseRight = function() {
- if (_iCurHeroX === NUM_LINES || _oHero.isJumping()) {
- return;
- }
- _iCurHeroX++;
- _oHero.move(_aLineXPos[_iCurHeroX], 1 - ((NUM_LINES - _iCurHeroX) * 0.2));
- if (DISABLE_SOUND_MOBILE === false || s_bMobile === false) {
- createjs.Sound.play("steer");
- }
- };
- this._onExit = function() {
- this.unload();
- s_oMain.gotoMenu();
- jQuery(s_oMain).trigger("restart");
- };
- this._onAudioToggle = function() {
- createjs.Sound.setMute(s_bAudioActive);
- s_bAudioActive = !s_bAudioActive;
- };
- this._checkCollision = function(oObstacle) {
- var vHeroPos = _oHero.getPos();
- var vObstaclePos = oObstacle.getPos();
- var fObstacleRadius = oObstacle.getSquareRadius();
- var fDistance = ((vObstaclePos.x - vHeroPos.x) * (vObstaclePos.x - vHeroPos.x)) +
- ((vObstaclePos.y - vHeroPos.y) * (vObstaclePos.y - vHeroPos.y));
- if (fDistance < fObstacleRadius) {
- return true;
- } else {
- return false;
- }
- };
- this._updateMove = function() {
- _iSpeed += ACCELLERATION;
- if (_iSpeed > _iMaxHeroSpeed) {
- _iSpeed = _iMaxHeroSpeed;
- }
- _oHero.update();
- _oScrollingBg.update(Math.floor(_iSpeed));
- };
- this.updateObstacles = function() {
- for (var i = 0; i < _aObstacleInScene.length; i++) {
- _aObstacleInScene[i].update((_iSpeed * s_fCurForceFactor));
- if (_oHero.isJumping() === false && this._checkCollision(_aObstacleInScene[i])) {
- _aObstacleInScene[i].reset();
- this._lifeLost();
- } else if (_aObstacleInScene[i].getFront() > CANVAS_HEIGHT) {
- _aObstacleInScene[i].reset();
- }
- }
- };
- this.updateIngredients = function() {
- for (var i = 0; i < _aIngredientsInScene.length; i++) {
- _aIngredientsInScene[i].update((_iSpeed + 1));
- if (_oHero.isJumping() === false && this._checkCollision(_aIngredientsInScene[i])) {
- _aIngredientsInScene[i].reset();
- this._ingredientsScore();
- } else if (_aIngredientsInScene[i].getFront() > CANVAS_HEIGHT) {
- _aIngredientsInScene[i].reset();
- }
- }
- };
- this.update = function() {
- if (_bUpdate === false) {
- return;
- }
- this._updateMove();
- this.updateIngredients();
- this.updateObstacles();
- _iTimeElaps += s_iTimeElaps;
- if (_iTimeElaps >= 1000) {
- _iTimeElaps -= 1000;
- this._increaseScore();
- }
- };
- s_oGame = this;
- MAX_STARTING_SPEED = oInfo.max_start_speed;
- console.log('speed is '+MAX_STARTING_SPEED)
- INCREASE_SPEED_UP_INTERVAL = oInfo.increase_speed_up_interval;
- INCREASE_SPEED = oInfo.increase_speed;
- SCORE_INGREDIENT_INCREASE = oInfo.score_ingredient_increase;
- DISTANCE_AMONG_OBSTACLES = oInfo.dist_obstacles;
- ACCELLERATION = oInfo.accelleration;
- SCORE_INCREASE = oInfo.score_increase;
- MALUS_SCORE = oInfo.malus_score;
- NUM_LIVES = oInfo.lives;
- this._init();
- }
- var s_oGame;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement