Hallo Christoph,
ich hab mal wieder ein problem :(
es geht um das Spiel.
ich weiß echt nicht mehr weiter: die supermänner sollten von links nach rechts und von rechts nach links fliegen. nur die supermänner, die von rechts nach links fliegen sollen fliegen komisch.
ja klar. Du sagst denen ja auch, dass sie an der Position 0 nach links losfliegen sollen. Es wäre keine schlechte Idee, wenn die Supermännchen bei 500 losfliegen würden.
function Rechtsreinfliegen()
{
var S = Math.floor(Math.random() * (5 - 1 + 1)) + 1;
var Tempo = Math.floor(Math.random() * (100 - 50 + 1)) + 50;
var Abstand = Math.floor(Math.random() * (1000 - 500 + 1)) + 500;
if(document.getElementById("Text_S"+S).value=="0")
{
// Da baust Du den Fehler ein:
// Eine solcher hardcodierter Wert ist übrigens schlecht zu finden
var Funktion = "RechtsReinS" + S + "("+Tempo+", '0')";
// Was bewirkt der zweite Parameter von RechtsRein?
/*--------------------------------------------------*/
document.getElementById("Text_S"+S).value="1";
// Hättest Du den Startwert über eine Konfigurationsvariable
// geregelt, wäre Dir dieser nicht unterlaufen, hier benötigst Du
// die 500 ja wieder. Du machst Dir Änderungen schwer - und
// nirgendwo sind die Maße dokumentiert.
document.images["S"+S].style.left="500px";
document.images["S"+S].style.visibility="visible";
setTimeout(Funktion, 1);
}
var Zeit=parseFloat(document.getElementById('zeit').value);
if(Zeit>3) {setTimeout("Rechtsreinfliegen()", Abstand);}
}
function RechtsReinS2(Tempo, B)
{
if(document.getElementById('Text_S2').value=="1")
{
// wo soll er also losfliegen? Richtig: bei 0
// Wo sollte er losfliegen? Richtig: bei 500
B = parseFloat(B);
B = (B - 10);
document.images["S2"].style.left=B + 'px';
if(B>-50) {setTimeout("RechtsReinS2("+Tempo+", "+B+")", Tempo);}
else {document.images["S2"].style.visibility="hidden"; document.images["S2"].style.left='-40px';document.getElementById('Text_S2').value="0";}
}
}
Ach ja:
Viele Deiner Funktionen sind überflüssig. Eine für die Startwerte und eine für die Bewegung wären völlig ausreichend.
Ganz wichtiger Hinweis:
Kommentiere Deinen Code. Schreib' beispielsweise zuerst als Kommentar, was Du tun willst, dann schreib' Deinen Code.
Noch eine Anmerkung:
Irgendwo hier in der Forumshauptdatei kannst Du nachlesen, wie man das Stringzusammenbauen für setTimeout() vermeiden kann. Ich glaube, es ist in Felix' Thread zu seinem Fader-Framework.
Freundliche Grüße
Vinzenz