V simulátoru Felície se konečně můžete posadit za volant pedály a řadící páku známého lidového vozítka!
Nejzábavnější fyzikální simulace všech dob je založená převážně na reálných datech a zahrnuje fyzikální model motoru, převodovky a spojky, které můžete ovládat a sledovat tak jízdní vlastnosti včetně spotřeby paliva, a nebo se prostě jen kochat pohledem na ubíhající krajinu!
Nově je zde i mnoho dalších aut, a také speciální levely, které hráči poskytnou náročné výzvy!
odkaz na produkční aplikaci
Jedná se o čistě frontendovou aplikaci napsanou v HTML/CSS/JS za pomoci frameworku AngularJS
Děkuji @zbycz za vytvoření Reálné mapy.
Ta využívá OpenStreetMap a Leaflet.
Převážná část HTML je v index.html, veškeré statické CSS (které není inline), je v app/style.css (dynamické je pak nastaveno v příslušných Angular controllerech)
app/model.js definuje objekt M
, v němž se nachází veškerá funkcionalita související se samotným výpočtem simulace (kromě výstupní konverze jednotek, která patří do controlleru).
Model je spouštěn časovačem z controlleru, avšak pro svůj běh Angular nepotřebuje
app/misc.js obsahuje různý nepořádek, co nepatří nikam jinam - obecné globální a prototypové funkce, deklarace, event listenery neposkytované Angularem,
image & sound preloading a objekt saveService
, který slouží na ukládání/načítání uživatelských dat do Local Storage
app/controller.js definuje Angular controller, který obsluhuje vše, co se týká view/controller vrstvy aplikace, avšak kromě canvasu (viz R
)
app/directives.js definuje direktivy, do kterých byla vyčleněna část funkcionality controlleru, jmenovitě:
tooltip
nahrazuje HTML title
minimap
využívá tooltip pro minimapku
gearstick
vykresluje a obsluhuje řadící páku
tab
aby byla tlačítka na přepínání podzáložek hezká, avšak kód je největší příšernost
topMenu
hlavní menu opakující se ve všech záložkách
app/showroom.js definuje direktivu showroom
, která je tak velká, že si zaslouží svůj vlastní soubor
app/render.js definuje objekt R
, který zajišťuje vykreslování canvasu pro herní grafiku, grafy a řadící páku (bez Angularu)
app/sounds.js definuje objekt soundService
, který zajišťuje zvukové efekty
app/level.js definuje objekt L
, který zajišťuje generaci výškových map levelů z předpisů a jejich čtení pro účely modelu
app/data.js definuje všechna statická data aplikace kromě dat pro jednotlivá auta a dat levelů
app/leveldata.js definuje všechna data levelů včetně jejich skriptů
app/cars.js definuje data pro jednotlivá auta
app/userdata.js definuje konstruktory na objekty stavu aplikace a uživatelských dat, což jsou po vytvoření objekty S
(stav simulace) a CS
(stav UI)
app/ng/ * .html všechny HTML soubory v tomto adresáři jsou templates pro ng-include nebo pro direktivy