Funktionsintern int zu pointer deklarieren?
Übersicht

hamztataBetreff: Funktionsintern int zu pointer deklarieren? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Brauch mal einen kleinen tip von euch.
Ich bau grad an einem kleinen entitysystem. Hatte ein ähnliches Thema im b bereich, nun geht es aber in bm ans eingemachte. Also sagen wir es gibt für jede entität welche eine variable:int ist, eine funktionsinterne struktur. Also beispielsweise Code: [AUSKLAPPEN] PositionEntity(ent:int, x:int, y:int, z:int)
ent ist aber nun ein integer, müsste ja aber auf eine struktur zeigen. Achso vorher wird natürlich mittels sagen wir Code: [AUSKLAPPEN] ent:int = LoadMesh(pfad:string)
ein mesh geladen. Und da müsste es ja dann bei der zuweisung von ent:int zu einem pointer auf dessen struktur(type) werden. Diese struktur würde alle relavanten eigenschaften enthalten(position, rotation, effekte, modell, etc. etc.) Ein integer ist da natürlich denkabr schlecht, und ent direkt als pointer zu deklarieren finde ich als nicht so praktisch, weil unüblich. Jemand eine idee wie man das am elegantesten lösen kann? (ich kenn die art von minib3d, dort wars ja glaub ich gleich via klasse gelöst, aber ich würd das gern so haben wollen) |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
HandleFromObject:Int ( Obj:Object )
HandleToObject:Object ( Handle:Int ) Willkommen in der Steinzeit ... ![]() |
||
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
allet kloar, danke dir.... | ||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: ... , und ent direkt als pointer zu deklarieren finde ich als nicht so praktisch ...
Wieso denn das? Eine Referenz bzw. eine Objekt-Variable ist im Endeffekt nichts anderes als ein Int. Wenn du einer Funktion ein Objekt übergibst wird auch nicht das ganze Objekt kopiert sondern nur die Adresse (Int). Daher kannst du getrost immer das Objekt übergeben, also z.B: Code: [AUSKLAPPEN] Local mesh:TMesh = LoadMesh("file.x")
PositionEntity(mesh, 10, 10, 10) Wobei die Funktionen zum Beispiel so aussehen könnten: Code: [AUSKLAPPEN] Function LoadMesh:TMesh(file:String)
.. End Function Function PositionEntity(ent:TEntity, x:Float, y:Float, z:Float) ... End Function Und TMesh könnte dann einfach von TEntity erben. http://zehr.de/downloads/BlitzMax-OOP.pdf |
||
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja eben, und ich wollte dazu übergehen, daß es kein TMesh oder TEntity für den coder gibt.
Alles standard int. Der einfachheit halber. Letztendlich kommt alles in eine dll(soll es irgendwann mal) Und da ist das praktischer, oder nicht? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group