|
// Tom's Halls game
// Tom W Hall 2007
// tomshalls@gmail.com
var oViewport;
var oPlayer;
var loopInterval;
var loopIntervalMs = 15;
var cheatMode = false;
// Initializes game
function initialSetUp()
{
oViewport = new viewport('viewport', 736, 528);
oPlayer = new player('player', 'right', 100, 448, oViewport);
oViewport.childElements.push(oPlayer);
setUpNewScreen();
updateLives();
addEvent(window.document, 'keypress', onKeyPress);
addEvent(window.document, 'keydown', onKeyPress);
addEvent(window.document, 'keyup', onKeyUp);
}
// Adds new screen's Javascript reference etc
function setUpNewScreen()
{
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.id = 'scriptScreen';
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'js/screen_' + oPlayer.screenX + '_' + oPlayer.screenY + '.js');
head.appendChild(script);
oPlayer.screenEntryLeft = oPlayer.left;
oPlayer.screenEntryTop = oPlayer.top;
oViewport.domElement.focus();
}
// Writes new screen's name into bottom right panel
function setScreenName(screenName)
{
var screenNameText = document.getElementById('screenNameText');
screenNameText.innerHTML = screenName;
}
// Clears viewport and removes current screen's Javascript reference
function clearCurrentScreen()
{
clearInterval(loopInterval);
oViewport.clearChildren();
var head = document.getElementsByTagName('head')[0];
var script = document.getElementById('scriptScreen');
head.removeChild(script);
}
// Main game loop
function loop()
{
oViewport.moveSprites();
if (!cheatMode)
if (oPlayer.isZapped())
updateLives();
oPlayer.applyPhysics();
}
// Adds event listener to object
function addEvent(obj, evt, func)
{
if (obj.addEventListener)
{
obj.addEventListener(evt, func, false);
return true;
}
else if (obj.attachEvent)
{
return obj.attachEvent("on" + evt, func);
}
else
{
obj[evt] = func;
}
}
function onKeyPress(e)
{
oPlayer.keyPress(e);
}
function onKeyUp(e)
{
oPlayer.keyUp(e);
}
// Updates the player lives box
function updateLives()
{
if (oPlayer.lives < 1)
window.location.reload(true);
var lives = document.getElementById('lives');
while (lives.hasChildNodes())
{
lives.removeChild(lives.firstChild);
}
for (var i = 1; i <= oPlayer.lives; i++)
{
var life = document.createElement('div');
life.className = 'playerleft';
life.style.width = '32px';
life.style.height = '64px';
lives.appendChild(life);
}
}
// Wire up initial setUp event
addEvent(window, 'load', initialSetUp);
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.