blöder Fehler im Script oder denkfehler von mir?

ts230

Gesperrt
Hallo,
ich habe aus den tiefen meines Servers ein altes Javascript gezogen, welches eine Mondlandung simuliert.Eigentlich läuft alles soweit,
bis auf drei Punkte:
  • die Klartext-Anzeige für den Treibstoffverbrauch steht immer auf >Fullly<
  • die Felder wollen einfach nicht ihre Hintergrundfarbe ändern
  • ich verstehe es nicht, wieso.
Hier das Script:
Code:
var leermasse = 6700              // Masse ohne Treibstoff des Landeteils
var masse                         // Gesamtmasse des LM bei Hoehe des Simulationsbeginns
var altitude
var thrust                        // Bruchteil des Maximalschubs
var thrustpct                     // Prozent des Maximalschubs
var textVelocity
var fuelmax = 8280                // Treibstoffmasse (kg) vor Abstiegsmanoever
var fuel                          // Treibstoffmasse (kg)
var fuelpct                       // Treibstoffmasse (%)
var fuelpcts                       // Treibstoffmasse (%)
var timerID = null
var massflow = 15                 // Treibstoffdurchsatz (kg/s) bei vollem Schub
var exhaustvel = 2500             // Ausstroemgeschwindigkeit (m/s)
var updinterval = 250             // setTimeout-Parameter (ms)
var timestep = updinterval/1000   // reales Zeitintervall (s)
var simRunning = false
var timerID
var thrustbar = ""
var fuelbar = ""
var status = ""

function incThrust() {
   if (fuel > 0 && thrust <= 0.9 && simRunning)
    thrust += 0.1
}

function decThrust() {
   if (thrust >= 0.1)
           thrust -= 0.1
}

function setThrust(newthrust) {
   if (newthrust > 0 && fuel > 0 && simRunning)
        thrust = newthrust
   else
    if (newthrust == 0)
        thrust = 0
}

function stopTimer() {
   if (simRunning == true)
      clearTimeout(timerID)
   simRunning = false
}

function resetSim() {
   stopTimer()
   fuel = 1200
   fuelpct = Math.round(100*fuel/fuelmax)
   fuelpcts = Math.round(100*fuel/fuelmax)
   masse = leermasse+fuel   // Leermasse + Treibstoffmasse auf Höhe, die Simulationsbeginn entspricht
   altitude = 2500
   thrust = 0.5
   thrustpct = Math.round(100*thrust)
   Velocity = -50
   
   thrustbar = ""
   for(var i = 1; i <= thrustpct/5; i++)
     thrustbar += "»"
     thrustbar += " "+thrustpct+"%"

   fuelbar = ""
   for(var i = 1; i <= fuelpct/1; i++)
     fuelbar += "»"
   fuelbar += " "+fuelpct+"%"

   fuelbars = ""
   for(var i = 1; i <= fuelpcts/1; i++)
     fuelbars += ""
   fuelbars += " "+fuelpcts+"%"

   status="du kannst jetzt neu beginnen\n\t"

   updateDisplay()
}

function startSim() {
   if (simRunning == false) {
        resetSim()

        status="Schubregelung:\n\n- vertikal: manuell\n- horizontal: automatisch"

        simRunning = true
        
        updateData()

   }
}

