Types und verebung ?!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Knartz

Betreff: Types und verebung ?!

BeitragSa, Sep 10, 2005 11:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hey leute,
ich wollte eine basisklasse erstellen und dann erweiterte darauf aufsetzen

ungefähr so

BlitzBasic: [AUSKLAPPEN]

Type person ;basisklasse
Field lifepoints
Field position_x
Field position_y
blablabla ...
End Type

Type mage ;erweiterung
Include person ; so wär's cool Wink
Field mana
Field spells
End Type


Muss ich jetzt jede klasse für sich bauen oder kann ich C++-mäßig mit verebung arbeiten, oder gibt's da etwas, das ich übersehen habe ?

danke für die hilfe
 

MegaTefyt

BeitragSa, Sep 10, 2005 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem hatte erst gestern jemand, schau doch einfach in die Hilfe auf blitzbase.de, da stehen Beispiele dazu drin. Rolling Eyes
 

Knartz

Betreff: gelöst

BeitragSa, Sep 10, 2005 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
"Objektorientierte Programmierung" in der blitzbase beschreibt das.

geht halt nicht wirklich so wie ich wil. ich muss also so basteln

BlitzBasic: [AUSKLAPPEN]

Type person
Field health
Field experience
Field stat1
Field stat2
usw.
End Type

Type mage
Field person.person ;hiermit übernehme ich die \"person\" eigenschaften
Field mana
Field mana_regeneration
Field spells
usw.
End Type


hm, knartz_the_coder.person\experience = knartz_the_coder.person\experience + 1000
Wink
das geht doch auch einfacher ,oder ?

thx

Jolinah

BeitragSa, Sep 10, 2005 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest höchstens kürzere Variablennamen verwenden, oder eine Referenz zu dem Person Type zwischenspeichern:

Code: [AUSKLAPPEN]
p.person = knartz_the_coder\person
p\experience = p\experience + 1000


Wenn du richtige OOP benutzen möchtest empfehle ich dir mal einen Blick auf BlitzMax zu werfen. Da gibts Methoden, Statische Methoden, Vererbung und Polymorphismus.
 

Knartz

BeitragSa, Sep 10, 2005 15:57
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für den hinweis.
irgendwie gefällt mir das aber nicht so wirklich.
ist eigentlich besser als bb3d kostet aber weniger - warum ?
 

gamble

BeitragSa, Sep 10, 2005 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Für BlitzMax ist noch kein 3D Modul verfügbar, und wenn es dann fertig ist wird man es wahrscheinlich kaufen müssen.
 

Knartz

BeitragSa, Sep 10, 2005 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
mit kein 3d modul meinst du jetzt komplett null 3D fähigkeiten ?
oder nur kein D3D?

bis jetzt hat es wohl nur 2d opengl, oder ?

bruZard

BeitragSa, Sep 10, 2005 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, BMax basiert auf OGL oder DX (kannst Du Dir aussuchen) ... es stellt nix 3D dar, verwendet aber 3D zur Darstellung von 2D Grafik.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

Knartz

BeitragSa, Sep 10, 2005 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
also sind die 3d befehle noch nicht in bmax implementiert ?
 

BIG BUG

BeitragSa, Sep 10, 2005 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Es wird hier ein eigenes kostenpflichtiges 3D-Modul geben. Ich denke insgesamt dürfte das Ganze dann etwas teurer als B3D werden, aber bisher scheint noch nichtmal das BMax-Grundmodul sonderlich ausgereift zu sein...
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

Knartz

BeitragSa, Sep 10, 2005 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
hm , ist wohl noch sehr neu, oder?

@jolinah : danke für den tip !

Jolinah

BeitragSa, Sep 10, 2005 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte bisher keine Probleme mit BlitzMax. Im 2d Bereich kann man im Moment mindestens soviel wie in Blitz2d machen, wenn nicht sogar mehr (Rotate, Alpha usw.), und das ganze ist wahrscheinlich erst noch ein wenig schneller. Hinzu kommt OOP.

Bei 3D siehts natürlich anders aus, wobei sich einige (Vertex, Markus?) bereits die Mühe machen eigene 3D Engines zu schreiben die man, wie ich finde, bereits gut gebrauchen kann.

Netzwerk Support gabs zu Beginn auch noch nicht, und jetzt benutzen viele das BNet bzw. BNetEx Modul von Vertex weil das offizielle Modul nicht so der Hit ist Wink

Das einzige was meiner Meinung nach noch nicht so ausgereift ist, ist das Errorhandling. Die meisten Funktionen lösen gar keine Exception aus wenn da was fehlschlägt. Ok es gibt ein paar grundlegende Exceptions wie Memory Exception usw.. Aber anhand dieser Exceptions kann man nicht wirklich erkennen was denn nicht funktioniert hat. Wenn z.B. von einem Stream nicht mehr gelesen werden kann sollte da nicht eine Memory Exception oder ähnliches kommen, sondern eine Problem-spezifische Exception. Vielleicht sowas wie StreamReadingException oder was weiss ich. Das ermöglicht es einem in nem grossen Try-Catch-Block zu ermitteln wo das Problem lag:

Code: [AUSKLAPPEN]
Local var:MyType = Null
Local stream:TStream = ReadStream("file.txt")

Try
  var.a = 10  'Memory Exception da var = Null
  stream.ReadByte() 'Memory Exception weil nix gelesen werden kann
Catch ex:Object
  'Was nun?
End Try


Wie man sieht kann man da im Catch nicht unterscheiden wo nun ein Fehler aufgetreten ist. Schöner wäre sowas:

Code: [AUSKLAPPEN]
...
Try
  var.a = 10 'Memory Exception
  stream.ReadByte() 'StreamIOException
Catch ex:Object
  If MemoryException(ex)
    Print "Ungültiges Objekt"
  Elseif StreamIOException(ex)
    Print "Von der Datei konnte nicht gelesen werden.
  EndIf
End Try
 

Knartz

BeitragDi, Sep 13, 2005 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
hm ich warte dann mal bis die 3d libs da sind...

hab ja dann erstmal genug zu tun mit meinem studium ... Smile

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group