Sprite 3D
- unix
- Beiträge: 361
- Registriert: 15.02.2005 19:25
- Wohnort: Zwischen Coburg und Bamberg :-)
- Kontaktdaten:
Sprite 3D
Ich habe mal wieder ein problem:
Ich habe vor Sprite mit einen Z Parameter darzustellen
Allso ich will das das Sprite mit Z 0 ein Sprite mit Z -100 komplett überdeckt.
Ich habe es mit Sprite 3D versucht nur leider wird das wieder ignoriert
Wenn jemand helfen kann dann bitte hilft mir
CODE:
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
End
EndIf
If InitSprite3D() = 0
MessageRequester("Error", "Direct3D system can't be initialized correctly", 0)
End
EndIf
If OpenScreen(640, 480, 16, "Sprite")
LoadSprite(0, "H:\PureBasic\PureBasic\Examples\Sources\Data\Geebee2.bmp", #PB_Sprite_Texture)
TransparentSpriteColor(0,255,0,255)
CreateSprite3D(0, 0)
CreateSprite3D(1, 0)
z = 0
Repeat
ClearScreen(0,0,0)
Start3D()
TransformSprite3D(0,0,0,z,200,0,z,200,200,z,0,200,z)
TransformSprite3D(1,0,0,200,200,0,200,200,200,200,0,200,200)
DisplaySprite3D(0,100,100,255)
DisplaySprite3D(1,150,150,255)
Stop3D()
z+1
FlipBuffers()
ExamineKeyboard()
Until z = 400 Or KeyboardPushed(#PB_Key_Escape)
End
EndIf
Ich habe vor Sprite mit einen Z Parameter darzustellen
Allso ich will das das Sprite mit Z 0 ein Sprite mit Z -100 komplett überdeckt.
Ich habe es mit Sprite 3D versucht nur leider wird das wieder ignoriert
Wenn jemand helfen kann dann bitte hilft mir
CODE:
If InitSprite() = 0 Or InitKeyboard() = 0
MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
End
EndIf
If InitSprite3D() = 0
MessageRequester("Error", "Direct3D system can't be initialized correctly", 0)
End
EndIf
If OpenScreen(640, 480, 16, "Sprite")
LoadSprite(0, "H:\PureBasic\PureBasic\Examples\Sources\Data\Geebee2.bmp", #PB_Sprite_Texture)
TransparentSpriteColor(0,255,0,255)
CreateSprite3D(0, 0)
CreateSprite3D(1, 0)
z = 0
Repeat
ClearScreen(0,0,0)
Start3D()
TransformSprite3D(0,0,0,z,200,0,z,200,200,z,0,200,z)
TransformSprite3D(1,0,0,200,200,0,200,200,200,200,0,200,200)
DisplaySprite3D(0,100,100,255)
DisplaySprite3D(1,150,150,255)
Stop3D()
z+1
FlipBuffers()
ExamineKeyboard()
Until z = 400 Or KeyboardPushed(#PB_Key_Escape)
End
EndIf
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
die hat aber Urlaub.
MfG : Unix
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: Sprite 3D
Du hast kein TiefenTest(Depth-Test). Im Sprite3D Modus würde ich nur die Dreiecke nach Mittelpunkt zur Kamera hin sortieren. Für näheres:unix hat geschrieben:Ich habe mal wieder ein problem:
Ich habe vor Sprite mit einen Z Parameter darzustellen
Allso ich will das das Sprite mit Z 0 ein Sprite mit Z -100 komplett überdeckt.
Ich habe es mit Sprite 3D versucht nur leider wird das wieder ignoriert
Wenn jemand helfen kann dann bitte hilft mir
www.google.de
www.gamedev.net
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
@unix:
Mach dir eine Linkedlist, in der du alle Koordinaten speicherst
Die kann man dann mit SortStructuredArray() nach Z-Koordinaten sortieren.
Mach dir eine Linkedlist, in der du alle Koordinaten speicherst
Code: Alles auswählen
structur xyz
X.f
Y.f
Z.f
endstructure
structur sprite3d
textur.l
e1.xyz
e2.xyz
e3.xyz
e4.xyz
endstructure
LinkedList Vierecke.sprite3d
- freedimension
- Admin
- Beiträge: 1987
- Registriert: 08.09.2004 13:19
- Wohnort: Ludwigsburg
- Kontaktdaten:
- unix
- Beiträge: 361
- Registriert: 15.02.2005 19:25
- Wohnort: Zwischen Coburg und Bamberg :-)
- Kontaktdaten:
Sorry mein IExplorrer spinnt
[EDIT]
Bei mir kennt BureBasic SortStructuredArray() nicht.
Gibt es altanativen?
[EDIT]
Bei mir kennt BureBasic SortStructuredArray() nicht.
Gibt es altanativen?
Zuletzt geändert von unix am 02.08.2005 20:07, insgesamt 1-mal geändert.
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
die hat aber Urlaub.
MfG : Unix
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
So wie Batze meinte ich es, die Kameraposition ist eh immer imaginär.unix hat geschrieben:Ähhm ich arbeite nicht mit der Engine3D ich will nur sprite3D verwenden.
Da hab ich sowas wie die Kamera nicht
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
@DarkDragon: Ich weiß, aber er brauchte es wohl etwas konkreter.
Unix: Dann kauf dir die Vollversion!
Die Demo ist eine ältere Version von PB, das heißt da gab es die Befehle noch nicht. Du könntest dir natürlich die Arbeit machen und SortStructuredArray() selbst programmieren, aber dann ist er wohl ziemlich langsam und so einfach ist das auch nicht.

Unix: Dann kauf dir die Vollversion!

Die Demo ist eine ältere Version von PB, das heißt da gab es die Befehle noch nicht. Du könntest dir natürlich die Arbeit machen und SortStructuredArray() selbst programmieren, aber dann ist er wohl ziemlich langsam und so einfach ist das auch nicht.
- Green Snake
- Beiträge: 1394
- Registriert: 22.02.2005 19:08