function updateData() {

   fuel -= thrust*massflow*timestep
   if (fuel <= 0) {
        fuel = 0
        fuelpct = 0
        fuelpcts = 0
        thrust = 0
        thrustpct = 0
   }
   else {
        fuelpct = Math.round(100*fuel/fuelmax)
        fuelpcts = Math.round(100*fuel/fuelmax)
        thrustpct = Math.round(100*thrust)
   }
   
   thrustbar = ""
   for(var i = 1; i <= thrustpct/5; i++)
        thrustbar += "»"
    thrustbar += " "+thrustpct+"%"

    fuelbar = ""
    for(var i = 1; i <= fuelpct/1; i++)
        fuelbar += "»"
    fuelbar += " "+fuelpct+"%"

    fuelbars = ""
    for(var i = 1; i <= fuelpcts/1; i++)
        fuelbars += ""
    fuelbars += " "+fuelpcts+"%"

   
    masse = leermasse+fuel
    Velocity += (-1.6+thrust*massflow*exhaustvel/masse)*timestep  // Schwerebeschl. = 1,6 m/s2
    altitude += Velocity*timestep

   if (altitude <= 0) {
      altitude = 0
      thrust = 0
   }
   if(fuelbars.value == "14%")
{
document.getElementById('textFuelBara').value = "Contents: Fully";
document.getElementById('textFuelBara').style.border = "1.5px solid green";
document.getElementById('textFuelBara').style.color = "green";
}
else if(fuelbars.value == "13%")
{
document.getElementById('textFuelBara').value = "Content: Fully";
document.getElementById('textFuelBara').style.border = "1.5px solid green";
document.getElementById('textFuelBara').style.color = "green";
}
else if(fuelbars.value == "12%")
{
document.getElementById('textFuelBara').value = "Contents: Fully";
document.getElementById('textFuelBara').style.border = "1.5px solid green";
document.getElementById('textFuelBara').style.color = "green";
}
else if(fuelbars.value== "11%"){
document.getElementById('textFuelBara').value = "Contents: Fully";
document.getElementById('textFuelBara').style.border = "1.5px solid green";
document.getElementById('textFuelBara').style.color = "green";
}
else if(fuelbars.value == "10%")
{
document.getElementById('textFuelBara').value = "Contents: Fully";
document.getElementById('textFuelBara').style.border = "1.5px solid green";
document.getElementById('textFuelBara').style.color = "green";
}
else if(fuelbars.value == "9%")
{
document.getElementById('textFuelBara').value = "Content: Fully";
document.getElementById('textFuelBara').style.border = "1.5px solid green";
document.getElementById('textFuelBara').style.color = "green";
}
else if(fuelbars.value == "8%")
{
document.getElementById('textFuelBara').value = "Contents: Fully";
document.getElementById('textFuelBara').style.border = "1.5px solid green";
document.getElementById('textFuelBara').style.color = "yellow";
}
else if(fuelbars.value == "7%"){
document.getElementById('textFuelBara').value = "Contents: midlle";
document.getElementById('textFuelBara').style.border = "1.5px solid green";
document.getElementById('textFuelBara').style.color = "green";
}
else if(fuelbars.value == "6%")
{
document.getElementById('textFuelBara').value = "Contents: little";
document.getElementById('textFuelBara').style.border = "1.5px solid orange";
document.getElementById('textFuelBara').style.color = "orange";
}
else if(fuelbars.value == "5%")
{
document.getElementById('textFuelBara').value = "Content: little";
document.getElementById('textFuelBara').style.border = "1.5px solid yellow";
document.getElementById('textFuelBara').style.color = "orange";
}
else if(fuelbars.value == "4%")
{
document.getElementById('textFuelBara').value = "Contents: very little";
document.getElementById('textFuelBara').style.border = "1.5px solid orange";
document.getElementById('textFuelBara').style.color = "red";
}
else if(fuelbars.value == "3%"){
document.getElementById('textFuelBara').value = "Contents: very little";
document.getElementById('textFuelBara').style.border = "1.5px solid orange";
document.getElementById('textFuelBara').style.color = "red";
}
else if(fuelbars.value == "2%"){
document.getElementById('textFuelBara').value = "Contents: very little";
document.getElementById('textFuelBara').style.border = "1.5px solid orange";
document.getElementById('textFuelBara').style.color = "red";
}
else if(fuelbars.value == "1%"){
document.getElementById('textFuelBara').value = "Contents: none";
document.getElementById('textFuelBara').style.border = "1.5px solid red";
document.getElementById('textFuelBara').style.color = "red";
}
else if(fuelbars.value == "0%"){
document.getElementById('textFuelBara').value = "Contents: none";
document.getElementById('textFuelBara').style.border = "1.5px solid red";
document.getElementById('textFuelBara').style.color = "red";
}
   if (Velocity < 0) status="Flugrichtung: abwärts"
   if (Velocity == 0) status="Schweben"
   if (Velocity > 0) status="Flugrichtung: aufwärts"
   if (altitude == 0) {        // on surface

      stopTimer(timerID)
var dasDiva = document.getElementById('textStatus')
var dasDivb = document.getElementById('textVelocity')
      if (Velocity < -2.2) {   // crash
         if (Velocity < -4) {
             status="Aufprall mit "+Math.round(Velocity)+" m/s. Leichter Schaden.";
alert("Naja,\ndas wars wohl mit der Kammera!");
dasDiva.style.backgroundColor ="orange";
dasDivb.style.backgroundColor ="orange";
      Velocity = "aufgesetzt"
         }
         if (Velocity < -9) {
             status="Aufschlag mit "+Math.round(Velocity)+" m/s. Schwerer Schaden.";
alert("Funktioniert noch irgendetwas?");
dasDiva.style.backgroundColor ="yellow";
dasDivb.style.backgroundColor ="yellow";
      Velocity = "aufgesetzt"
         }
         if (Velocity < -14) {
             status="Zerschellt mit "+Math.round(Velocity)+" m/s.Schade";
alert("Zerschellt");
dasDiva.style.backgroundColor ="red";
dasDivb.style.backgroundColor ="red";
     Velocity = "aufgesetzt"
         }
}
      else {                 
         status="Gratulation, sicher aufgesetzt mit "+Math.round(Velocity)+" m/s.";
alert("Super \nBesser gehts nicht!");
dasDiva.style.backgroundColor = "green";
dasDivb.style.backgroundColor ="green";
      Velocity = "aufgesetzt"
      }

   }
   else {
       timerID = window.setTimeout("updateData()",updinterval)
   }

   updateDisplay()
}

function updateDisplay() {
  document.lander.textStatus.value=status
  document.lander.textAltitude.value=Math.round(altitude)+" m"
  document.lander.textVelocity.value=Math.round(Velocity)+" m/s"
  document.lander.textThrBar.value=thrustbar
  document.lander.textFuelBar.value=fuelbar
}
resetSim()

Ich hoffe,ihr könnt mir helfen.:)
Danke für alle Antworten im Voraus
 
Moin,

hast du das ganze Dokument mal verfügbar(vielleicht sogar online?)...das würde die Fehlersuche enorm erleichtern.:)
 

Neue Beiträge

Zurück