janekx21 / jackthefishman Goto Github PK
View Code? Open in Web Editor NEW3D Framework
3D Framework
Das Hauptmenü (MainMenu) hat die folgenden Knöpfe.
Start, Options, Quit, Credits (als bild von Krakula)
Mit den folgenden Funktionen
Das Optionsmenü hat die Folgenden Elemente
Global Gain Slider, Back
Die Credits sind entweder ein Link auf krakula.com oder ein link zum repo oder ein link zum eLearing oder ein Dialog mit folgendem Text
"Dieses Spiel entstand im Ramen der Lehrveranstaltung 3D Game Project an der Otto von Guericke Universität Magdeburg. An der Entwicklung waren die folgenden Studenten beteiligt: Hannes, Bennet, Arne, Janek. Wir bedanken uns recht herzlich bei den Lehrveranstaltern: "
Es sollen die Projektile nicht nur regelmäßig durch den Timer kommen sondern auch von dem Beat der Musik gesteuert werden. Ein Beat soll mit dem Ankommen des Projektiles synchronisiert sein.
Das Game mal grundlegend zum laufen bringen.
FN Taste in der Input.kt einfügen
Text Rendern, Boxen (Panel) und Buttons anzeigen
opengl framebuffer wrap
eine röhre mit industriellem Look
create const and copy class in math folder for Vector2f
Spawnt, schießt x - mal, verschwindet.
Projektil: Einfach ne Kugel oder eventuell dieses komische Ei.
Braucht:
Modell
Spawner (für die Kugel)
Modell für die Kugel
Variable für die Firerate
Information darüber, auf welcher Lane er spawnt und schießt
Für die Kugel:
Variable für Projektilgeschwindigkeit
Collider
Variable für Damage
Concept Art befindet sich (vllt) im Wiki und auf Discord
ask janek
Scooter + Delivery Boy
Tunnel immer vorne wieder anhängen
test
Source vom Sample trennen
so viel wie möglich auf immutable umbauen. Das heißt vor allem die Vektor Bibo so gestallten das keine val mehr nötig sind und fast alle sachen über Vector*fc laufen.
Wichtige klassen sind dabei:
Es soll am unteren Bildschirmrand eine Pizza zu sehen sein die in 6 Stücke geteilt ist. Das Leben des Spielers soll durch die Anzahl der Pizzastücken dargestellt werden.
Zeigt HP
Zeigt aktive Items an
Component für die Kamera, die sich so rotiert, dass sie durchgehend zum GameObjekt Spieler schaut
Areal wo der Spieler Schaden kriegt
Box
Sphere
plane / quad
blender monkey
Components können ja jetzt deaktiviert sein (Component.onEnable
, Component.onDisable
). AudioComponent
und Music
sind dafür aber noch nicht ausgelegt. Die würden praktisch auch OpenAL Samples abspielen, wenn sie eigentlich deaktiviert sind. (Was passieren kann, wenn zB ein Level geladen wird, oder ein Savegame)
Also müsste man den AudioComponent
und Music
state vom OpenAL state trennen
Lasershark/ Katzenhai, spawnt, zeigt kurz an, auf welcher Lane er schießen wird, schießt, verschwindet
Braucht:
Model
Info über die Lane, auf der er spawnt
Raycast für den Laser
Linedrawer + Shader
Damage
2 Variablen dafür, wie lange der Laser angekündigt wird und wie lange er dann da ist
Concept Art befindet sich im Wiki und auf Discord
Besteht aus:
Set the window minimum size to 640x480
Adding controllersupport to Inputclass
Sowas mit GameObjects und Scene.
Entscheidung:
mit Klassen
GameObject
|
Transform(val pos, val rot, val scaling)
|
Player
mit Komponenten
GameObject(val Component[])
Component______
| \
Transform Meshrenderer
Das fromJson
und toJson
hat keine zukunft. Warum nicht das native serialisieren verwenden.
Laut (Klaxon Git)[https://github.com/cbeust/klaxon] kann hier auch Klaxon die arbeit machen.
Steuerung vom Spieler
-> Tastatur
-> Maus
-> Controller
einfache Kamera die Matrizen setzt
Hängt an einem Gegner und spawnt GameObjects (Projektile)
ein weiteres mal muss das Projekt mal ein wenig aufgeräumt werden
Box2D (Google flow fun) als java lib implementieren
http://jbox2d.org/
private val physicsWorld = org.jbox2d.dynamics.World(Vec2(0f, 9.81f), false)
private val groundDef = BodyDef()
init {
groundDef.position = Vec2(0f, -10f)
}
private val ground = physicsWorld.createBody(groundDef)
private val shape = PolygonShape()
init {
shape.setAsBox(50f, 10f)
}
private val fix = ground.createFixture(shape, 0f)
private val bodyDef = BodyDef()
init {
bodyDef.position = Vec2(0f, 4f)
}
private val body = physicsWorld.createBody(bodyDef)
private val boxShape = PolygonShape()
init {
boxShape.setAsBox(1f, 1f)
}
private val fixture = FixtureDef()
init {
fixture.shape = boxShape
fixture.density = 1f
fixture.friction = .3f
body.createFixture(fixture)
}
Hammerhead, spawnt, schießt einen Aal und verschwindet.
Aal fliegt in Schlangenlinien zwischen x - Lanes.
Braucht:
Model
Information über die Lane, auf der er spawnt
Model für den Aal
Spawner für den Aal
Für den Aal:
Projektilgeschwindigkeit
Wobble Geschwindigkeit
Wobble Amplitude (über wie viele Lanes fliegt er hin und her)
Variable für Damage
Collider
Concept Art befindet sich im Wiki und auf Discord
bitte click testen und fixen
siehe:
src/engine/util/Input
research ob man das gut unterstützen könnte
Laternenfisch, spawnt, schießt (Kugel macht keinen Schaden) und verschwindet wieder
Braucht:
Model
Model für die Kugel + glow Shader
Info über die Lane, auf der er spawnt
Spawner für die Kugel
Für die Kugel:
Projektilgeschwindigkeit
braucht keinen Collider weil es ja nur zur Täuschung sein soll
Concept Art befindet sich im Wiki und auf Discord
via shadow mapping
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.