-
Notifications
You must be signed in to change notification settings - Fork 143
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
treibi
committed
May 6, 2017
1 parent
a7c3937
commit 936301c
Showing
1 changed file
with
160 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,160 @@ | ||
(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. | ||
|
||
|