Simon, hvad siger Firefox debugger til din kode? Og jeg mener hele det der system. Hvis det er en fejl må den da næsten brokke sig.
Nope. Hverken Explorer, Firefox eller Chrome melder nogen fejl når jeg kører siden, men det virker ikke.
Det er et Mario-linende spil jeg er ved at lave. Hele min JavaScript kode er her vis det har nogen interesse:
//##########LEVEL FUNKTIONER
//##########LEVEL FUNKTIONER
//##########LEVEL FUNKTIONER
//Funktionen der tegner banen på skærmen
function drawLevel(level) {
eval('drawLevel' + level + '();');
}
//Funktion der generere CSS'en og positionere samtlige 20 linjer
//Jo længere banen skal være jo større er ROW
function drawLines(rows) {
//Følgende WHILE køres 20 gange og X er lig med det antal gange den er blevet kørt
var x = 1;
while (x <= 20) //Funktionen skal køres 20 gange da der er tyver rækkker i banen
{
var name = "line" + x; //Name er navnet på DIV'en. Der er en div for værd række i banen
document.write('<div id="' + name + '">'); //Skriver DIV NAME ud i HTML
//Skriver inholdet af DIV NAME ud på skærmen
var y = 1;
while (y <= rows) // DIVen skal indeholder ROWS antal kolonner
{
document.write('<span id="' + x + '-' + y + '" class="square"><img src="sky.png"></span>');
y ++;
}
document.write('</div>'); //Indholdet af diven er lavet og derefter lukkes den
//DIV'en er nu lavet og lukket, og vi positinere den derfor nu med DOM
document.getElementById(name).style.position = 'absolute';
document.getElementById(name).style.top = (x - 1) * 20 + 'px';
document.getElementById(name).style.left = '0px';
document.getElementById(name).style.width = rows * 20 + 'px';
x ++; //X forøges og møllen køre igen hvis X stadig er mindre end 20
}
}
function drawHorizontalLine(row,startColumn,endColumn,fill) //Denne funktion tegner en vandret linje fra venstre mod højre. row er hvilken række linjen skal være i. starColumn og endColumn er hendholdvis hvilken kollone linjen skal starte i, og hvilken den skal slutte i. fill representere navnet på den png fil der skal fyldes ud i den pågældende linje.
{
while (startColumn <= endColumn)
{ //Funktionen køre så længe at starColumn ikke er større end endColumn, for hvis den er det er linjen tegnet færdig.
var square = row + '-' + startColumn; //square representere det felt der skal ændres
document.getElementById(square).innerHTML = '<img src="' + fill + '.png">'; //Indholdet af square ID'et bliver = fill.
startColumn ++; //Start column bliver forøget med en sådan at den næste square i linjen bliver udfyldt ved næste loop
}
}
function drawLevel1() {
drawLines(50); //Kalder funktionen drawlines der laver en bane med 50 linjer
drawHorizontalLine(17,1,50,'gro');
drawHorizontalLine(18,1,50,'gro');
drawHorizontalLine(17,7,50,'sky');
createMario(101,51); //Laver Mario
}
//##########MARIO FUNKTIONER
//##########MARIO FUNKTIONER
//##########MARIO FUNKTIONER
var marioAction = 'stand'; //Har værdien 'stand' hvis Mario ikke falder pt. og værdigen 'fall' hvis han er ved at falde, 'jump' hvis han er i spring
var key39 = 'up'; //RIGHT
var key37 = 'up'; //LEFT
var key38 = 'up'; //LEFT
//Denne funktion laver Mario, og placerer ham et sted på skærmen baseret på X og Y
function createMario(x,y)
{
document.write('<div id="mario"><img src="mario.png"></div>');
var mario = document.getElementById("mario");
mario.style.left = x + 'px';
mario.style.top = y + 'px';
mario.style.zIndex = '2';
marioFall(1);
}
//Funktionen der får mario til at falde af
function marioFall(x) //Funktionen tjækker om Mario er på jorden, og hvis han ikke er det kaldes funktonen der får ham til at falde
{
var acc;
is = isMarioOnGround(); //Hvis mario er på jorden bliver is=yes og hvis ikke bliver is=no
if (is != 'yes' && marioAction == 'stand') //Hvis mario ikke er på jorden og han ikke allerede er ved at falde
{
changeMarioTop(1);
marioAction = 'fall';
acc = x / 2;
x++;
eval('setTimeout("marioFall(' + x + ')",acc)');
} else if (is == 'yes' && marioAction == 'fall')
{
marioAction = 'stand';
key38 = 'up';
}
}
//Funktionen der tjekker om Mario står på jorden, den giver 'yes' hvis han er på jorden og 'no' hvis at han ikke er på jorden
function isMarioOnGround()
{
var y = getMarioTop();
var row = y / 20 + 3; //Dividere Y med 20 for at finde hans placering i forhold til felterne, der alle er 20x20
if (Math.ceil(row) != Math.floor(row)) //Hvis ROW ikke er et heltal rundes det op, og derved findes den række bunden af mario befinder sig i.
{
row = Math.ceil(row);
}
var x = getMarioLeft();
x = x / 20;
if (Math.ceil(x) == Math.floor(x)) // Hvis X er et heltal rundes det ikke af
{
var x1 = x+1;
if (document.getElementById(row + '-' + x).innerHTML == '<img src="sky.png">' && document.getElementById(row + '-' + x1).innerHTML == '<img src="sky.png">')
{
return 'no';
} else {
return 'yes';
}
} else {
x = Math.ceil(x);
var x1 = x+1;
var x2 = x+2;
if (document.getElementById(row + '-' + x).innerHTML == '<img src="sky.png">' && document.getElementById(row + '-' + x1).innerHTML == '<img src="sky.png">' && document.getElementById(row + '-' + x2).innerHTML == '<img src="sky.png">')
{
return 'no';
} else {
return 'yes';
}
}
}
function moveMario(e) //Denne funktion aktiveres når der trykkes på en knap
{
var key=e.keyCode;
if (key == '39' && key39 == 'up') //Hvis der er blevet trykket "højre"
{
key39 = 'down';
moveLeft = setInterval('changeMarioLeft(1)',9);
} else if (key == '37' && key37 == 'up') // Hvis der er blevet trykket venstre
{
key37 = 'down';
moveRight = setInterval('changeMarioLeft(-1)',9);
} else if (key == '38' && key38 == 'up') // Hvis der er blevet trykket op
{
key38 = 'down';
marioJump(1);
}
}
function stopMoveMario(e) //Denne funktion aktiveres når der trykkes på en knap
{
var key=e.keyCode;
if (key == '39') //Hvis "højre" blev løftet
{
key39 = 'up';
clearInterval(moveLeft);
} else if (key == '37') // Hvis venstre blev løftet
{
key37 = 'up';
clearInterval(moveRight);
}
}
function marioJump(x) //Funktionen der gør at Mario kan hoppe
{
marioAction = 'jump';
var acc;
if (x <= 40) {
changeMarioTop(-2);
acc = x * 2;
x++;
eval('setTimeout("marioJump(' + x + ')",acc)');
} else {
marioAction = 'stand';
marioFall(1);
}
}
function getMarioTop() //Denne funktion returnere top positions værdien af Mario som en int
{
mario = document.getElementById("mario")
var y = mario.style.top;
y = y.substring(0,y.length-2);
y = parseInt(y);
return y;
}
function changeMarioTop(x) //Denne funktion ændre top positions værdien af mario med X
{
mario = document.getElementById("mario")
var y = mario.style.top;
y = y.substring(0,y.length-2);
y = parseInt(y);
mario.style.top = y + x + 'px';
}
function getMarioLeft() //Denne funktion returnere left position værdien af Mario som en int
{
mario = document.getElementById("mario")
var x = mario.style.left;
x = x.substring(0,x.length-2);
x = parseInt(x);
return x;
}
function changeMarioLeft(y) //Denne funktion ændre left positions værdien af mario med X
{
mario = document.getElementById("mario")
var x = mario.style.left;
x = x.substring(0,x.length-2);
x = parseInt(x);
mario.style.left = x + y + 'px';
if (marioAction != 'jump')
{
marioFall(1);
}
}
Indlæg senest redigeret d. 02.06.2009 20:34 af Bruger #10113