Seite 59 von 66
Verfasst: 20.08.2007 17:10
von STARGÅTE
ich denke er würde das machen:
Code: Alles auswählen
UseBuffer(Sprite)
DisplaySprite(SpriteOhne3D, 0, 0)
DisplaySprite(SpriteOhne3D2, 100, 0)
UseBuffer(-1)
CreateSprite3D(Sprite,Sprite)
Um somit mehrere Sprites zusammen zu fassen und ein Sprite3D machen.
Ich würde dir (Scarabol) aber raten einfach ALLE Sprites gleich in 3D zu machen:
Code: Alles auswählen
Procedure LoadSprite3D(Sprite, DateiName$)
If LoadSprite(Sprite, DateiName$, #PB_Sprite_Texture)
If CreateSprite3D(Sprite, Sprite)
ProcedureReturn 1
EndIf
EndIf
EndProcedure
Verfasst: 20.08.2007 17:14
von Scarabol
Ok danke, werd mich gleich mal an die Umsetzung machen...
[Edit]
Mist dann muss ich ja zu jedem Sprite die Größe mitspeichern, oder wie?
ZoomSprite3D() is ja leider absolut...
[/Edit]
Gruß
Scarabol
Verfasst: 20.08.2007 17:23
von STARGÅTE
naja die kannst du doch aber mit SpriteWidth zu jeder Zeit ermitteln, denn die ändert sich ja nicht

Verfasst: 20.08.2007 17:31
von Kaeru Gaman
ich würd trotzdem ein array anlegen, das geht dann schneller als x function-calls von SpriteWidth.
zumal bei den tiles sollten eh alle gleich groß sein, da hast du also einen festen wert.
es wäre schwachsinn, für den gesamten mapausschnitt für jedes tile einen SpriteWidth aufruf zu tätigen.
Verfasst: 20.08.2007 17:33
von STARGÅTE
naja ich habs sowieso in den LL drin in denen die anderen Infos stecken für Einheiten, Gebäude, ...
Verfasst: 20.08.2007 17:34
von Kaeru Gaman
yup klar...
wenn schon objektliste, dann kann das gleich mit drin stehen.
Verfasst: 21.08.2007 00:04
von PMV
Kaeru Gaman hat geschrieben:zumal das mit sprite3D garnicht geht.
ein buffer kann nur ein normales sprite sein.
Das Sprite, aus welchem das Sprite3D generiert wurde, agiert als Texture
und somit kann das Sprite direkt bemalt werden um den inhalt des
Sprite3D zu verändern.
Wollt ich nur los werden
... während der Laufzeit aber ständig Sprite3Ds zu erstellen ist glaub ich
zu langsam, zumal das Alte ja auch wieder freigegeben werden müsste.
MFG PMV
Verfasst: 22.08.2007 22:33
von dllfreak2001
Bemal mal mit den 2d-drawing befehlen ein als Sprite3d-erstelltes sprite ohne es neuzuerstellen zur laufzeit in der hauptschleife.
Die veränderung ist trotzdem sofort sichtbar.
Verfasst: 23.08.2007 01:12
von PMV
dllfreak2001 hat geschrieben:Bemal mal mit den 2d-drawing befehlen ein als Sprite3d-erstelltes sprite ohne es neuzuerstellen zur laufzeit in der hauptschleife.
Die veränderung ist trotzdem sofort sichtbar.
Das hab ich mit meinem Post doch gesagt ... aber vermutlich wieder zu
undeutlich

... ich lerns nie -.-
MFG PMV
Verfasst: 23.08.2007 17:08
von dllfreak2001

stimm, ich lese

auch ab und zu zu schnell...
Damit kann man nen tollen blur produzieren