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:
Ich hoffe,ihr könnt mir helfen.
Danke für alle Antworten im Voraus
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.
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