123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698 |
- function CSpriteLibrary() {
- var a, d, b, c, f, e;
- this.init = function (g, k, l) {
- b = d = 0;
- c = g;
- f = k;
- e = l;
- a = {};
- };
- this.addSprite = function (b, c) {
- a.hasOwnProperty(b) || ((a[b] = { szPath: c, oSprite: new Image() }), d++);
- };
- this.getSprite = function (b) {
- return a.hasOwnProperty(b) ? a[b].oSprite : null;
- };
- this._onSpritesLoaded = function () {
- f.call(e);
- };
- this._onSpriteLoaded = function () {
- c.call(e);
- ++b == d && this._onSpritesLoaded();
- };
- this.loadSprites = function () {
- for (var b in a)
- (a[b].oSprite.oSpriteLibrary = this),
- (a[b].oSprite.onload = function () {
- this.oSpriteLibrary._onSpriteLoaded();
- }),
- (a[b].oSprite.src = a[b].szPath);
- };
- this.getNumSprites = function () {
- return d;
- };
- }
- var CANVAS_WIDTH = 1024,
- CANVAS_HEIGHT = 768,
- DISABLE_SOUND_MOBILE = !1,
- FPS_TIME = 1e3 / 24,
- STATE_LOADING = 0,
- STATE_MENU = 1,
- STATE_HELP = 1,
- STATE_GAME = 3,
- ON_MOUSE_DOWN = 0,
- ON_MOUSE_UP = 1,
- ON_MOUSE_OVER = 2,
- ON_MOUSE_OUT = 3,
- ON_DRAG_START = 4,
- ON_DRAG_END = 5,
- ON_PRESS_MOVE = 6,
- SCOPE_ACCELERATION,
- SCOPE_FRICTION,
- MAX_SCOPE_SPEED,
- NUM_BULLETS,
- SCORE_HIT,
- BONUS_TIME,
- PLAYER_LIVES,
- DUCK_INCREASE_SPEED,
- DUCK_START_SPEED = 1;
- function CToggle(a, d, b, c) {
- var f, e, g, k;
- this._init = function (a, b, c, d) {
- e = [];
- g = [];
- var n = new createjs.SpriteSheet({
- images: [c],
- frames: { width: c.width / 2, height: c.height, regX: c.width / 2 / 2, regY: c.height / 2 },
- animations: { state_true: [0], state_false: [1] },
- });
- f = d;
- k = createSprite(n, "state_" + f, c.width / 2 / 2, c.height / 2, c.width / 2, c.height);
- k.x = a;
- k.y = b;
- k.stop();
- s_oStage.addChild(k);
- this._initListener();
- };
- this.unload = function () {
- k.off("mousedown", this.buttonDown);
- k.off("pressup", this.buttonRelease);
- s_oStage.removeChild(k);
- };
- this._initListener = function () {
- k.on("mousedown", this.buttonDown);
- k.on("pressup", this.buttonRelease);
- };
- this.addEventListener = function (a, b, c) {
- e[a] = b;
- g[a] = c;
- };
- this.setActive = function (a) {
- f = a;
- k.gotoAndStop("state_" + f);
- };
- this.buttonRelease = function () {
- k.scaleX = 1;
- k.scaleY = 1;
- (!1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile) || createjs.Sound.play("click");
- f = !f;
- k.gotoAndStop("state_" + f);
- e[ON_MOUSE_UP] && e[ON_MOUSE_UP].call(g[ON_MOUSE_UP], f);
- };
- this.buttonDown = function () {
- k.scaleX = 0.9;
- k.scaleY = 0.9;
- e[ON_MOUSE_DOWN] && e[ON_MOUSE_DOWN].call(g[ON_MOUSE_DOWN]);
- };
- this._init(a, d, b, c);
- }
- var s_iScaleFactor = 1,
- s_oCanvasLeft,
- s_oCanvasTop;
- (function (a) {
- (jQuery.browser = jQuery.browser || {}).mobile =
- /android|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(ad|hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|tablet|treo|up\.(browser|link)|vodafone|wap|webos|windows (ce|phone)|xda|xiino/i.test(
- a
- ) ||
- /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(
- a.substr(0, 4)
- );
- })(navigator.userAgent || navigator.vendor || window.opera);
- $(window).resize(function () {
- sizeHandler();
- });
- function trace(a) {
- console.log(a);
- }
- $(window).ready(function () {
- sizeHandler();
- });
- window.addEventListener("orientationchange", onOrientationChange);
- function onOrientationChange() {
- window.matchMedia("(orientation: portrait)").matches && sizeHandler();
- window.matchMedia("(orientation: landscape)").matches && sizeHandler();
- }
- function sizeHandler() {
- window.scrollTo(0, 1);
- if ($("#canvas")) {
- var a = CANVAS_WIDTH,
- b = CANVAS_HEIGHT,
- c,
- d;
- !0 === inIframe() && "ios" == getMobileOperatingSystem()
- ? (top.location.href = document.location.href)
- : ((c = window.innerWidth),
- (d = window.innerHeight),
- (multiplier = s_iScaleFactor = Math.min(d / b, c / a)),
- (a *= multiplier),
- (b *= multiplier),
- $("#canvas").css("width", a + "px"),
- $("#canvas").css("height", b + "px"),
- $("#canvas").css("left", c / 2 - a / 2 + "px"),
- (s_oCanvasLeft = $("#canvas").offset().left),
- (s_oCanvasTop = $("#canvas").offset().top));
- }
- }
- function getMobileOperatingSystem() {
- var a = navigator.userAgent || navigator.vendor || window.opera;
- return a.match(/iPad/i) || a.match(/iPhone/i) || a.match(/iPod/i) ? "ios" : a.match(/Android/i) ? "android" : "unknown";
- }
- function inIframe() {
- try {
- return window.self !== window.top;
- } catch (a) {
- return !0;
- }
- }
- function createBitmap(a, d, b) {
- var c = new createjs.Bitmap(a),
- f = new createjs.Shape();
- d && b ? f.graphics.beginFill("#fff").drawRect(0, 0, d, b) : f.graphics.beginFill("#ff0").drawRect(0, 0, a.width, a.height);
- c.hitArea = f;
- return c;
- }
- function createSprite(a, d, b, c, f, e) {
- a = null !== d ? new createjs.Sprite(a, d) : new createjs.Sprite(a);
- d = new createjs.Shape();
- d.graphics.beginFill("#000000").drawRect(-b, -c, f, e);
- a.hitArea = d;
- return a;
- }
- function randomFloatBetween(a, d, b) {
- "undefined" === typeof b && (b = 2);
- return parseFloat(Math.min(a + Math.random() * (d - a), d).toFixed(b));
- }
- function shuffle(a) {
- for (var d = a.length, b, c; 0 !== d; ) (c = Math.floor(Math.random() * d)), --d, (b = a[d]), (a[d] = a[c]), (a[c] = b);
- return a;
- }
- function easeLinear(a, d, b, c) {
- return (b * a) / c + d;
- }
- function easeInQuad(a, d, b, c) {
- return b * (a /= c) * a + d;
- }
- function easeInSine(a, d, b, c) {
- return -b * Math.cos((a / c) * (Math.PI / 2)) + b + d;
- }
- function easeInCubic(a, d, b, c) {
- return b * (a /= c) * a * a + d;
- }
- function getTrajectoryPoint(a, d) {
- var b = new createjs.Point(),
- c = (1 - a) * (1 - a),
- f = a * a;
- b.x = c * d.start.x + 2 * (1 - a) * a * d.traj.x + f * d.end.x;
- b.y = c * d.start.y + 2 * (1 - a) * a * d.traj.y + f * d.end.y;
- return b;
- }
- function formatTime(a) {
- a /= 1e3;
- var d = Math.floor(a / 60);
- a = parseFloat(a - 60 * d).toFixed(1);
- var b = "",
- b = 10 > d ? b + ("0" + d + ":") : b + (d + ":");
- return (b = 10 > a ? b + ("0" + a) : b + a);
- }
- function degreesToRadians(a) {
- return (a * Math.PI) / 180;
- }
- function checkRectCollision(a, d) {
- var b, c;
- b = getBounds(a, 0.9);
- c = getBounds(d, 0.98);
- return calculateIntersection(b, c);
- }
- function calculateIntersection(a, d) {
- var b, c, f, e, g, k, l, h;
- b = a.x + (f = a.width / 2);
- c = a.y + (e = a.height / 2);
- g = d.x + (k = d.width / 2);
- l = d.y + (h = d.height / 2);
- b = Math.abs(b - g) - (f + k);
- c = Math.abs(c - l) - (e + h);
- return 0 > b && 0 > c
- ? ((b = Math.min(Math.min(a.width, d.width), -b)),
- (c = Math.min(Math.min(a.height, d.height), -c)),
- { x: Math.max(a.x, d.x), y: Math.max(a.y, d.y), width: b, height: c, rect1: a, rect2: d })
- : null;
- }
- function getBounds(a, d) {
- var b = { x: Infinity, y: Infinity, width: 0, height: 0 };
- if (a instanceof createjs.Container) {
- b.x2 = -Infinity;
- b.y2 = -Infinity;
- var c = a.children,
- f = c.length,
- e,
- g;
- for (g = 0; g < f; g++)
- (e = getBounds(c[g], 1)),
- e.x < b.x && (b.x = e.x),
- e.y < b.y && (b.y = e.y),
- e.x + e.width > b.x2 && (b.x2 = e.x + e.width),
- e.y + e.height > b.y2 && (b.y2 = e.y + e.height);
- Infinity == b.x && (b.x = 0);
- Infinity == b.y && (b.y = 0);
- Infinity == b.x2 && (b.x2 = 0);
- Infinity == b.y2 && (b.y2 = 0);
- b.width = b.x2 - b.x;
- b.height = b.y2 - b.y;
- delete b.x2;
- delete b.y2;
- } else {
- var k, l;
- a instanceof createjs.Bitmap
- ? ((f = a.sourceRect || a.image), (g = f.width * d), (k = f.height * d))
- : a instanceof createjs.Sprite
- ? a.spriteSheet._frames && a.spriteSheet._frames[a.currentFrame] && a.spriteSheet._frames[a.currentFrame].image
- ? ((f = a.spriteSheet.getFrame(a.currentFrame)), (g = f.rect.width), (k = f.rect.height), (c = f.regX), (l = f.regY))
- : ((b.x = a.x || 0), (b.y = a.y || 0))
- : ((b.x = a.x || 0), (b.y = a.y || 0));
- c = c || 0;
- g = g || 0;
- l = l || 0;
- k = k || 0;
- b.regX = c;
- b.regY = l;
- f = a.localToGlobal(0 - c, 0 - l);
- e = a.localToGlobal(g - c, k - l);
- g = a.localToGlobal(g - c, 0 - l);
- c = a.localToGlobal(0 - c, k - l);
- b.x = Math.min(Math.min(Math.min(f.x, e.x), g.x), c.x);
- b.y = Math.min(Math.min(Math.min(f.y, e.y), g.y), c.y);
- b.width = Math.max(Math.max(Math.max(f.x, e.x), g.x), c.x) - b.x;
- b.height = Math.max(Math.max(Math.max(f.y, e.y), g.y), c.y) - b.y;
- }
- return b;
- }
- function NoClickDelay(a) {
- this.element = a;
- window.Touch && this.element.addEventListener("touchstart", this, !1);
- }
- function shuffle(a) {
- for (var d = a.length, b, c; 0 < d; ) (c = Math.floor(Math.random() * d)), d--, (b = a[d]), (a[d] = a[c]), (a[c] = b);
- return a;
- }
- NoClickDelay.prototype = {
- handleEvent: function (a) {
- switch (a.type) {
- case "touchstart":
- this.onTouchStart(a);
- break;
- case "touchmove":
- this.onTouchMove(a);
- break;
- case "touchend":
- this.onTouchEnd(a);
- }
- },
- onTouchStart: function (a) {
- a.preventDefault();
- this.moved = !1;
- this.element.addEventListener("touchmove", this, !1);
- this.element.addEventListener("touchend", this, !1);
- },
- onTouchMove: function (a) {
- this.moved = !0;
- },
- onTouchEnd: function (a) {
- this.element.removeEventListener("touchmove", this, !1);
- this.element.removeEventListener("touchend", this, !1);
- if (!this.moved) {
- a = document.elementFromPoint(a.changedTouches[0].clientX, a.changedTouches[0].clientY);
- 3 == a.nodeType && (a = a.parentNode);
- var d = document.createEvent("MouseEvents");
- d.initEvent("click", !0, !0);
- a.dispatchEvent(d);
- }
- },
- };
- (function () {
- function a(a) {
- var c = { focus: "visible", focusin: "visible", pageshow: "visible", blur: "hidden", focusout: "hidden", pagehide: "hidden" };
- a = a || window.event;
- a.type in c
- ? (document.body.className = c[a.type])
- : ((document.body.className = this[d] ? "hidden" : "visible"), "hidden" === document.body.className ? s_oMain.stopUpdate() : s_oMain.startUpdate());
- }
- var d = "hidden";
- d in document
- ? document.addEventListener("visibilitychange", a)
- : (d = "mozHidden") in document
- ? document.addEventListener("mozvisibilitychange", a)
- : (d = "webkitHidden") in document
- ? document.addEventListener("webkitvisibilitychange", a)
- : (d = "msHidden") in document
- ? document.addEventListener("msvisibilitychange", a)
- : "onfocusin" in document
- ? (document.onfocusin = document.onfocusout = a)
- : (window.onpageshow = window.onpagehide = window.onfocus = window.onblur = a);
- })();
- function CTextButton(a, d, b, c, f, e, g) {
- var k, l, h;
- this._init = function (a, b, c, d, e, f, g) {
- k = [];
- l = [];
- var y = createBitmap(c),
- q = Math.ceil(g / 20),
- v = new createjs.Text(d, "bold " + g + "px " + e, "#000000");
- v.textAlign = "center";
- v.textBaseline = "alphabetic";
- var z = v.getBounds();
- v.x = c.width / 2 + q;
- v.y = Math.floor(c.height / 2) + z.height / 3 + q;
- d = new createjs.Text(d, "bold " + g + "px " + e, f);
- d.textAlign = "center";
- d.textBaseline = "alphabetic";
- z = d.getBounds();
- d.x = c.width / 2;
- d.y = Math.floor(c.height / 2) + z.height / 3;
- h = new createjs.Container();
- h.x = a;
- h.y = b;
- h.regX = c.width / 2;
- h.regY = c.height / 2;
- h.addChild(y, v, d);
- s_oStage.addChild(h);
- this._initListener();
- };
- this.unload = function () {
- h.off("mousedown");
- h.off("pressup");
- s_oStage.removeChild(h);
- };
- this.setVisible = function (a) {
- h.visible = a;
- };
- this._initListener = function () {
- oParent = this;
- h.on("mousedown", this.buttonDown);
- h.on("pressup", this.buttonRelease);
- };
- this.addEventListener = function (a, b, c) {
- k[a] = b;
- l[a] = c;
- };
- this.buttonRelease = function () {
- h.scaleX = 1;
- h.scaleY = 1;
- k[ON_MOUSE_UP] && k[ON_MOUSE_UP].call(l[ON_MOUSE_UP]);
- };
- this.buttonDown = function () {
- h.scaleX = 0.9;
- h.scaleY = 0.9;
- k[ON_MOUSE_DOWN] && k[ON_MOUSE_DOWN].call(l[ON_MOUSE_DOWN]);
- };
- this.setPosition = function (a, b) {
- h.x = a;
- h.y = b;
- };
- this.setX = function (a) {
- h.x = a;
- };
- this.setY = function (a) {
- h.y = a;
- };
- this.getButtonImage = function () {
- return h;
- };
- this.getX = function () {
- return h.x;
- };
- this.getY = function () {
- return h.y;
- };
- this._init(a, d, b, c, f, e, g);
- return this;
- }
- function CScoreText(a, d, b) {
- var c;
- this._init = function (a, b, d) {
- c = new createjs.Text("00000", "bold 30px ComicSansMS-Bold", "#ffffff");
- c.textAlign = "right";
- c.text = a;
- c.x = b;
- c.y = d;
- c.alpha = 0;
- c.shadow = new createjs.Shadow("#000000", 2, 2, 2);
- s_oStage.addChild(c);
- var k = this;
- createjs.Tween.get(c)
- .to({ alpha: 1 }, 400, createjs.Ease.quadIn)
- .call(function () {
- k.moveUp();
- });
- };
- this.moveUp = function () {
- var a = c.y - 100,
- b = this;
- createjs.Tween.get(c)
- .to({ y: a }, 1e3, createjs.Ease.sineIn)
- .call(function () {
- b.unload();
- });
- };
- this.unload = function () {
- s_oStage.removeChild(c);
- };
- this._init(a, d, b);
- }
- function CScope() {
- var a,
- d,
- b,
- c,
- f = !1,
- e = !1,
- g = !1,
- k = !1,
- l,
- h,
- p,
- u;
- this._init = function () {
- a = 88;
- d = 87.5;
- h = l = 0;
- var e = s_oSpriteLibrary.getSprite("scope");
- b = createBitmap(e);
- b.x = CANVAS_WIDTH / 2 - a;
- b.y = CANVAS_HEIGHT / 2 - d;
- s_oStage.addChild(b);
- e = {
- images: [s_oSpriteLibrary.getSprite("tap_shot")],
- frames: { width: 200, height: 200, regX: 100, regY: 100 },
- animations: { show: [0, 19, "hide"], hide: [20, 21] },
- };
- e = new createjs.SpriteSheet(e);
- c = createSprite(e, "hide", 100, 100, 200, 200);
- c.addEventListener("animationend", this.onAnimationEnd);
- c.stop();
- c.visible = !1;
- s_oStage.addChild(c);
- };
- this.unload = function () {
- c.removeEventListener("animationend", oParent.onAnimationEnd);
- };
- this.resetAllDirection = function () {
- k = g = e = f = !1;
- };
- this.onAnimationEnd = function () {
- c.visible = !1;
- };
- this.playShot = function () {
- c.x = b.x + a;
- c.y = b.y + d;
- c.visible = !0;
- c.gotoAndPlay("show");
- (!1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile) || createjs.Sound.play("shot");
- };
- this._checkBoundary = function () {
- b.x + a > CANVAS_WIDTH && (b.x = CANVAS_WIDTH - a);
- 0 > b.x + a && (b.x = -a);
- b.y + d > CANVAS_HEIGHT && (b.y = CANVAS_HEIGHT - d);
- 0 > b.y + d && (b.y = -d);
- };
- this.bullsEye = function () {
- p = b.x + a;
- u = b.y + d;
- return { x: p, y: u };
- };
- this.upStop = function () {
- g = !1;
- };
- this.downStop = function () {
- k = !1;
- };
- this.leftStop = function () {
- f = !1;
- };
- this.rightStop = function () {
- e = !1;
- };
- this.moveLeft = function () {
- f = !0;
- };
- this.moveRight = function () {
- e = !0;
- };
- this.moveUp = function () {
- g = !0;
- };
- this.moveDown = function () {
- k = !0;
- };
- this.getSprite = function () {
- return b;
- };
- this.update = function () {
- e && g
- ? ((l += SCOPE_ACCELERATION), (h -= SCOPE_ACCELERATION))
- : e && k
- ? ((l += SCOPE_ACCELERATION), (h += SCOPE_ACCELERATION))
- : f && k
- ? ((l -= SCOPE_ACCELERATION), (h += SCOPE_ACCELERATION))
- : f && g
- ? ((l -= SCOPE_ACCELERATION), (h -= SCOPE_ACCELERATION))
- : f
- ? (l -= SCOPE_ACCELERATION)
- : e
- ? (l += SCOPE_ACCELERATION)
- : g
- ? (h -= SCOPE_ACCELERATION)
- : k && (h += SCOPE_ACCELERATION);
- b.x += l;
- b.y += h;
- l *= SCOPE_FRICTION;
- h *= SCOPE_FRICTION;
- l > MAX_SCOPE_SPEED && (l = MAX_SCOPE_SPEED);
- l < -MAX_SCOPE_SPEED && (l = -MAX_SCOPE_SPEED);
- h > MAX_SCOPE_SPEED && (h = MAX_SCOPE_SPEED);
- h < -MAX_SCOPE_SPEED && (h = -MAX_SCOPE_SPEED);
- 0.2 > Math.abs(l) && (l = 0);
- 0.2 > Math.abs(h) && (h = 0);
- this._checkBoundary();
- };
- this._init();
- }
- function CPreloader() {
- var a;
- this._init = function () {
- this._onAllPreloaderImagesLoaded();
- };
- this._onPreloaderImagesLoaded = function () {};
- this._onAllPreloaderImagesLoaded = function () {
- a = new createjs.Text("", "bold 22px Arial center", "#ffffff");
- a.x = CANVAS_WIDTH / 2 - 40;
- a.y = CANVAS_HEIGHT / 2;
- s_oStage.addChild(a);
- };
- this.unload = function () {
- s_oStage.removeChild(a);
- };
- this.refreshLoader = function (d) {
- a.text = d + "%";
- };
- this._init();
- }
- function CMenu() {
- var a, d, b, c;
- this._init = function () {
- a = createBitmap(s_oSpriteLibrary.getSprite("bg_menu"));
- s_oStage.addChild(a);
- var f = s_oSpriteLibrary.getSprite("but_play");
- d = new CTextButton(CANVAS_WIDTH / 2, CANVAS_HEIGHT - 80, f, TEXT_PLAY, "walibi0615bold", "#ffffff", 40);
- d.addEventListener(ON_MOUSE_UP, this._onButPlayRelease, this);
- var e,
- f = s_oSpriteLibrary.getSprite("but_exit");
- // _oButExit = new CGfxButton(CANVAS_WIDTH - f.height / 2 - 10, f.height / 2 + 10, f, !0);
- // _oButExit.addEventListener(ON_MOUSE_UP, this._onExit, this);
- e = CANVAS_WIDTH - f.width / 2 - 80;
- if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile)
- (f = s_oSpriteLibrary.getSprite("audio_icon")),
- (c = new CToggle(e, 10 + f.height / 2, f, s_bAudioActive)),
- c.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this),
- s_oSoundTrack.setVolume(1);
- b = new createjs.Shape();
- b.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
- s_oStage.addChild(b);
- createjs.Tween.get(b)
- .to({ alpha: 0 }, 1e3)
- .call(function () {
- b.visible = !1;
- });
- };
- this.unload = function () {
- d.unload();
- d = null;
- if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) c.unload(), (c = null);
- s_oStage.removeChild(a);
- a = null;
- };
- this._onAudioToggle = function () {
- createjs.Sound.setMute(s_bAudioActive);
- s_bAudioActive = !s_bAudioActive;
- };
- this._onButPlayRelease = function () {
- this.unload();
- (!1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile) || createjs.Sound.play("click");
- s_oMain.gotoGame();
- };
- this._init();
- }
- function CMain(a) {
- var d,
- b = 0,
- c = 0,
- f = STATE_LOADING,
- e,
- g,
- k;
- this.initContainer = function () {
- s_oCanvas = document.getElementById("canvas");
- s_oStage = new createjs.Stage(s_oCanvas);
- s_oStage.preventSelection = false;
- createjs.Touch.enable(s_oStage);
- s_bMobile = jQuery.browser.mobile;
- !1 === s_bMobile &&
- (s_oStage.enableMouseOver(20),
- $("body").on("contextmenu", "#canvas", function (a) {
- return !1;
- }));
- s_iPrevTime = new Date().getTime();
- createjs.Ticker.addEventListener("tick", this._update);
- createjs.Ticker.setFPS(30);
- navigator.userAgent.match(/Windows Phone/i) && (DISABLE_SOUND_MOBILE = !0);
- (!1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile) || this._initSounds();
- s_oSpriteLibrary = new CSpriteLibrary();
- g = new CPreloader();
- this._loadImages();
- d = !0;
- };
- this.soundLoaded = function () {
- b++;
- if (b === c) {
- g.unload();
- if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) s_oSoundTrack = createjs.Sound.play("soundtrack", { loop: 100 });
- this.gotoMenu();
- }
- };
- this._initSounds = function () {
- createjs.Sound.initializeDefaultPlugins() &&
- (0 < navigator.userAgent.indexOf("Opera") || 0 < navigator.userAgent.indexOf("OPR")
- ? ((createjs.Sound.alternateExtensions = ["m4a"]),
- createjs.Sound.addEventListener("fileload", createjs.proxy(this.soundLoaded, this)),
- createjs.Sound.registerSound("./sounds/ds_duck_hit.ogg", "duck_hit", 5),
- createjs.Sound.registerSound("./sounds/ds_duck_intro.ogg", "duck_intro", 5),
- createjs.Sound.registerSound("./sounds/ds_game_over.ogg", "game_over", 5),
- createjs.Sound.registerSound("./sounds/ds_no_bullets.ogg", "click"),
- createjs.Sound.registerSound("./sounds/ds_shot.ogg", "shot"),
- createjs.Sound.registerSound("./sounds/ds_soundtrack.ogg", "soundtrack"))
- : ((createjs.Sound.alternateExtensions = ["ogg"]),
- createjs.Sound.addEventListener("fileload", createjs.proxy(this.soundLoaded, this)),
- createjs.Sound.registerSound("./sounds/ds_duck_hit.m4a", "duck_hit", 5),
- createjs.Sound.registerSound("./sounds/ds_duck_intro.m4a", "duck_intro", 5),
- createjs.Sound.registerSound("./sounds/ds_game_over.m4a", "game_over", 5),
- createjs.Sound.registerSound("./sounds/ds_no_bullets.m4a", "click"),
- createjs.Sound.registerSound("./sounds/ds_shot.m4a", "shot"),
- createjs.Sound.registerSound("./sounds/ds_soundtrack.m4a", "soundtrack")),
- (c += 6));
- };
- this._loadImages = function () {
- s_oSpriteLibrary.init(this._onImagesLoaded, this._onAllImagesLoaded, this);
- s_oSpriteLibrary.addSprite("but_play", "./sprites/but_play.png");
- s_oSpriteLibrary.addSprite("but_exit", "./sprites/but_exit.png");
- s_oSpriteLibrary.addSprite("bg_menu", "./sprites/bg_menu.jpg");
- s_oSpriteLibrary.addSprite("msg_box", "./sprites/msg_box.png");
- s_oSpriteLibrary.addSprite("but_left", "./sprites/but_left.png");
- s_oSpriteLibrary.addSprite("but_right", "./sprites/but_right.png");
- s_oSpriteLibrary.addSprite("but_up", "./sprites/but_up.png");
- s_oSpriteLibrary.addSprite("but_down", "./sprites/but_down.png");
- s_oSpriteLibrary.addSprite("but_upleft", "./sprites/but_up_left.png");
- s_oSpriteLibrary.addSprite("but_downleft", "./sprites/but_down_left.png");
- s_oSpriteLibrary.addSprite("but_upright", "./sprites/but_up_right.png");
- s_oSpriteLibrary.addSprite("but_downright", "./sprites/but_down_right.png");
- s_oSpriteLibrary.addSprite("shot_panel", "./sprites/shot_panel.png");
- s_oSpriteLibrary.addSprite("hit_panel", "./sprites/hit_panel.png");
- s_oSpriteLibrary.addSprite("bullet", "./sprites/bullet.png");
- s_oSpriteLibrary.addSprite("tap_shot", "./sprites/tap_shot.png");
- s_oSpriteLibrary.addSprite("hit_icon", "./sprites/hit_icon.png");
- s_oSpriteLibrary.addSprite("audio_icon", "./sprites/audio_icon.png");
- s_oSpriteLibrary.addSprite("bg_game", "./sprites/bg_game.jpg");
- s_oSpriteLibrary.addSprite("grass", "./sprites/grass.png");
- s_oSpriteLibrary.addSprite("tree", "./sprites/tree.png");
- s_oSpriteLibrary.addSprite("scope", "./sprites/gun_sight.png");
- s_oSpriteLibrary.addSprite("tap_shot", "./sprites/tap_shot.png");
- s_oSpriteLibrary.addSprite("duck_1", "./sprites/duck_1.png");
- s_oSpriteLibrary.addSprite("duck_2", "./sprites/duck_2.png");
- s_oSpriteLibrary.addSprite("duck_3", "./sprites/duck_3.png");
- s_oSpriteLibrary.addSprite("duck_4", "./sprites/duck_4.png");
- s_oSpriteLibrary.addSprite("target", "./sprites/target.png");
- s_oSpriteLibrary.addSprite("life_panel", "./sprites/life_panel.png");
- s_oSpriteLibrary.addSprite("help_panel_desktop", "./sprites/help_panel_desktop.png");
- s_oSpriteLibrary.addSprite("help_panel_mobile", "./sprites/help_panel_mobile.png");
- c += s_oSpriteLibrary.getNumSprites();
- s_oSpriteLibrary.loadSprites();
- };
- this._onImagesLoaded = function () {
- b++;
- g.refreshLoader(Math.floor((b / c) * 100));
- if (b === c) {
- g.unload();
- if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) s_oSoundTrack = createjs.Sound.play("soundtrack", { loop: 100 });
- this.gotoMenu();
- }
- };
- this._onAllImagesLoaded = function () {};
- this.onAllPreloaderImagesLoaded = function () {
- this._loadImages();
- };
- this.gotoMenu = function () {
- new CMenu();
- f = STATE_MENU;
- };
- this.gotoGame = function () {
- k = new CGame(e);
- f = STATE_GAME;
- $(s_oMain).trigger("game_start");
- };
- this.gotoHelp = function () {
- new CHelp();
- f = STATE_HELP;
- };
- this.stopUpdate = function () {
- d = !1;
- };
- this.startUpdate = function () {
- d = !0;
- };
- this._update = function (a) {
- if (!1 !== d) {
- var b = new Date().getTime();
- s_iTimeElaps = b - s_iPrevTime;
- s_iCntTime += s_iTimeElaps;
- s_iCntFps++;
- s_iPrevTime = b;
- 1e3 <= s_iCntTime && ((s_iCurFps = s_iCntFps), (s_iCntTime -= 1e3), (s_iCntFps = 0));
- f === STATE_GAME && k.update();
- s_oStage.update(a);
- }
- };
- s_oMain = this;
- e = a;
- this.initContainer();
- }
- var s_bMobile,
- s_bAudioActive = !0,
- s_iCntTime = 0,
- s_iTimeElaps = 0,
- s_iPrevTime = 0,
- s_iCntFps = 0,
- s_iCurFps = 0,
- s_oDrawLayer,
- s_oStage,
- s_oMain,
- s_oSpriteLibrary,
- s_oSoundTrack,
- s_oCanvas;
- TEXT_GAMEOVER = "GAME OVER";
- TEXT_SCORE = "SCORE";
- TEXT_PLAY = "PLAY";
- TEXT_HELP1 = "USE ARROW BUTTONS OR KEYS TO MOVE THE SCOPE";
- TEXT_HELP2 = "CLICK SPACEBAR OR FIRE BUTTON TO SHOOT";
- TEXT_HELP3 = "YOU HAVE 3 BULLETS TO HIT THE AIRCRAFTS, DON'T LET IT FLY AWAY OR YOU WILL LOSE A LIFE";
- TEXT_HELP_MOB1 = "USE ARROW BUTTONS TO MOVE THE SCOPE";
- TEXT_HELP_MOB2 = "PRESS FIRE BUTTON TO SHOOT";
- TEXT_SHOOT = "SHOOT";
- TEXT_HIT = "HIT";
- TEXT_BONUS = "BONUS SCORE";
- TEXT_SCORE = "SCORE";
- TEXT_NOAMMO = "NO AMMO";
- TEXT_MULTIPLY = "MULTIPY";
- function CInterface() {
- var a, d, b, c, f, e, g, k, l, h, p, u, n, r, t, x, B, y;
- this._init = function () {
- a = 0;
- p = [];
- y = createBitmap(s_oSpriteLibrary.getSprite("life_panel"));
- y.x = 770;
- y.y = 600;
- s_oStage.addChild(y);
- _oButShot = new CGfxButton(897, 688, s_oSpriteLibrary.getSprite("shot_panel"), !0);
- _oButShot.addEventListener(ON_MOUSE_UP, this._onShot, this);
- b = createBitmap(s_oSpriteLibrary.getSprite("hit_panel"));
- b.x = 218;
- b.y = 643;
- s_oStage.addChild(b);
- x = new createjs.Text(TEXT_HIT, "bold 30px walibi0615bold", "#ffffff");
- x.x = 238;
- x.y = 663;
- s_oStage.addChild(x);
- r = new createjs.Text(TEXT_BONUS, "bold 22px walibi0615bold", "#ffffff");
- r.x = 360;
- r.y = 658;
- s_oStage.addChild(r);
- u = new createjs.Text(TEXT_SCORE, "bold 30px walibi0615bold", "#000");
- u.x = 32;
- u.y = 12;
- s_oStage.addChild(u);
- n = new createjs.Text(TEXT_SCORE, "bold 30px walibi0615bold", "#ffffff");
- n.x = 30;
- n.y = 10;
- s_oStage.addChild(n);
- g = new createjs.Text(TEXT_NOAMMO, "bold 30px walibi0615bold", "#ffffff");
- g.x = 800;
- g.y = 670;
- g.lineWidth = 60;
- g.shadow = new createjs.Shadow("#000", 2, 2, 2);
- g.visible = !1;
- s_oStage.addChild(g);
- k = new createjs.Text("X " + PLAYER_LIVES, "bold 22px walibi0615bold", "#ffffff");
- k.x = 895;
- k.y = 630;
- k.textAlign = "right";
- k.textBaseline = "alphabetic";
- s_oStage.addChild(k);
- f = new createjs.Text("0", "bold 30px walibi0615bold", "#000");
- f.x = 172;
- f.y = 12;
- s_oStage.addChild(f);
- c = new createjs.Text("0", "bold 30px walibi0615bold", "#ffffff");
- c.x = 170;
- c.y = 10;
- s_oStage.addChild(c);
- e = new createjs.Text("", "bold 30px walibi0615bold", "yellow");
- e.textAlign = "center";
- e.shadow = new createjs.Shadow("#000", 2, 2, 2);
- t = new createjs.Text("0000", "bold 30px ComicSansMS-Bold", "#ffffff");
- t.x = 660;
- t.y = 682;
- t.textAlign = "right";
- t.textBaseline = "alphabetic";
- s_oStage.addChild(t);
- l = [];
- for (
- var q = s_oSpriteLibrary.getSprite("hit_icon"),
- v = new createjs.SpriteSheet({ images: [q], frames: { width: 51, height: 43 }, animations: { nohit: [0], hit: [1] } }),
- z = 230,
- q = 0;
- 9 > q;
- q++
- ) {
- var w = createSprite(v, "nohit", 0, 0, 51, 43);
- w.x = z;
- w.y = 710;
- w.visible = !1;
- s_oStage.addChild(w);
- l[q] = w;
- z += 58;
- }
- h = [];
- v = 800;
- for (q = 0; q < NUM_BULLETS; q++)
- (w = createBitmap(s_oSpriteLibrary.getSprite("bullet"))), (w.x = v), (w.y = 680), s_oStage.addChild(w), (h[q] = w), (v += 30);
- q = s_oSpriteLibrary.getSprite("but_exit");
- // d = new CGfxButton(CANVAS_WIDTH - q.height / 2 - 10, q.height / 2 + 10, q, !0);
- // d.addEventListener(ON_MOUSE_UP, this._onExit, this);
- w = CANVAS_WIDTH - q.width / 2 - 80;
- if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile)
- (q = s_oSpriteLibrary.getSprite("audio_icon")),
- (B = new CToggle(w, 10 + q.height / 2, q, s_bAudioActive)),
- B.addEventListener(ON_MOUSE_UP, this._onAudioToggle, this);
- };
- this.unload = function () {
- d.unload();
- d = null;
- _oButShot.unload();
- _oButShot = null;
- if (!1 === DISABLE_SOUND_MOBILE || !1 === s_bMobile) B.unload(), (B = null);
- };
- this.refreshScore = function (a) {
- f.text = a;
- c.text = a;
- };
- this.refreshTime = function (a) {
- t.text = a;
- };
- this.viewMultiScore = function (a) {
- e.text = TEXT_MULTIPLY + " X" + a;
- e.x = CANVAS_WIDTH / 2;
- e.y = CANVAS_HEIGHT / 2;
- s_oStage.addChild(e);
- };
- this.cleanScore = function () {
- s_oStage.removeChild(e);
- };
- this.refreshLife = function (a) {
- k.text = "X " + a;
- };
- this.refreshBullets = function (a) {
- h[a].visible = !1;
- };
- this.reloadBullets = function (a) {
- for (var b = 0; b < a; b++) h[b].visible = !0;
- };
- this.noAmmo = function () {
- g.visible = !0;
- g.alpha = 1;
- createjs.Tween.get(g, { override: !0 }).to({ alpha: 0 }, 1e3, createjs.Ease.quadIn);
- };
- this.noAmmoDelete = function () {
- g.visible = !1;
- createjs.Tween.removeTweens(g);
- };
- this.setHit = function () {
- p.push(!0);
- this._setVisibleDuck();
- };
- this.setNoHit = function () {
- p.push(!1);
- this._setVisibleDuck();
- };
- this._setVisibleDuck = function () {
- if (8 < a) {
- for (var b = 0; 8 > b; b++) !0 === p[a - 8 + b] ? l[b].gotoAndPlay("hit") : l[b].gotoAndPlay("nohit");
- !0 === p[a] ? l[8].gotoAndPlay("hit") : l[8].gotoAndPlay("nohit");
- } else !0 === p[a] ? (l[a].gotoAndPlay("hit"), (l[a].visible = !0)) : !1 === p[a] && (l[a].gotoAndPlay("nohit"), (l[a].visible = !0));
- a++;
- };
- this._onKeyUpReleased = function () {
- s_oGame.onKeyUpReleased();
- };
- this._onKeyDownReleased = function () {
- s_oGame.onKeyDownReleased();
- };
- this._onKeyRightReleased = function () {
- s_oGame.onKeyRightReleased();
- };
- this._onKeyLeftReleased = function () {
- s_oGame.onKeyLeftReleased();
- };
- this._onLeftPressed = function () {
- s_oGame.onLeft();
- };
- this._onRightPressed = function () {
- s_oGame.onRight();
- };
- this._onDownPressed = function () {
- s_oGame.onDown();
- };
- this._onUpPressed = function () {
- s_oGame.onUp();
- };
- this._onShot = function () {
- s_oGame.onShot();
- };
- this.onExitFromHelp = function () {
- (void 0).unload();
- };
- this._onAudioToggle = function () {
- createjs.Sound.setMute(s_bAudioActive);
- s_bAudioActive = !s_bAudioActive;
- };
- this._onExit = function () {
- s_oGame.onExit();
- };
- this._init();
- return this;
- }
- function CHelpPanel() {
- var a, d, b, c, f, e, g, k, l, h;
- this._init = function () {
- var p;
- p = s_bMobile ? s_oSpriteLibrary.getSprite("help_panel_mobile") : s_oSpriteLibrary.getSprite("help_panel_desktop");
- l = createBitmap(p);
- s_oStage.addChild(l);
- !1 === s_bMobile ? ((g = TEXT_HELP1), (k = TEXT_HELP2)) : ((g = TEXT_HELP_MOB1), (k = TEXT_HELP_MOB2));
- d = new createjs.Text(g, "bold 22px walibi0615bold", "#000000");
- d.textAlign = "left";
- d.lineWidth = 360;
- d.x = 230;
- d.y = 212;
- a = new createjs.Text(g, "bold 22px walibi0615bold", "#ffffff");
- a.textAlign = "left";
- a.lineWidth = 360;
- a.x = 232;
- a.y = 210;
- c = new createjs.Text(k, "bold 22px walibi0615bold", "#000000");
- c.textAlign = "left";
- c.lineWidth = 300;
- c.x = 230;
- c.y = 342;
- b = new createjs.Text(k, "bold 22px walibi0615bold", "#ffffff");
- b.textAlign = "left";
- b.lineWidth = 300;
- b.x = 232;
- b.y = 340;
- e = new createjs.Text(TEXT_HELP3, "bold 22px walibi0615bold", "#000000");
- e.textAlign = "left";
- e.lineWidth = 440;
- e.x = 230;
- e.y = 462;
- f = new createjs.Text(TEXT_HELP3, "bold 22px walibi0615bold", "#ffffff");
- f.textAlign = "left";
- f.lineWidth = 440;
- f.x = 232;
- f.y = 460;
- h = new createjs.Container();
- h.addChild(l, d, a, c, b, e, f);
- s_oStage.addChild(h);
- p = createBitmap(s_oSpriteLibrary.getSprite("bullet"));
- p.x = 700;
- p.y = 460;
- h.addChild(p);
- p = createBitmap(s_oSpriteLibrary.getSprite("bullet"));
- p.x = 730;
- p.y = 460;
- h.addChild(p);
- p = createBitmap(s_oSpriteLibrary.getSprite("bullet"));
- p.x = 760;
- p.y = 460;
- h.addChild(p);
- var u = this;
- h.on("pressup", function () {
- u._onExitHelp();
- });
- };
- this.unload = function () {
- s_oStage.removeChild(h);
- var a = this;
- h.off("pressup", function () {
- a._onExitHelp();
- });
- };
- this._onExitHelp = function () {
- this.unload();
- s_oGame._onExitHelp();
- };
- this._init();
- }
- function CGfxButton(a, d, b) {
- var c, f, e;
- this._init = function (a, b, d) {
- c = [];
- f = [];
- e = createBitmap(d);
- e.x = a;
- e.y = b;
- e.regX = d.width / 2;
- e.regY = d.height / 2;
- s_oStage.addChild(e);
- this._initListener();
- };
- this.unload = function () {
- e.off("mousedown", this.buttonDown);
- e.off("pressup", this.buttonRelease);
- s_oStage.removeChild(e);
- };
- this.setVisible = function (a) {
- e.visible = a;
- };
- this._initListener = function () {
- e.on("mousedown", this.buttonDown);
- e.on("pressup", this.buttonRelease);
- };
- this.addEventListener = function (a, b, d) {
- c[a] = b;
- f[a] = d;
- };
- this.buttonRelease = function () {
- e.scaleX = 1;
- e.scaleY = 1;
- c[ON_MOUSE_UP] && c[ON_MOUSE_UP].call(f[ON_MOUSE_UP]);
- };
- this.buttonDown = function () {
- e.scaleX = 0.9;
- e.scaleY = 0.9;
- c[ON_MOUSE_DOWN] && c[ON_MOUSE_DOWN].call(f[ON_MOUSE_DOWN]);
- };
- this.setPosition = function (a, b) {
- e.x = a;
- e.y = b;
- };
- this.setX = function (a) {
- e.x = a;
- };
- this.setY = function (a) {
- e.y = a;
- };
- this.getButtonImage = function () {
- return e;
- };
- this.getX = function () {
- return e.x;
- };
- this.getY = function () {
- return e.y;
- };
- this._init(a, d, b);
- return this;
- }
- function CGame(a) {
- function d(a) {
- if (32 === a.keyCode && !0 === B) s_oGame.onShot();
- else 37 === a.keyCode ? m.leftStop() : 38 === a.keyCode ? m.upStop() : 39 === a.keyCode ? m.rightStop() : 40 === a.keyCode && m.downStop();
- }
- function b(a) {
- a || (a = window.event);
- switch (a.keyCode) {
- case 37:
- s_oGame.onLeft();
- break;
- case 38:
- s_oGame.onUp();
- break;
- case 39:
- s_oGame.onRight();
- break;
- case 40:
- s_oGame.onDown();
- }
- }
- var c,
- f,
- e,
- g,
- k,
- l,
- h,
- p,
- u,
- n,
- r,
- t,
- x = !1,
- B = !1,
- y,
- q,
- v,
- z,
- w,
- C,
- L,
- A,
- M = null,
- N,
- O,
- P,
- m,
- D,
- E,
- F,
- G,
- H,
- I,
- J,
- K;
- this._init = function () {
- e = c = 0;
- g = BONUS_TIME;
- f = NUM_BULLETS;
- k = 0;
- l = PLAYER_LIVES;
- p = u = h = 0;
- y = !1;
- v = [];
- z = [];
- w = [];
- C = [];
- L = [];
- A = new CInterface();
- var a = createBitmap(s_oSpriteLibrary.getSprite("bg_game"));
- s_oStage.addChild(a);
- a = s_oSpriteLibrary.getSprite("tree");
- a = new createBitmap(a);
- O = new createjs.Container();
- O.y = 30;
- s_oStage.addChild(O);
- O.addChild(a);
- P = new createjs.Container();
- s_oStage.addChild(P);
- this._initDucks();
- this._initPos();
- this.initDuckObj();
- var a = s_oSpriteLibrary.getSprite("grass"),
- n = createBitmap(a);
- N = new createjs.Container();
- N.y = CANVAS_HEIGHT - a.height;
- s_oStage.addChild(N);
- N.addChild(n);
- m = new CScope();
- A = new CInterface();
- D = createBitmap(s_oSpriteLibrary.getSprite("but_up"));
- D.x = 70;
- D.y = 550;
- s_oStage.addChild(D);
- E = createBitmap(s_oSpriteLibrary.getSprite("but_down"));
- E.x = 70;
- E.y = 656;
- s_oStage.addChild(E);
- F = createBitmap(s_oSpriteLibrary.getSprite("but_left"));
- F.x = 4;
- F.y = 615;
- s_oStage.addChild(F);
- G = createBitmap(s_oSpriteLibrary.getSprite("but_right"));
- G.x = 110;
- G.y = 616;
- s_oStage.addChild(G);
- H = createBitmap(s_oSpriteLibrary.getSprite("but_upright"));
- H.x = 110;
- H.y = 559;
- s_oStage.addChild(H);
- I = createBitmap(s_oSpriteLibrary.getSprite("but_downright"));
- I.x = 110;
- I.y = 656;
- s_oStage.addChild(I);
- J = createBitmap(s_oSpriteLibrary.getSprite("but_upleft"));
- J.x = 14;
- J.y = 559;
- s_oStage.addChild(J);
- K = createBitmap(s_oSpriteLibrary.getSprite("but_downleft"));
- K.x = 14;
- K.y = 656;
- s_oStage.addChild(K);
- CHelpPanel();
- s_bMobile
- ? window.navigator.msPointerEnabled
- ? ((t = 0),
- s_oCanvas.addEventListener("MSPointerDown", this.onTouchStartMS, !1),
- s_oCanvas.addEventListener("MSPointerMove", this.onTouchMoveMS, !1),
- s_oCanvas.addEventListener("MSPointerUp", this.onTouchEndMS, !1))
- : (s_oCanvas.addEventListener("touchstart", this.onTouchStart, !1),
- s_oCanvas.addEventListener("touchmove", this.onTouchMove, !1),
- s_oCanvas.addEventListener("touchend", this.onTouchEnd, !1))
- : ((document.onkeydown = b),
- (document.onkeyup = d),
- s_oStage.addEventListener("stagemousedown", this.onMouseStart, !1),
- s_oStage.addEventListener("stagemousemove", this.onMouseMove, !1),
- s_oStage.addEventListener("stagemouseup", this.onMouseEnd, !1));
- (!1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile) || s_oSoundTrack.setVolume(0.5);
- };
- this.onMouseStart = function (a) {
- a = a || window.event;
- n = parseInt(a.stageX);
- r = parseInt(a.stageY);
- y = !0;
- };
- this.onMouseMove = function (a) {
- !1 !== y && ((n = parseInt(a.stageX)), (r = parseInt(a.stageY)));
- };
- this.onMouseEnd = function () {
- y = !1;
- m.resetAllDirection();
- };
- this.onTouchStart = function (a) {
- y ||
- ((n = parseInt((a.touches[0].pageX - s_oCanvasLeft) / s_iScaleFactor)), (r = parseInt((a.touches[0].pageY - s_oCanvasTop) / s_iScaleFactor)), (y = !0));
- };
- this.onTouchMove = function (a) {
- a.preventDefault();
- n = parseInt((a.touches[0].pageX - s_oCanvasLeft) / s_iScaleFactor);
- r = parseInt((a.touches[0].pageY - s_oCanvasTop) / s_iScaleFactor);
- };
- this.onTouchEnd = function (a) {
- 0 === a.touches.length && ((y = !1), m.resetAllDirection());
- };
- this.onTouchStartMS = function (a) {
- t++;
- 1 < t ||
- ((n = parseInt(((a.pageX || a.targetTouches[0].pageX) - s_oCanvasLeft) / s_iScaleFactor)),
- (r = parseInt(((a.pageY || a.targetTouches[0].pageY) - s_oCanvasTop) / s_iScaleFactor)),
- (y = !0));
- };
- this.onTouchMoveMS = function (a) {
- if (!window.navigator.msPointerEnabled || a.isPrimary)
- a.preventDefault(),
- (n = parseInt(((a.pageX || a.targetTouches[0].pageX) - s_oCanvasLeft) / s_iScaleFactor)),
- (r = parseInt(((a.pageY || a.targetTouches[0].pageY) - s_oCanvasTop) / s_iScaleFactor));
- };
- this.onTouchEndMS = function (a) {
- t--;
- 0 === t && ((y = !1), m.resetAllDirection());
- };
- this.unload = function () {
- B = !1;
- m.unload();
- A.unload();
- null !== M && M.unload();
- for (var a = 0; a < q.length; a++) q[a].unload();
- s_oStage.removeAllChildren();
- };
- this._initDucks = function () {
- for (var a = 0; a < DUCK_ON_SCREEN.length; a++) u < DUCK_ON_SCREEN[a] && (u = DUCK_ON_SCREEN[a]);
- q = [];
- for (a = 0; a < u; a++) q.push(new CDuck(P));
- };
- this._initPos = function () {
- for (var a = 51; a < CANVAS_WIDTH; ) v.push(new createjs.Point(a, 565)), (a += CANVAS_WIDTH / 20);
- for (a = 0; a < v.length; a++) C.push(a);
- z[0] = new createjs.Point(-120, 400);
- z[1] = new createjs.Point(-120, 200);
- z[2] = new createjs.Point(250, -120);
- z[3] = new createjs.Point(500, -120);
- w[0] = new createjs.Point(CANVAS_WIDTH + 120, 400);
- w[1] = new createjs.Point(CANVAS_WIDTH + 120, 200);
- w[2] = new createjs.Point(1e3, -120);
- w[3] = new createjs.Point(750, -120);
- for (a = 0; a < z.length; a++) L.push(a);
- };
- this.initDuckObj = function () {
- (!1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile) || createjs.Sound.play("duck_intro");
- if (h === DUCK_ON_SCREEN.length) for (var a = (h = 0); a < q.length; a++) q[a].increaseSpeed();
- shuffle(C);
- shuffle(L);
- for (a = 0; a < DUCK_ON_SCREEN[h]; a++) C[a] < v.length / 2 ? q[a].reset(v[C[a]], w[L[a]]) : q[a].reset(v[C[a]], z[L[a]]), e++, q[a].show();
- k = DUCK_ON_SCREEN[h];
- h++;
- this._refreshScreen();
- };
- this.checkDuck = function () {
- k--;
- 0 === k && this.initDuckObj();
- };
- this.onKeyUpReleased = function () {
- m.upStop();
- };
- this.onKeyDownReleased = function () {
- m.downStop();
- };
- this.onKeyLeftReleased = function () {
- m.leftStop();
- };
- this.onKeyRightReleased = function () {
- m.rightStop();
- };
- this.onLeft = function () {
- m.moveLeft();
- };
- this.onRight = function () {
- m.moveRight();
- };
- this.onUp = function () {
- m.moveUp();
- };
- this.onDown = function () {
- m.moveDown();
- };
- this.onShot = function () {
- 0 === f
- ? (A.noAmmo(), (!1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile) || createjs.Sound.play("click"))
- : (f--, A.refreshBullets(f), m.playShot(), (x = !0));
- };
- this._reloadRifle = function () {
- f = NUM_BULLETS;
- A.reloadBullets(f);
- };
- this._showTime = function () {
- A.refreshTime(g);
- };
- this._checkIfDuckHit = function (a) {
- if (
- m.bullsEye().x > a.target().x &&
- m.bullsEye().x < a.target().x + a.target().w &&
- m.bullsEye().y > a.target().y &&
- m.bullsEye().y < a.target().y + a.target().h
- )
- return !0;
- };
- this.checkCollision = function (a) {
- if (this._checkIfDuckHit(a) && x && a.isVisible() && !a.isHit()) {
- a.onHit();
- var b = SCORE_HIT + g;
- p++;
- 1 < p && ((b *= p), A.viewMultiScore(p));
- p = 0;
- c += b;
- new CScoreText(b, a.getPos().x, a.getPos().y);
- A.refreshScore(c);
- (!1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile) || createjs.Sound.play("duck_hit");
- }
- };
- this.setHitPane = function () {
- A.setHit();
- };
- this.setNoHitPane = function () {
- A.setNoHit();
- };
- this.subtractLife = function () {
- l--;
- 0 === l && (this.gameOver(), (B = !1));
- A.refreshLife(l);
- };
- this._refreshScreen = function () {
- this._reloadRifle();
- g = BONUS_TIME;
- A.cleanScore();
- A.noAmmoDelete();
- };
- this.onExit = function () {
- this.unload();
- s_oMain.gotoMenu();
- $(s_oMain).trigger("restart");
- };
- this._onExitHelp = function () {
- B = !0;
- };
- this.gameOver = function () {
- (!1 !== DISABLE_SOUND_MOBILE && !1 !== s_bMobile) || createjs.Sound.play("game_over");
- M = CEndPanel(s_oSpriteLibrary.getSprite("msg_box"));
- M.show(c);
- };
- this.checkController = function () {
- var a = H.globalToLocal(n, r);
- H.hitTest(a.x, a.y)
- ? (m.moveUp(), m.moveRight(), m.downStop(), m.leftStop())
- : ((a = I.globalToLocal(n, r)),
- I.hitTest(a.x, a.y)
- ? (m.moveDown(), m.moveRight(), m.upStop(), m.leftStop())
- : ((a = J.globalToLocal(n, r)),
- J.hitTest(a.x, a.y)
- ? (m.moveUp(), m.moveLeft(), m.downStop(), m.rightStop())
- : ((a = K.globalToLocal(n, r)),
- K.hitTest(a.x, a.y)
- ? (m.moveDown(), m.moveLeft(), m.upStop(), m.rightStop())
- : ((a = D.globalToLocal(n, r)),
- D.hitTest(a.x, a.y)
- ? (m.moveUp(), m.downStop(), m.rightStop(), m.leftStop())
- : ((a = E.globalToLocal(n, r)),
- E.hitTest(a.x, a.y)
- ? (m.moveDown(), m.upStop(), m.rightStop(), m.leftStop())
- : ((a = F.globalToLocal(n, r)),
- F.hitTest(a.x, a.y)
- ? (m.moveLeft(), m.downStop(), m.rightStop(), m.upStop())
- : ((a = G.globalToLocal(n, r)),
- G.hitTest(a.x, a.y) ? (m.moveRight(), m.downStop(), m.upStop(), m.leftStop()) : m.resetAllDirection())))))));
- };
- this.update = function () {
- if (B) {
- y && this.checkController();
- for (var a = 0; a < u; a++) q[a].update(), this.checkCollision(q[a]);
- x = !1;
- m.update();
- g -= s_iTimeElaps;
- 0 > g && (g = 0);
- this._showTime();
- }
- };
- s_oGame = this;
- SCOPE_ACCELERATION = a.scope_accelleration;
- SCOPE_FRICTION = a.scope_friction;
- MAX_SCOPE_SPEED = a.max_scope_speed;
- NUM_BULLETS = a.num_bullets;
- SCORE_HIT = a.hit_score;
- BONUS_TIME = a.bonus_time;
- PLAYER_LIVES = a.lives;
- DUCK_INCREASE_SPEED = a.duck_increase_speed;
- DUCK_ON_SCREEN = a.duck_occurence;
- this._init();
- }
- var s_oGame;
- function CEndPanel(a) {
- var d, b, c, f, e, g;
- this._init = function (a) {
- d = createBitmap(a);
- e = new createjs.Text("", "bold 60px walibi0615bold", "#000");
- e.x = CANVAS_WIDTH / 2 + 1;
- e.y = CANVAS_HEIGHT / 2 - 160;
- e.textAlign = "center";
- f = new createjs.Text("", "bold 60px walibi0615bold", "#ffffff");
- f.x = CANVAS_WIDTH / 2;
- f.y = CANVAS_HEIGHT / 2 - 162;
- f.textAlign = "center";
- b = new createjs.Text("", "bold 40px walibi0615bold", "#000");
- b.x = CANVAS_WIDTH / 2 + 1;
- b.y = CANVAS_HEIGHT / 2 + 50;
- b.textAlign = "center";
- c = new createjs.Text("", "bold 40px walibi0615bold", "#ffffff");
- c.x = CANVAS_WIDTH / 2;
- c.y = CANVAS_HEIGHT / 2 + 52;
- c.textAlign = "center";
- g = new createjs.Container();
- g.alpha = 0;
- g.visible = !1;
- g.addChild(d, b, c, e, f);
- s_oStage.addChild(g);
- };
- this.unload = function () {
- g.off("mousedown", this._onExit);
- };
- this._initListener = function () {
- g.on("mousedown", this._onExit);
- };
- this.show = function (a) {
- createjs.Sound.play("game_over");
- e.text = TEXT_GAMEOVER;
- f.text = TEXT_GAMEOVER;
- b.text = TEXT_SCORE + ": " + a;
- c.text = TEXT_SCORE + ": " + a;
- g.visible = !0;
- var d = this;
- createjs.Tween.get(g)
- .to({ alpha: 1 }, 500)
- .call(function () {
- d._initListener();
- });
- $(s_oMain).trigger("save_score", a);
- };
- this._onExit = function () {
- g.off("mousedown", this._onExit);
- s_oStage.removeChild(g);
- s_oGame.onExit();
- };
- this._init(a);
- return this;
- }
- function CDuck(a) {
- var d, b, c, f, e, g, k, l, h, p, u, n, r, t, x;
- this._init = function (a) {
- b = 0;
- c = DUCK_START_SPEED;
- f = 200;
- d = 102;
- g = 300;
- l = !1;
- p = [];
- u = a;
- a = {
- images: [s_oSpriteLibrary.getSprite("duck_1")],
- frames: { width: 200, height: 204, regX: 100, regY: 102 },
- animations: { fly: [0, 6, "fly"], hit: [7, 15, "hit_stop"], hit_stop: [15], fall: [16, 44, "fall"] },
- };
- var e = {
- images: [s_oSpriteLibrary.getSprite("duck_2")],
- frames: { width: 200, height: 204, regX: 100, regY: 102 },
- animations: { fly: [0, 6, "fly"], hit: [7, 15, "hit_stop"], hit_stop: [15], fall: [16, 44, "fall"] },
- },
- h = {
- images: [s_oSpriteLibrary.getSprite("duck_3")],
- frames: { width: 200, height: 204, regX: 100, regY: 102 },
- animations: { fly: [0, 6, "fly"], hit: [7, 15, "hit_stop"], hit_stop: [15], fall: [16, 44, "fall"] },
- },
- k = {
- images: [s_oSpriteLibrary.getSprite("duck_4")],
- frames: { width: 200, height: 204, regX: 100, regY: 102 },
- animations: { fly: [0, 6, "fly"], hit: [7, 15, "hit_stop"], hit_stop: [15], fall: [16, 44, "fall"] },
- };
- r = new createjs.Rectangle(0, 0, 160, 80);
- p[0] = new createjs.SpriteSheet(a);
- p[1] = new createjs.SpriteSheet(e);
- p[2] = new createjs.SpriteSheet(h);
- p[3] = new createjs.SpriteSheet(k);
- n = createSprite(p[0], "fly", 100, 102, 200, 204);
- n.visible = !1;
- n.stop();
- u.addChild(n);
- };
- this._changeSprite = function () {
- var a = Math.floor(4 * Math.random());
- n.spriteSheet = p[a];
- };
- this._calculateMid = function () {
- var a;
- a = t.x > x.x ? new createjs.Point(t.x + 0.2 * (t.x - x.x), x.y - d / 2) : new createjs.Point(x.x - 0.2 * (x.x - t.x), x.y - d / 2);
- h = { start: t, end: x, traj: a };
- };
- this._selectInterpolation = function () {
- e = Math.floor(2 * Math.random());
- };
- this.reset = function (a, b) {
- this._changeSprite();
- createjs.Tween.removeTweens(n);
- n.x = a.x;
- n.y = a.y;
- t = a;
- x = b;
- l = !1;
- g = 300;
- this._calculateMid();
- this._selectInterpolation();
- };
- this.increaseSpeed = function () {
- c += DUCK_INCREASE_SPEED;
- };
- this.unload = function () {
- u.removeChild(n);
- };
- this.show = function () {
- t.x < CANVAS_WIDTH / 2 && (n.scaleX = -1);
- t.x > CANVAS_WIDTH / 2 && (n.scaleX = 1);
- n.visible = !0;
- n.gotoAndPlay("fly");
- k = !0;
- };
- this.unShow = function () {
- n.visible = !1;
- };
- this._updateRect = function () {
- r.x = n.x - 80;
- r.y = n.y - 40;
- };
- this.target = function () {
- return { x: r.x, y: r.y, w: r.width, h: r.height };
- };
- this.setVisible = function () {
- n.visible = !0;
- };
- this.isVisible = function () {
- return n.visible;
- };
- this.onHit = function () {
- n.alpha = 1;
- n.gotoAndPlay("hit");
- b = 0;
- k = l = !0;
- };
- this.getSprite = function () {
- return n;
- };
- this.getPos = function () {
- return { x: n.x, y: n.y };
- };
- this.isHit = function () {
- return l;
- };
- this._updateFly = function () {
- b += c;
- b > f && ((b = 0), (k = n.visible = !1), s_oGame.setNoHitPane(), s_oGame.checkDuck(), s_oGame.subtractLife());
- var a;
- switch (e) {
- case 0:
- a = easeLinear(b, 0, 1, f);
- break;
- case 1:
- a = easeInSine(b, 0, 1, f);
- }
- a = getTrajectoryPoint(a, h);
- n.x = a.x;
- n.y = a.y;
- this._updateRect();
- };
- this._updateFall = function () {
- createjs.Tween.get(n)
- .to({ y: CANVAS_HEIGHT }, 1e3, createjs.Ease.quadIn)
- .call(function () {
- s_oGame.checkDuck();
- })
- .call(function () {
- s_oGame.setHitPane();
- });
- };
- this.update = function () {
- if (k)
- switch (n.currentAnimation) {
- case "fly":
- this._updateFly();
- break;
- case "hit_stop":
- g -= s_iTimeElaps;
- 0 > g && ((g = 300), n.gotoAndPlay("fall"));
- break;
- case "fall":
- this._updateFall(), (k = !1);
- }
- };
- this._init(a);
- }
|