Muss ein javascript framework immer so aufgebaut sein?
Ich möchte ein eigenes js framework für Spieleentwicklung programmieren und habe mir auch ein paar andere wie bsw Phaser.js oder pixi.js etc angeschaut. Sie fangen aber alle irgendwie so in der Art an:
var game = new Frameworkname.zumBeispielGame( ... )
Frage 1: warum sind alle frameworks, bzw alle gamedev js frameworks die ich angeschaut habe so aufgebaut
Frage 2: Kann ich das bei meinem Framework dann anders machen, oder sollte man schon beachten dass es so wie bei bsw pixi ist. Und wenn man es so machen sollte dann warum?
Mfg Weißbrot :)
1 Antwort
Erstmal vorweg: du kannst dir aussuchen, wie du es machen willst, denn es ist deins. Dafür gibt es keine Regel.
Warum die so aussehen? Weil die professionellerweise Klassen und co benutzen. Wenn du davon keine Ahnung hast, ist es empfehlenswert, dich darin einzuarbeiten. Das ist sehr wichtig in der Entwicklung.
Der Vorgang ermöglicht es dir Code zu schreiben, der sauber ist und es auch zu vermeiden, dass andere Scripte denselben Code beinhalten, womit es zu Duplikationen kommt.
Sagen wir, du hast 2 Spiele auf einer Seite, dann kommen die sich doch so in die Quere, weil du keine 2 Instanzen erstellen kannst, so wie ich das sehe
Warum sollte man 2 Spiele auf einer Seite haben? Und könntest du mir pls ein kurzen Beispielcode geben, wie es aussehen könnte, wenn ich es mit new Name.game() mache. Nur grob
Mfg :)
Beispiel: Eine Seite, die eine Spielesammlung anbietet oder ein Entwickler bringt einen One-Pager mit vielen Spielen raus.
Nur weil du sowas nicht für dich brauchst, heißt es nicht, dass es keine Anwendung findet. Klassen korrekt zu benutzen, um Instanzen zu erstellen, ist einfach der bessere Weg, da man dann mehr Kontrolle hat
Ja ich weiss, wie Classen und oop etc funktioniert. Aber währe es im source code des Frameworks nicht simpler so zu schreiben? Also so wie ich es aufbauen wollte:
basic.js (so heisst mein framework):
import { keyboard } from "./keyboard.js"
var basic = {
keyboard: keyboard,
...
}
keyboard.js:
export var keyboard = {
isDown: function(key) { ... },
...
}
Wenn man das framework benutzt würde es dann irgendwie so aussehen:
...
if(basic.keyboard.isDown('j') { console.log("j is beeing pressed") }
...
Warum sollte man es wie folgt programmieren?:
class Frameworkname {
bla bla bla
}
Und findest du meine Variante oben? Oder ist es so wie bei mir ungünstig?
Mfg Weißbrot