Von B3D zu BMax
Übersicht

![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oha, Fehler meinerseits. Hui.
Wobei Funktiospointer als Objekte sowieso keinen Sinn machen würden, rein vom Benutzen her. Danke fürs Berichtigen! |
||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
Seven |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was genau sind Funktionspointer?
Und nebenbei; Muss man verstehen, was ein Objekt ist und was nicht? |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Und nebenbei; Muss man verstehen, was ein Objekt ist und was nicht? Du kennst Types? Diese können Werte halten und man kann mit Funktionen diese Werte manipulieren oder auslesen. Ein Objekt ist fast dasselbe, nur dass die Funktionen (Methoden) zum manipulieren und auslesen direkt im Type sitzen. |
||
Farbfinsternis.tv |
Seven |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gilt diese Funktion eigentlich die ganze Zeit, oder kann man sie die ganze
Zeit aktiv halten? Anderenfalls würde ich keinen besonderen Vorteil daraus sehen. Im Grunde könnte man in dem Fall ja eine Funktion extra für ein Type zurecht schneiden. Das wäre etwas umständlicher, aber möglich. (außer, so hoffe ich, ich unterliege einem Irrtum) |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Keine Ahnung ob das für Dich besser ist, aber es ist generell besser weil besser lesbar. Wenn Du nach einem Jahr in Deinen alten Code schaust siehst Du direkt dass diese Funktionen nur dazu da sind die Eigenschaften (Fields) dieses Objekts zu manipulieren während Du bei externen Funktionen erstmal die Funktionen lesen musst um herauszufinden welche Types manipuliert werden. | ||
Farbfinsternis.tv |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einer der Vorteil, die ich sehr an den Typen in BlitzMax schätze, ist die Tatsache, dass die Funktionen einen Geltungsbereich "nur innerhalb" des Types haben. Dadurch ist es möglich in zwei Typen 2x die selbe Funktionsbezeichung für völlig unterschiedliche Funktionen zu verwenden:
BlitzMax: [AUSKLAPPEN] Type A So muss man sich nie sorgen machen, dass eine Bezeichnung eines importierten TYPE-Moduls mit den Bezeichnungen anderer TYPES oder des Hauptprogramms kollidiert. Das wirst Du schätzen lernen! Der Aufruf solcher Funktion geschieht so: BlitzMax: [AUSKLAPPEN] Print A.GetInfo(3) Deutlich wird dies an dem Aufruf Print B.GetInfo(4). Hier wird diese seltsame Zeile ausgegeben: Zitat: 4 x 4 = 9
Funktionen innerhalb des Types können andere Funktionen innerhalb dieses Types ohne vorangestellten "NameSpace" aufrufen :BlitzMax: [AUSKLAPPEN] Return Quadrat(X)
Funktionen des einen Types können Funktionen eines anderen Types mit vorangestellten "NameSpace" aufrufen :BlitzMax: [AUSKLAPPEN] Return A.Quadrat()
Auch von ganz außerhalb kann man Funktionen innerhalb eines Types mit vorangestellten "NameSpace" aufrufen :BlitzMax: [AUSKLAPPEN] Return B.GetInfo(X)
Beim Aufrufen einer Funktion, die nur innerhalb eines Types existiert, wird diese aber im Hauptprogramm nicht gefunden:BlitzMax: [AUSKLAPPEN] Print GetInfo(8) ; <-- sowas get nicht |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
Seven |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich denke ich verstehe es langsam.
Danke für die ausführliche Erklärung. Ich werde erstmal ein paar Tutorials dazu lesen. |
||
Seven |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich vermisse die Befehle GfxModeHeight![]() ![]() Das einzige was ich gefunden habe ist GraphicsHeight und co, aber bei GraphicsHeight lässt sich kein Modus oder überhaupt irgendetwas einstellen. Was für eine Alternative gibt es? |
||
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
CountGraphicsMode GetGraphicsMode
GetGraphicsMode ein paar Variablen für die Parameter übergeben, in welche er schreiben darf, und nach dem Aufruf hast du die einzelnen Eigenschaften in denen. |
||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
Seven |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
5 Werte, die ich übergeben muss?
Und wieso müssen 4 davon aus Variablen stammen? bzw. wieso soll ich Width, Height usw. rein geben, wenn ich diese Werte doch aus der Funktion erwarte? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
...weil BlitzMax viel coolere Dinge bietet, als Blitz3D!
BlitzMax: [AUSKLAPPEN] Local a:Int, b:Int, c:IntMit dem Schlüsselwort Var wird in die Variablen zurückgeschrieben - du erhältst mit einem Funktionsaufruf alle Werte, anstatt alles über einzelne Funktionen. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Seven |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das hat was:D
Nicht schlecht^^ Leider kann ich nicht einfach Width, Height usw. in GetGraphicsMode einspeisen, da ich ja mit Hilfe von CountGraphicsMode und GetGraphicsMode diese herausfinden möchte. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe nicht ganz. Du stellst die Variablen bereit, die Funktion füllt die richtigen Werte hinein, abhängig vom Modus-Index.
BlitzMax: [AUSKLAPPEN] Local w:Int, h:Int, d:Int, f:Int |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Seven |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ah so
Hatte den falschen Gedanken geknüpft^^ Funktioniert auf die weiße Perfekt. Danke:) |
||
Seven |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Noch etwas;
Da ich schon in Blitzbasic nach Lua geguckt habe, wollte ich es auch mal in Blitzmax ausprobieren. (genauer: BRL.MaxLua) Wirkliche Tutorials habe ich nicht gefunden, also probiere ich momentan rum. So sieht man Test aus; BlitzMax: [AUSKLAPPEN]
Die Datei dazu: Code: [AUSKLAPPEN] Print "Hallo" Es heißt luaL_dofile gibt eine 0 aus, wenn es keine Probleme gibt und eine 1 bei Problemen. Ich bekomme eine 2 xD Wenn ich das Print "Hallo" entferne, dann gibt es eine 0, also wird die Datei zumindest erkannt, aber ausgeführt wird nichts. Was ist falsch? |
||
![]() |
Propellator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bist du dir sicher, dass du nicht erst noch Print hooken musst damit du es von Lua her benutzen kannst? Da war doch irgendwie sowas. | ||
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis. |
![]() |
blackgecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Propellator: Ich denk mal, das Print von Lua ist gemeint.
Das MaxLua-Modul benutzt man so: Code: [AUSKLAPPEN] --Lua-Datei--
print "Hallo" function bye() print "Tschau" end BlitzMax: [AUSKLAPPEN] 'BlitzMax-Datei Befehle, die einfach so in der Datei stehen, werden beim Erstellen des LuaObjects ausgeführt, Funktionen erst wenn sie mit invoke() aufgerufen werden. Über den zweiten Parameter kann man der Lua-Funktion noch Parameter mitgeben. |
||
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group