Giter VIP home page Giter VIP logo

felda's Introduction

Felda

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.

Struktura aplikace

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)

Javascript

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

felda's People

Contributors

lemonexe avatar zbycz avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

zbycz

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.