littleHtml Freak
Mitglied
hallo,
ich bin gerade ratlos was meine retrun-Werte angeht...
Ich rufe mit einer Funktion a() eine Funktion b() auf. b() macht diverses Zeug und bricht mit return ab, wenn entweder alles erledigt wurde, oder bricht mit return false ab, wenn ein Fehler auftritt.
Dann soll in a() jenachdem ob b() erfolgreich war etwas ausgeführt werden.
dazu habe ich mit folgenden code ausgedacht der aber nicht funktionieren will!
vereinfacht:
das geht nicht die variable test in a() ist immer "undefined"
ich bin davon ausgegangen dass der Rückgabewert von return true ist. stimmt das? ist aber für das Problem erstmal schnuppe, weil es auch nicht geht wenn ich mit return true; true zurückgebe
hier auch der echte code...
viele grüße
PS: wie kann man die farben aus dem edior(coffeeCup free) mit kopieren? wäre toll wenn man in dem code was erkennen könnte...
ich bin gerade ratlos was meine retrun-Werte angeht...
Ich rufe mit einer Funktion a() eine Funktion b() auf. b() macht diverses Zeug und bricht mit return ab, wenn entweder alles erledigt wurde, oder bricht mit return false ab, wenn ein Fehler auftritt.
Dann soll in a() jenachdem ob b() erfolgreich war etwas ausgeführt werden.
dazu habe ich mit folgenden code ausgedacht der aber nicht funktionieren will!
vereinfacht:
Code:
function a(){
var test = b();
if(test){
mach was
}
else return;
}
function b(){
if(bedingung) return false;
if(andere bedingung) return;
}
ich bin davon ausgegangen dass der Rückgabewert von return true ist. stimmt das? ist aber für das Problem erstmal schnuppe, weil es auch nicht geht wenn ich mit return true; true zurückgebe
hier auch der echte code...
Code:
[COLOR=#b22222] function neuerTurm[/COLOR](mausPosX,mausPosY){
var mausPos={x:mausPosX,y:mausPosY}
[COLOR=#006400] //neuen Weg fuer alle Monster finden[/COLOR]
[COLOR=#b22222] var test = wegAendern();[/COLOR]
console.log(test);
[COLOR=#b22222]if(test){[/COLOR]
[COLOR=#006400] //Turm in Array erstellen[/COLOR]
turmPos.push(mausPos);
[COLOR=#006400] // Turm grafisch erstellen[/COLOR]
layerTuerme.drawImage(turm1Bild, mausPos.x, mausPos.y);
[COLOR=#b22222]}[/COLOR]
[COLOR=#006400] //Menue verlassen[/COLOR]
exitMenue();
}
[COLOR=#b22222]function wegAendern()[/COLOR]{
var i,monsterAufNormalWeg,wegTest;
[COLOR=#006400] //neuen allgemeinen Weg berechen und testen ob es einen Weg gibt, wenn nein wird false zurückgegeben[/COLOR]
wegTest=a_stern(start,ziel);
if(wegTest)normalWeg=wegTest;
[COLOR=#ff0000]else return false;[/COLOR]
[COLOR=#006400] //für aktuell bewegte Monster den Weg berechnen[/COLOR]
for(var a=0;arrayMitMonstern[a];a++){
[COLOR=#006400] //hier wird geprueft, ob sich das Monster auf dem normalWeg befindet[/COLOR]
monsterAufNormalWeg=false;
[COLOR=#006400] //stelle, an der sich das Monster im aktuellen weg array befindet[/COLOR]
i=arrayMitMonstern[a].i;
[COLOR=#006400] //prüfen ob der vorherige und nächste refPunkt in normalWeg sind[/COLOR]
for(var b=1;normalWeg[b];b++){//b=1 weil ein vorgänger Referenzpunkt definiert sein muss
[COLOR=#006400] //wenn der aktuelle und vorherigerige refpunkt in normalWeg sind, dann wird der normalWeg als weg festgelegt[/COLOR]
[COLOR=#800000] if(arrayMitMonstern[a].weg[i].x==normalWeg[b].x && arrayMitMonstern[a].weg[i].y==normalWeg[b].y && arrayMitMonstern[a].weg[i-1].x==normalWeg[b-1].x && arrayMitMonstern[a].weg[i-1].y==normalWeg[b-1].y){[/COLOR]
arrayMitMonstern[a].weg=normalWeg;
arrayMitMonstern[a].i=b;
monsterAufNormalWeg=true;
[COLOR=#ff0000]return;[/COLOR]
[COLOR=#800000] }[/COLOR]
}
[COLOR=#006400] //das wird ausgefuert wenn das Monster nicht auf dem normalWeg laeuft[/COLOR]
if(!monsterAufNormalWeg){
var letzterRefPunktID=arrayMitMonstern[a].i-1;
[COLOR=#006400] //vom letzten Refpunkt aus den neuen weg berechnen, weil a_stern immer vielfache von abstandPP zum rechnen braucht[/COLOR]
var pos={x:arrayMitMonstern[a].weg[letzterRefPunktID].x,y:arrayMitMonstern[a].weg[letzterRefPunktID].y};
[COLOR=#006400] //Test ob ein Weg existiert, wenn nein wird false zurückgegeben[/COLOR]
wegTest=a_stern(pos,ziel);
[COLOR=#800000]if(wegTest){[/COLOR]
[COLOR=#006400]//Wegzuweisung[/COLOR]
arrayMitMonstern[a].weg=wegTest;
[COLOR=#006400] //monster soll beim 1. wegpunkt weiter laufen.[/COLOR]
arrayMitMonstern[a].i=1;
[COLOR=#ff0000]return;[/COLOR]
[COLOR=#800000]}[/COLOR]
[COLOR=#ff0000]else return false;[/COLOR]
}
}
}
viele grüße
PS: wie kann man die farben aus dem edior(coffeeCup free) mit kopieren? wäre toll wenn man in dem code was erkennen könnte...