Seite 1 von 2

Sprite 3D

Verfasst: 01.08.2005 19:50
von unix
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

Re: Sprite 3D

Verfasst: 01.08.2005 19:55
von DarkDragon
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
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:

www.google.de
www.gamedev.net

Verfasst: 01.08.2005 20:00
von unix
Ähhm ich arbeite nicht mit der Engine3D ich will nur sprite3D verwenden.
Da hab ich sowas wie die Kamera nicht

Verfasst: 01.08.2005 21:41
von Batze
@unix:
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
Die kann man dann mit SortStructuredArray() nach Z-Koordinaten sortieren.

Verfasst: 01.08.2005 22:41
von freedimension
@unix: Bitte Code-Tags setzen!!!11Elf

Verfasst: 01.08.2005 22:47
von Batze
@unix:
Das mit den Codetags geht so:
[code]
; Der Code
messagerequester("Titel", "blablabla")
End
[/code]
Langsam muss man wirklich glauben du willst es nicht. :freak:
Ich hab BB-Code mal in dem Beitrag deaktiviert. :allright:

Verfasst: 02.08.2005 19:58
von unix
Sorry mein IExplorrer spinnt

[EDIT]
Bei mir kennt BureBasic SortStructuredArray() nicht.

Gibt es altanativen?

Verfasst: 02.08.2005 20:01
von DarkDragon
unix hat geschrieben:Ähhm ich arbeite nicht mit der Engine3D ich will nur sprite3D verwenden.
Da hab ich sowas wie die Kamera nicht
So wie Batze meinte ich es, die Kameraposition ist eh immer imaginär.

Verfasst: 02.08.2005 20:19
von Batze
@DarkDragon: Ich weiß, aber er brauchte es wohl etwas konkreter. :wink:
Unix: Dann kauf dir die Vollversion! :allright:
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.

Verfasst: 02.08.2005 20:25
von Green Snake
jop, unbedingt voll wersion ergattern :wink:
kann da nur zu stimmen, die demo is zwar auch gut, aber mit der zeit nervt der debugger und die fehlende api :wink: