[B3D] Type Engine (erweiterte OOP in B3D)
Übersicht

E. Urbachehemals "Basicprogger"Betreff: [B3D] Type Engine (erweiterte OOP in B3D) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Download (mit Beispielen)
Ich habe mir mal die Zeit genommen und eine kleine Type Engine gecodet. Dies dürfte vor allem die Personen interessieren, die kein BMax haben. Es ist eine Engine, die auf den durch B3D gegebenen "Types" (Klassen) basiert. Aktuelle Version: 0.12 ;****************************************************************** ;Features: ;****************************************************************** ; + Types erstellen ; + Felder fuer Types ; + Instanzen erzeugen ; + Standardwerte fuer Felder einstellbar ; + Vererbung ; + Methoden fuer Types ; + Precompiler (w.i.p) ;****************************************************************** ;Nicht so gut: ;****************************************************************** ; - Werte fuer Felder sind immer vom Typ String --> hohe Speicherbelastung --> langsam ; - Includes muessen manuell veraendert werden ;****************************************************************** ;Known Bugs: ;****************************************************************** ; - Mindestens ein Feld muss vorhanden sein ;****************************************************************** ;Geplant: ;****************************************************************** ; > Felder von Typen koennen von einem Typ sein ; > Precompiler, um die Methoden zu realisieren ; > Vollstaendige Typendeklaration in einem String abrufbar ; > Mehrere Werttypen fuer Felder ; > Neues Schluesselwort: this (wie self) ; > Polymorphie ;****************************************************************** ;Funktionen: ;****************************************************************** ; > CreateType ; -> erstellt einen neuen Typ ; > CreateInstance ; -> erstellt eine neue Instanz eines Typs ; > SetValue ( tinst.TInstance, vname$, nvalue$ ) ; -> setzt den wert eines Felds mit dem Namen vname$ einer Instanz tinst auf nvalue$ ; > GetValue ( tinst.TInstance, vname$ ) ; -> gibt den wert eines Felds mit dem Namen vname$ einer Instanz tinst zurueck ;****************************************************************** ;Konstanten: ;****************************************************************** ; > TE_VERSION ; -> die aktuelle Version der Type-Engine ; > TE_PC_VERSION ; -> die aktuelle Version des Precompilers Ich hab zwar kein B+, aber es sollte dennoch problems darauf laufen. Wenn ich den Precompiler endlich fertig geschrieben habe, dann kann man folgenden Code problemlos unter B3D compilieren lasse: Code: [AUSKLAPPEN] Type TPoint Field x=5 ;Standardwerte Field y=2 End Type Type TVector extends TPoint ;normalerweise nur in BMax Field z=1 End Type vec.TVector = New TVector vec\x = 1 vec\y = 1 vec\z = 1 Vector ist sozusagen die Subklasse von Point in diesem Beispiel. Da ich den Precompiler noch nicht fertig geschrieben hab, muss man leider diesen Code benutzen: Code: [AUSKLAPPEN] cPoint.TType = CreateType("Point","x=5;y=2") cVector.TType = CreateType("Vector","z=1", "Point") Es wird ebenso möglich sein, Methoden zu definieren: Code: [AUSKLAPPEN] Type TPoint Field x=0 Field y=0 Method Draw() Plot Self\x, Self\y End Method End Type Falls jemand weitere Informationen braucht, kann er sich die beiliegende Dokumentation anschauen. Download (mit Beispielen) P.S.: gehört das zu Projekte? |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
- Zuletzt bearbeitet von E. Urbach am Do, Apr 27, 2006 16:57, insgesamt 5-mal bearbeitet
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
neue Version 0.05:
+ eine Vorabversion des Precompilers + Einige Bugs verhindert Man kann folgenden Code schon mit dem Precompiler compilieren lassen: Code: [AUSKLAPPEN] Type Point Field x=15 Field y=30 End Type Type Vector extends Point Field z=17 End Type anders: Code: [AUSKLAPPEN] Point.TType = CreateType("Point","x=15;y=30") Vector.TType = CreateType("Vector","z=17", "Point") (siehe obiger Code/Download) Morgen werde ich mir dann die Methoden vornehmen -> eine Idee habe ich schon... |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sieht sehr aufwendig und genial aus.
Werds mir beizeiten mal angucken. |
||
E. Urbachehemals "Basicprogger" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe jetzt nach langer Zeit mal wieder an meiner Type Engine gearbeitet.
Neue Version 0.12: + Precompiler erweitert -> Werte setzen und lesen + Bugfix: Kommentare verursachten einen Fehler Download Ich habe schon angefangen die Methoden zu realisieren, aber es braucht noch einige Zeit, bis es fertig ist. Zur Info: Alle 0.X Versionen sind Betas, ich wäre euch dankbar, wenn ihr diese testen könntet, da es wahrscheinlich so viele Bugs geben wird, dass man sie gar nicht alle aufzählen kann. Am besten wäre es, wenn ihr mir sagt, ob example.bb bei euch erfolgreich abgelaufen ist. P.S. Den Precompiler (der zurzeit nicht richtig funktioniert) startet ihr mit der beiliegenden Datei pre_comp.bb, sie "precompiliert" die Datei pre_comp_example.bb |
||
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auch wenn der Thread schon ziemlich alt ist, hat das vielleicht noch wer? | ||
Warbseite |
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ganz oben ist doch der Download-Link. Der geht auch noch/wieder. Oder meinst du noch etwas anderes? | ||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eigentlich meinte ich den Link in dem Beitrag über mir, aber der im ersten geht ja^^ | ||
Warbseite |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group