| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- var SOUND_ACTIVATED = false;
- var WIDTH_TILE_COUNT = 28;
- var HEIGHT_TILE_COUNT = 34;
- var TILE_SIZE = 16;
- var HALF_TILE_SIZE = 8;
- var ACTOR_SIZE = 32;
- var PLAYGROUND_WIDTH = WIDTH_TILE_COUNT * TILE_SIZE;
- var PLAYGROUND_HEIGHT = HEIGHT_TILE_COUNT * TILE_SIZE;
- var ACTOR_SPEED = 4;
- var LOOP_COUNT_REFRESH = 66;
- var loopCount = 0;
- var REFRESH_RATE = 15;
- //1: up, 2: left, 3:down, 4: right
- var UP = 1;
- var LEFT = 2;
- var DOWN = 3;
- var RIGHT = 4;
- var BONUS_TILE = 77;
- var eatenBonus = new Array();
- var INFINITY = 9999999999;
- $(function(){
-
- //Playground Sprites
- $("#playground").playground({height: PLAYGROUND_HEIGHT, width: PLAYGROUND_WIDTH, keyTracker: true});
- Sound.init(function(){
- $.playground().startGame( function() {
- Game.init();
- });
- });
-
- $.playground({refreshRate: 60}).addGroup("background", {posx: 0, posy: 0, width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT})
- .end()
- .addGroup("dots", {width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT})
- .end()
- .addGroup("actors", {width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT})
- .end()
- .addGroup( "hud", {width: PLAYGROUND_WIDTH, height: PLAYGROUND_HEIGHT})
- .end();
-
- var hud = $("#hud");
- hud.append("<div id='scoreboard' class='scoreboard'><div class='subScoreboard'></div></div>");
- hud.append("<div id='lives' ><div id='life3' class='life'></div><div id='life2' class='life'></div><div id='life1' class='life'></div></div>");
- hud.append("<div id='scoreMessage'></div>");
- hud.append("<div id='message'></div>'");
- hud.append("<div id='level'></div>'");
- hud.append("<div id='levelNumber'></div>'");
-
- GUI.updateLevel( "Level" );
-
- var background = $("#background");
- var dotsGroup = $("#dots");
- var maze = Game.maze.structure;
-
- for( var i = 0; i < maze.length; i++ ) {
- var clazz = "";
- switch( maze[i]) {
- case -2:
- clazz = "bigDot";
- Game.dots[i] = "bigDot";
- break;
- case -1:
- clazz = "dot";
- Game.dots[i] = "dot";
- break;
- case 1:
- clazz = "corner1";
- break;
- case 2:
- clazz = "corner2";
- break;
- case 3:
- clazz = "corner3";
- break;
- case 4:
- clazz = "corner4";
- break;
- case 5:
- clazz = "squareCornerTopLeft";
- break;
- case 6:
- clazz = "squareCornerTopRight";
- break;
- case 7:
- clazz = "squareCornerBottomLeft";
- break;
- case 8:
- clazz = "squareCornerBottomRight";
- break;
- case 9:
- clazz = "horizontalMidDown";
- break;
- case 10:
- clazz = "verticalMidLeft";
- break;
- case 11:
- clazz = "verticalMidRight";
- break;
- case 12:
- clazz = "gate";
- break;
- }
- background.append('<div id="'+ i + '" class="tile ' + clazz +'"></div>');
-
- if(i % 28 == 27 ) {
- background.append('<div class="clear"></div>');
- }
- }
- // this is the function that control most of the game logic
- $.playground().registerCallback(function(){
- if(jQuery.gameQuery.keyTracker[37]){ //this is left! (a)
- Game.hero.left();
- }
- if(jQuery.gameQuery.keyTracker[38]){ //this is up! (w)
- Game.hero.up();
- }
- if(jQuery.gameQuery.keyTracker[39]){ //this is right! (d)
- Game.hero.right();
- }
- if(jQuery.gameQuery.keyTracker[40]){ //this is down! (s)
- Game.hero.down();
- }
-
- $.each(Game.actors, function(index, actor ) {
- actor.move();
- });
-
- for( var i = Math.max(0, eatenBonus.length - 6), j = 0; i < eatenBonus.length; i++, j++) {
- $("#" +( BONUS_TILE + j)).removeClass().addClass("tile").addClass( eatenBonus[i] );
- }
-
- }, REFRESH_RATE);
-
- });
- var Sound = {
- soundList : [],
-
- init : function(callback) {
- if( SOUND_ACTIVATED ) {
- soundManager.setup({
- url: 'swf/'
- });
-
- Sound.soundList = {
- opening : new $.gameQuery.SoundWrapper('sound/opening.mp3', false),
- waka : new $.gameQuery.SoundWrapper('sound/wakawaka.mp3', false),
- fruit : new $.gameQuery.SoundWrapper('sound/eatingfruit.mp3', false),
- ghost : new $.gameQuery.SoundWrapper('sound/eatingghost.mp3', false),
- dies : new $.gameQuery.SoundWrapper('sound/dies.mp3', false)
- };
- soundManager.onready( callback );
- } else
- callback();
- },
- play: function( sound ) {
- if( SOUND_ACTIVATED )
- Sound.soundList[sound].play();
- },
- stop: function( sound ) {
- if( SOUND_ACTIVATED )
- Sound.soundList[sound].stop();
- },
- }
- var GUI = {
- updateMessage : function( message ) {
- GUI.drawText( $("#message"), message, true );
- },
-
- updateScoreMessage : function( message ) {
- GUI.drawText( $("#scoreMessage"), message, false, "red" );
- },
- updateLevel : function( message ) {
- GUI.drawText( $("#level"), message, false );
- },
- updateLevelNumber: function( message ) {
- GUI.drawText( $("#levelNumber"), message + "", false, "", true );
- },
- drawText : function( divHTML, message, center, customClazz, forceSmall) {
- var html = "";
- var clazz = "clock";
- var letterSize = 32;
- if( typeof customClazz !== "undefined" ) {
- clazz = " clock " + customClazz;
- }
-
-
- var count = 0;
- var width = 0;
- var height = 0;
- for( var i = 0; i < message.length; i++ ) {
- var letter = message[i];
- var iLetter = (message.charCodeAt(i) - 97);
- if( letter == " " ) {
- html += "<div class='blank'></div>";
- width += 16;
- count++;
- } else if( letter.charCodeAt(0) > 47 && letter.charCodeAt(0) < 58 ) {
- var letterSize = 32;
- if( forceSmall ) {
- letterSize = 16;
- }
- html += "<div class='" + clazz + (forceSmall ? "small" : "") + "' style='top: -50%;background-position: -" + ( parseInt( letter ) * letterSize) + "px -" + (forceSmall > -1 ? 128 : 0) +"px'></div>";
- count++;
- } else if( ( letter.charCodeAt(0) >= 'a'.charCodeAt(0) && letter.charCodeAt(0) <= 'z'.charCodeAt(0)) ) {
- if( height < 16 )
- height = 16;
- width += 16;
- var lineSize = 20;
- var x = (iLetter % lineSize) * 16;
- var y = Math.floor(iLetter / lineSize) * 16 + 144;
- html += "<div class='" + clazz + " small' style='background-position: -" + x + "px -" + y + "px'></div>";
- count++;
- } else if( letter.charCodeAt(0) >= 'A'.charCodeAt(0) && letter.charCodeAt(0) <= 'Z'.charCodeAt(0)) {
- iLetter = letter.charCodeAt(0) - 'A'.charCodeAt(0);
- if( height < 32 )
- height = 32;
- width += 32;
- var lineSize = 10;
- var x = (iLetter % lineSize) * 32;
- var y = Math.floor(iLetter / lineSize) * 32 + 32;
- html += "<div class='" + clazz + "' style='background-position: -" + x + "px -" + y + "px'></div>";
- count++;
- }
- }
-
- divHTML.empty();
- divHTML.css( "width", width + "px");
- divHTML.css( "height", height + "px");
- if( center )
- divHTML.css( "margin-left", "-" + (message.length * letterSize / 2) + "px");
- divHTML.append( html );
- }
- }
|