代码拉取完成,页面将自动刷新
(6mai17)
letzte Schritte des CoffeemeterGames:
1. Scoring Events
==================
Alle Events koennen gleichzeitig auftreten
* Score Event 1: Coffeemeter schwappt ueber
Minus-Sekunden proportional zu aktuell neu uebergeschwappter Menge
Coffeemeter.excessNew. Richtig uebergeschwappter Kaffee entspr 5
Ruepelpunkten
Definiere excessNew des letzten
Zeitschritts (= lokale excess-Variable von
Coffeemeter.updateSurface) als class member, um
darauf zugreifen und das Event triggern (excessNew>0) zu koennen
* Score Event 2: Hintermann wird stark behindert, accLongLag<-2m/s^2:
5 Ruepelpunkte fuer <-2m/s^2, weitere 5 fuer <-4 m/s^2
* Score Event 3: Verlassen der Fahrbahn:
Trigger: kontinuierlicher Spurlindex v<-0.5, >2.5
10 Ruepelpunkte und automatisch Bremsen mit -2 m/s^2
* Score Event 4: Crash gegen ein anderes Fahrzeug oder gegen
die Baustelle (auch passive Crashs): Game Over ohne Ranking
* Score Event 5: Game Over:
(i) Fahrzeug erreicht Ziel
(ii) Timeout ist erreicht
(iii) Unfall (=Score Event 4)
2. Anzeigetafel des Spielstandes incl Feedback zu Scoring Events
================================================================
* Anzeige Zeit, Ruepelpunkte, aktueller Score =100-Zeit-RuepelpunktePunkte
* nach Verlassen der Strasse (Score Event 3): Weiterlaufen der
Zaehler, darunter Anzeige "Kehren Sie auf die Fahrbahn zurueck!"
* nach erfolgreichem Game-Over-Signal: Simulation und
obige Anzeige stoppt, darunter
"Sie haben erfolgreich das Ziel erreicht!\n Ihr Ergebnis: <Ergebnis>
Punkte", weitere Anzeigen => Highscore-Liste
* nach Timeout-Signal: Simulation und Anzeige stoppt,
darunter "Schneckenwarnung: Sie
waren zu langsam! Versuchen Sie es noch einmal",
weitere Anzeigen => Highscore-Liste
* nach Unfall: Simulation und Anzeige Stoppt,
darunter "Game Over!<br>Sie sind aber unverletzt und koennen es nochmal
versuchen"
=> 1,2: "Scoring.js"
- Datenelemente:
time, bullyPoints, score,
resultsString, messageString,
othersObstructed(boolean) => needed for "honk"
notOnRoad (boolean) => needed to decelerate ego vehicle
timeoutReached => needed for game control
crashHappened => needed for game control
- resultsString: Anzeige Zeit, Ruepelpunkte, aktueller Score
- messageString: das, was unter der Anzeige kommt
("Kehren Sie auf die Fahrbahn zurueck!")
- Konstruktor: Verknuepfung mit DOM-Objekt (html div Element) der
Anzeige
- function update(road, coffeemeter) => updated alle Datenelemente
- function display() => Display auf DOM-Element
3. Highscore-Liste
==================
* Events: Ende des Spiels bzw. Ergebnis in den Top Ten
* Event "Top Ten"=>Ergebnisse eingeben: js-driven modal dialog box
"Gratulation! Sie haben ein Top-Ten Ergebnis erreicht!\nGeben Sie
einen Namen ein"
https://www.w3schools.com/js/js_popup.asp
https://www.w3schools.com/js/tryit.asp?filename=tryjs_prompt
(der button onclick ist nur das Demo-Event, bei mir ist es
erfolgreiches Beenden des Spiels innerhalb der Top-Ten),
nach "OK" Anzeige der Highscores
* Event Jede Art der Spielbeendung=Score Event 5:
=> Button "Zeige Highscores" (automatisch
nur bei Top-Ten gezeigt) und Button "Neues Spiel"
* Ergebnisse holen/speichern: localStorage, in
coffeemeterGame.js => //!!! test localStorage
* Anzeige der Highscores: weitere Popup Box vom Typ Alert
(ohne eigene Eingabe, nur auf OK druecken zum schliessen):
window.alert("sometext");
=> Highscore.js, siehe coffeemeterGame.js => //!!! test localStorage
- Datenelemente:
. Array von scoreRecords (name=..., score=..., time=)
wie in coffeemeterGame.js => !!!testLocalStorage
. die localStorage Elemente (wie Name des localStorage)
- Konstruktor: Verknuepfung mit Name des localStorage und
html DOM-Element der Anzeige, Holen alter Highscores aus localStorage
- function update(scoreRecord) (schliesst auch neues Speichern mit ein)
- function display()
- function deleteAllScores() (v.A. in Testphase)
4. Sound (wenn Zeit):
=====================
../demo_js/README_sound
* Event 1: Beschleunigen a>-0.2 m/s^2: Motorgeraeusch mit variablem
Pitch (realisiert durch recording speed) und Lautstaerke
- Pitch proportional Geschw. mit Saegezahn-Gang:
function recSpeed(v){
var recmax=1.5;
return (v<7) ? recmax*v/7 : (v<14) ? recmax*v/14 : ...
}
- Lautstaerke proportional Leistung a+b*v*acc
* Event 2: starkes Beschl., Bremsen oder Lenken mit
aAbs=|aLong*eu+aLat*ev| > 2 m/s^2: Quietschgeraeusch konst Pitch,
Lautstaerke propto aAbs (kann sich beim Beschl mit Motorgeraeusch
ueberlagern)
* Event 3=Score Event 2: Hintermann wird stark behindert,
accLongLag<-2m/s^2: Hupen
* Event 4=Score Event 3: Verlassen der Fahrbahn: lautes Fahrgeraeusch wie auf
Kies/Holpern, Rumpeln etc
* Event 5=Score Event 4: Crash gegen ein anderes Fahrzeug oder gegen
die Baustelle: Crash-Geraeusch, ggf verschiedene Geraeushce, ggf
Nachscheppern von abgesprungenen Reifenkappen etc.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。