"Allgemeine" Funktionen für Types
Übersicht

![]() |
Black SpiderBetreff: "Allgemeine" Funktionen für Types |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute,
hab mal ne kleine Frage, also: In unserem Spiel gibt (und soll es) sehr viele Objekte Geben, die alle aus Types bestehen. Nun sollen diese auch alle ein Update erhalten. Nur da ich echt keine Lust hab für jedes objekt eine einzelne update Funktion zu erstellen, wollte ich eine Allgemeine Funktion erstellen, die dann für jeden Type aufgerufen wird. Problem: die Types. es sollte eigentlich so aussehen: BlitzBasic: [AUSKLAPPEN]
oder so ähnlich halt. leider funzt das nicht,... Habt ihr ne Ahnung !? |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit OOP (nur in BMax) könntest Du sowas realisieren.
In BB3D musst Du alle Objekte in einem Type verwalten, dann ist das auch kein Problem. Es muss dann halt ein zusätzliches Feld "Klasse" oder so geben, mit dem Du dann einen normalen Stein von einem Feuerstein unterscheiden kannst -> entspricht dann der C4ID in Clonk... |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
aha, klingt auch gut...
wie bekomme ich das mit dieser "klasse" hin ? Kannst du mir da mal ein Beispiel nennen ? Und: wenn doch alle objekte in einem Type sind, und ich nur ein objekt neu machen will, dann nehm ich ja:BlitzBasic: [AUSKLAPPEN] ao.alleobjekte = New alleobjekte doch dann wird doch der Ganze type berechnet... (und auch die objekte die ich nicht will oder ?) Danke! |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Man kann Objekte so verschachteln da sich sowas ähnliches machen lässt.
Wie unten im Listing zu sehen ist kann man dann auf den Type Entity zugreifen welches für jedes Entity gleich ist und die Basiseigenschaften enthält, wie eben die Position. Ich habe mal etwas angefangen, dabei war die Idee das man über brushes auch gewisse Materialeigenschaften zuweist. Ich poste das mal hier: Code: [AUSKLAPPEN] ;entity classes Const type_mesh = 1 Const type_terrain = 2 Const type_pivot = 3 Const type_sprite = 4 Const type_light = 5 Const type_camera = 6 Const type_plane = 7 Const type_mirror = 8 Const type_emitter = 9 Global default_brush.brush = createDefaultBrush() Function createDefaultBrush.brush() t.texture = New texture t\texture = CreateTexture(8,8) t\scaleU# = 1 t\scaleV# = 1 t\blend = 1 s.sound3d = New sound3d m.material = New material m\name$ = "_default" For i=0 To 15 m\sound[i] = s Next b.brush = New brush b\brush = CreateBrush(255,255,255) b\name$ = "_default" ;vision b\alpha# = 1 b\fx = 0 b\blend = 1 b\red = -1 b\green = -1 b\blue = -1 For i=0 To 3 b\texture[i] = t Next b\material = m Return b End Function Type Entity Field id Field entity Field name$ Field class Field mesh.mesh Field terrain.terrain Field pivot.pivot Field sprite.sprite Field camera.camera Field plane.plane Field light.light ; Field mirror.mirror ; field emitter.emitter Field Parent.entity Field x#,y#,z# Field pitch#,yaw#,roll# Field EntityTyp Field PickMode Field PickModeObscurer Field copyof.entity Field visibility Field brush.brush Field Boundary.Boundary Field property.property End Type Type mesh Field xresource Field surf.surf Field scaleX#,scaleY#,scaleZ# Field lightmap.lightmap End Type Type terrain Field detail Field morph Field shading Field scaleX#,scaleY#,scaleZ# End Type Type pivot Field scaleX#,scaleY#,scaleZ# End Type Type sprite Field scaleX#,scaleY# Field handleX#,handleY# Field ViewMode Field fadeRate# Field fadeTo# Field rotation# End Type Type camera Field ClsRed,ClsGreen,ClsBlue Field ClsCol,ClsZB Field FogRed,FogGreen,FogBlue Field FogMode Field FogNear#,FogFar# Field ProjMode Field RangeNear#,RangeFar# Field ViewX,ViewY,ViewWidth,ViewHeight Field zoom# End Type Type light Field red#,green#,blue# Field typ Field range# Field coneIn#,ConeOut# End Type Type plane Field grid End Type Type surf Field surface Field mesh.mesh Field brush.brush End Type Type lightmap Field lightmap Field ressource$ End Type Type brush Field id Field brush ;identifier Field name$ ;vision Field alpha# Field shininess# Field fx Field blend Field red,green,blue ;texture Field texture.texture[4] Field frame[4] ;misc Field material.material Field order ;autofade Field AutofadeNear# Field AutofadeFar# End Type Type material Field id Field name$ Field sound.sound3d[16] Field spawn.entity[16] End Type Type Boundary Field id Field x#,y#,z#,width#,height#,depth# Field radiusX#,radiusY# End Type Type Collision Field id Field name$ Field SourceType.ColType Field TargetType.ColType Field Methode Field Reaction End Type Type ColType Field id Field num Field name$ End Type Type property Field name$[16] Field value$[16] End Type Type Texture Field id Field texture Field name$ Field width Field height Field start Field frames Field posU#,posV# Field scaleU#,scaleV# Field rotation Field blend Field coord Field flag End Type Type sound3D Field sound Field file$ Field loop Field pitch End Type Wer jetzt meint das sei Speicherverschwendung ... das kann man so oder so sehen, einerseits ist das sicher so, andererseits kann man damit echt fantastische Sachen machen. Speicher ist bei den Mengen an Grafiken und Geometrie kaum ein Problem.[/code] |
||
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey das is gut! Ich probiers aus,
und wie ich das jetzt verstanden habe, erstellst du ein Objekt im Type Objekt. Die Textur im Type Textur. Die Speziellen eigenschaften im Type spezielleEigenschaften usw... Und dann eine UpdateFunktion die die ID des Entsprechenden Objekts, der eigenschaft prüft, und dann dementsprechend es so Updated wie es soll... So müsste es gehen Danke! Vielen Dank!!! |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group