1 Star 4 Fork 0

强森/traffic-simulation-de

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
README_finalisierung 4.95 KB
一键复制 编辑 原始数据 按行查看 历史
treibi 提交于 2017-05-06 12:23 . added README_finalisierung
(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.
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/huahua191024/traffic-simulation-de.git
git@gitee.com:huahua191024/traffic-simulation-de.git
huahua191024
traffic-simulation-de
traffic-simulation-de
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385