alert('Hello, welcome to this game!'); alert('It was developed during the Acagamejam November 2013\nhttp://gamejam.de/\n\nWe tried to get a special achievement and create a game running in IE8 without using special frameworks and librarys.\nSadly, we failed.'); alert('The following game is made for two players.\nPlayer one (black square) uses SPACE-key to move.\nPlayer two uses NUMPAD-0-Key to move.\nWhile key is pressed, the square moves to centre. Otherwise it moves to the windows border.\nThe game lasts 30 seconds. Get the falling items will increase a players score, size and the next items speed.\nPress OK to start the game. Have Fun.'); var Start = Date.now(); var EndTime = Start + 30000; var S1 = document.getElementById('l_hero'); var S2 = document.getElementById('r_hero'); var B1 = document.getElementById('l_box'); var B2 = document.getElementById('r_box'); var leftKey = 0; var rightKey = 0; var step = 5; //var Timer=2999;//3000*10ms=30000ms=30s var Ende = false; //var LIC=1; var RIC=1; //left/right itemcounter var ScoreL = 0; var ScoreR = 0; var speedL = 0.5; var speedR = 0.5; var links = 'offsetLeft'; var breite = 'offsetWidth'; var oben = 'offsetTop'; var hoehe = 'offsetHeight'; function initialise() { S1.style.backgroundColor = 'black'; S1.style.left = 50 + '%'; S2.style.backgroundColor = 'orange'; S2.style.right = 50 + '%'; newItem('l', '1'); newItem('r', '1'); } function getKeyCode(event) { event = event || window.event; return event.keyCode; } function setNewKey(e) { if (getKeyCode(e) == '32') { leftKey = 1; } if (getKeyCode(e) == '96') { rightKey = 1; } // // moveByKey(); } function releaseKey(e) { if (getKeyCode(e) == '32') { leftKey = 0; } if (getKeyCode(e) == '96') { rightKey = 0; } // // moveByKey(); } initialise(); function preventEscape() { if (S2.offsetLeft <= -00) { //Glitch weg. (gibt andere) S2.style.left = step + 'px'; } else if ((S2.offsetLeft + S2.offsetWidth) >= (B2.offsetWidth)) { S2.style.left = B2.offsetWidth - S2.offsetWidth + 'px'; } //Rechts einsperren if (S1.offsetLeft <= step) { S1.style.left = S1.offsetLeft + step + 'px'; } else if ((S1.offsetLeft + S1.offsetWidth + step) >= (B1.offsetWidth)) { S1.style.left = (S1.offsetLeft - step) + 'px'; } //Links "einsperren" } function preventItemEscape(side, id) { var item = document.getElementById(side + "_" + id); if ((item.offsetTop + item.offsetHeight) > B1.offsetHeight) { delItem(side, id, 0); } //S1: if (((item.offsetLeft + item.offsetWidth) >= (S1.offsetLeft)) && ((item.offsetLeft) <= (S1.offsetLeft + S1.offsetWidth)) && ((item.offsetTop + item.offsetHeight) >= S1.offsetTop) && (side == 'l')) { delItem(side, id, 1); } //S2: if (((item.offsetLeft + item.offsetWidth) >= (S2.offsetLeft)) && ((item.offsetLeft) <= (S2.offsetLeft + S2.offsetWidth)) && ((item.offsetTop + item.offsetHeight) >= S2.offsetTop) && (side == 'r')) { delItem(side, id, 1); } //Unten einsperren (für Items) (abgehakt) } function moveByKey() { preventEscape(); if ((leftKey == 1) && (rightKey == 1)) { S1.style.left = S1.offsetLeft + step + 'px'; S2.style.left = S2.offsetLeft - step + 'px'; } else if ((leftKey == 1) && (rightKey == 0)) { S1.style.left = S1.offsetLeft + step + 'px'; S2.style.left = S2.offsetLeft + step + 'px'; } else if ((rightKey == 1) && (leftKey == 0)) { S1.style.left = S1.offsetLeft - step + 'px'; S2.style.left = S2.offsetLeft - step + 'px'; } else { S1.style.left = S1.offsetLeft - step + 'px'; S2.style.left = S2.offsetLeft + step + 'px'; } } function newItem(side, id) { //l=links, r=rechts, ... var item = document.getElementById(side + "_" + id); item.style.top = 0 + 'px'; //1. item erzeugen: B-width - 32 * random if (side == 'l') { item.style.left = (B1.offsetWidth - item.offsetWidth) * Math.random() + 'px'; } else if (side == 'r') { item.style.left = (B2.offsetWidth - item.offsetWidth) * Math.random() + 'px'; } //2. Bewegung eingrenzen (später) (abgehakt) item.style.visibility = 'visible'; item.style.display = 'block'; } function delItem(side, id, x) { var item = document.getElementById(side + "_" + id); item.style.visibility = 'hidden'; item.style.display = 'none'; item.style.top = (0 - item.offsetHeight - 10) + 'px'; item.style.left = (0 + (id - 1) * item.offsetWidth) + 'px'; if (x) { if (side == 'l') { if (S1.offsetWidth <= (B1.offsetWidth) * 0.66) { S1.style.width = S1.offsetWidth + 10 + 'px'; } ScoreL++; } else if (side == 'r') { if (S2.offsetWidth <= (B2.offsetWidth) * 0.83) { S2.style.width = S2.offsetWidth + 8 + 'px'; } ScoreR++; } } /*if(side=='l'){LIC++;newItem('l', LIC);}else if(side=='r'){RIC++;newItem('r', RIC);}*/ if (id != 22) { newItem(side, id + 1); } else { newItem(side, 1); } if (side == 'l') { speedL *= 1.001; speedL += 0.06; } if (side == 'r') { speedR *= 1.001; speedR += 0.06; } } function moveItems() { var LICID = 0; var RICID = 0; for (var i = 1; i <= 22; i++) { if (document.getElementById('l_' + i).style.visibility == 'visible') { LICID = i; } if (document.getElementById('r_' + i).style.visibility == 'visible') { RICID = i; } if ((LICID != 0) && (RICID != 0)) { break; //Schleife vorzeitig beenden } } //Kollisionsabfragen aufrufen: preventItemEscape('l', LICID); preventItemEscape('r', RICID); //Item nach unten bewegen: var LIC = document.getElementById('l_' + LICID); var RIC = document.getElementById('r_' + RICID); LIC.style.top = LIC.offsetTop + speedL * step + 1 + 'px'; RIC.style.top = RIC.offsetTop + speedR * step + 'px'; } function update(mod) { /* if((leftKey==0)&&(rightKey==0)){ S1.style.left=S1.offsetLeft-step+'px'; S2.style.left=S2.offsetLeft+step+'px'; } /**/ moveByKey(); moveItems(); S2.innerHTML = '<p>' + ((EndTime - Date.now()) / 1000) + '</p>'; } function render() { } function run() { if (((EndTime - Date.now()) > 0)) { update((Date.now() - time) / 1000); } else { if (!Ende) { alert('And the winner is...'); if (ScoreL > ScoreR) { alert('Team Black!\n' + ScoreL + ':' + ScoreR); } else if (ScoreR > ScoreL) { alert('Team Orange!\n' + ScoreR + ':' + ScoreL); } else { alert('The Bank :P'); } /*nervt nur, am ende aber aktivieren!!!*/ alert('Thank you for playing!'); Ende = true; } } //render(); time = Date.now(); } var time = Date.now(); setInterval(run, 10); document.onkeydown = setNewKey; document.onkeyup = releaseKey;