Frage und Assaris Tutorials

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

hamztata

Betreff: Frage und Assaris Tutorials

BeitragMo, März 23, 2009 5:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann man die tutorials von assari auch irgendwo komplett am stück downloaden?

und eine frage am rande, nachdem ich jetzt so einige codes mir angeschaut habe....
ich kenn noch z.b. variable = loadmesh.....
jetzt hab ich in bmax gesehen "irgendwas:TMesh = loadmesh..." oder so ähnlich.
nur eine frage dazu, ist das :TMesh nur wegen minib3d oder gibts nen grund für diese art der deklaration....

ja steht sicher in den tuts, aber hab sie erstmal überflogen.
ich geh erstmal pennen.
 

Ava

Gast

BeitragMo, März 23, 2009 7:09
Antworten mit Zitat
Ähm, ja, es gibt einen Grund. Du bekommst im Gegensatz zu Blitz3D keinen Integerwert zurück, sondern einen direkten Objektpointer vom Typ TMesh. Das ist übersichtlicher (man weis immer, was man hat) und auch schneller, als über den Integer das Objekt rauszusuchen. Zudem kann man die Funktionen und Methoden für das Objekt direkt aufrufen, ohne Umwege über andere Funktionen. Naja, objektorientierte Programmierung halt. Rolling Eyes Wilkommen in BlitzMax. Wink
 

hamztata

BeitragMo, März 23, 2009 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
oh alles klar.
stellt sich nur die frage ob ich dann bei einem zugriff immer so pointen muss, also die entität immer irgendwas:TMesh angesprochen wird.
nach dem motto moveentity irgendwas:TMesh. und TMesh wird ja sicher auch nur irgendwo deklariert/definiert, aber dazu werd ich erstmal schauen was ich heut noch so in den tuts hier zu lesen finde.
gab ja sogar deutsche tuts hier irgendwo.

BladeRunner

Moderator

BeitragMo, März 23, 2009 12:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Das :TMesh ist nur bei der Deklaration von Bedeutung.
Ich arbeite selbst nicht mit MiniB3D, aber grundsätzlich läuft sowas so ab:

Code: [AUSKLAPPEN]
Type TTest
    field bla:int
    field blub:int

    method do(x:int)
        print (bla*blub+x)
    end method
end type

local test:TTest = new TTest 'hier wird eine Instanz von der obigen Schablone erstellt
test.bla = 5
test.blub= 8
test.do(2)
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

hamztata

BeitragMo, März 23, 2009 12:48
Antworten mit Zitat
Benutzer-Profile anzeigen
genau das kommt mir eher bekannt vor.
Hatte mich gewundert woher denn dieses Type denn kommt.
im grunde wird also einer variable ausser dem bspw. loadmesh gleich auch noch ein type aufgedrückt, welches dann eben verschiedene eigenschaften haben kann.

oder verstehe ich das falsch.es kommt ja kein new TMesh sondern ein loadmesh.
 

Ava

Gast

BeitragMo, März 23, 2009 14:52
Antworten mit Zitat
Das New TMesh wird innerhalb von LoadMesh aufgerufen. Dann werden die Daten dort entsprechend vorbereitet (zb. geladen ect.) und das erstellte TMesh Objekt wird von der Funktion an Dich zurückgegeben.

Deinen Satz mit dem "aufgedrückt" verstehe ich nicht. Eine Variable wird immer klar deklariert - und bleibt dann auch so.
 

hamztata

BeitragMo, März 23, 2009 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
ah hab grad gesehen, daß das nur minib3d betrifft, wo man das machen MUSS.
weil dort bspw. TMesh notwendig ist, weil minib3d ja damit dann die infos aus einem geladenen mesh liest.also mittels dieser structur.also ist ein mini3bd bezogener type.

will nämlich eine andere engine verwenden, dachte schon das muss man überall machen.
 

Ava

Gast

BeitragMo, März 23, 2009 15:16
Antworten mit Zitat
Du hast in jeder Engine andere Objektklassen ... das Prinzip bleibt dennoch überall das gleiche.
 

hamztata

BeitragMo, März 23, 2009 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
das stimmt ja auch, aber nicht überall muss man dann irgendein TIrgendwas dazuschreiben.
Also normale variablen reichen sozusagen.

also mesh = loadmesh...... wie bei bb3d halt
 

Ava

Gast

BeitragMo, März 23, 2009 15:47
Antworten mit Zitat
Und wenn es kein TIrgendwas ist, dann ist es ein Int, Float, Double, Byte, String, was auch immer ... das Prinzip bleibt immer gleich. Weglassen darfst Du sowas nur ausserhalb des SuperStrict Modes - aber das ist definitiv nicht empfehlenswert!
 

hamztata

BeitragMo, März 23, 2009 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das weiß ich ja, grins.wird zwar eine umstellung, aber strict ist sauberer, soweit hab ichs schon geschnallt.

Geeecko

BeitragMo, März 23, 2009 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Superstrict ist am saubersten.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group