wyrian/js/main.js
2011-02-13 14:51:16 +01:00

132 lines
No EOL
3.4 KiB
JavaScript

var Game = new app({
'layers': [
'order!layouts/BgLayer',
'order!layouts/PlayerLayer',
'order!layouts/Ennemies'
],
'wrapper': $('#GameContainer')
}),
GameVersion = 0 ;
// Init Application and bind all games events
jQuery(document).ready(function() {
/**************************************************************************
* Load Dependencies & Create Application
***************************************************************************/
GameVersion = $('#version').html() ;
var baseLibs = [
'order!libs/jquery.transform-0.9.3.min',
'order!layouts/LayoutClass'
] ;
require({
baseUrl: "js/",
urlArgs: "bust=" + GameVersion
},
baseLibs,
// -- All objects are loaded => can run
function() {
// -- Init Stage or show IE popup
if ( ! $.browser.msie || ( $.browser.msie && $.browser.version >= 9 ) ) {
Game.init() ;
} else {
alert('Sorry but this game only works in good navigators. Please download Google Chrome or Firefox' ) ;
}
}
);
/**************************************************************************
* Game Controls Events
***************************************************************************/
// -- Game is loaded
$(document).bind('gameLoaded', function(e, res) {
});
// -- Init Game
$(document).bind('gameInit', function(e, res) {
$(document).trigger('gameReset') ;
}) ;
// -- Game Reset
$(document).bind('gameReset', function(e, res) {
Game.score = 0 ;
Game.loops = 0 ;
Layouts.Ennemies.els = [] ;
$('.sprite').remove() ;
$.each(Layouts, function(key, val){
Layouts[key].running = true ;
$.each(val.els, function(key2, val2){
if ( Layouts[key].els.length && Layouts[key].els[key2] ) {
Layouts[key].els[key2].x = Layouts[key].els[key2].settings.origin.x ;
Layouts[key].els[key2].y = Layouts[key].els[key2].settings.origin.y ;
}
}) ;
}) ;
$('#ground, #ship').fadeTo(500, 1) ;
if ( timers.loopGame ) clearInterval(timers.loopGame) ;
timers.loopGame = setInterval(Game.loopAnimation, 1000/FPS) ;
}) ;
// -- Start Animation
$(document).bind('gameStart', function(e, res) {
$('#hud').fadeIn(500) ;
if ( timers.loopGame ) clearInterval(timers.loopGame) ;
timers.loopGame = setInterval(Game.loopAnimation, 1000/FPS) ;
}) ;
// -- On Complete Launch
$(document).bind('gameComplete', function(e, res) {
// -- Stop layouts running
$('.sprite').not('.explosion').remove() ;
Layouts.Ennemies.running = false ;
Layouts.Background.running = false ;
// -- Show game over overlay
$('#game-over:hidden').fadeIn(500) ;
$('#ground, #ship').fadeTo(500, 0.2) ;
// -- Stop loopAnimation
if ( timers.loopGame ) clearInterval(timers.loopGame) ;
}) ;
// -- Bind Start Button
$('#start-game').click(function() {
soundManager.play('click') ;
$('#game-intro:visible').fadeOut(500, function() {
$(document).trigger('gameStart') ;
}) ;
}).hover(function() {
$(this).addClass('hover') ;
}, function() {
$(this).removeClass('hover') ;
}) ;
// -- Bind Restart Screen controls
$('#restart-game').click(function() {
soundManager.play('click') ;
$('#game-over:visible').fadeOut(500, function() {
$(document).trigger('gameReset') ;
}) ;
}).hover(function() {
$(this).addClass('hover') ;
}, function() {
$(this).removeClass('hover') ;
}) ;
}) ;