Sprite 3D

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Sprite 3D

Beitrag 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
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Sprite 3D

Beitrag 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
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.
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

Ähhm ich arbeite nicht mit der Engine3D ich will nur sprite3D verwenden.
Da hab ich sowas wie die Kamera nicht
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag 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.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

@unix: Bitte Code-Tags setzen!!!11Elf
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag 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:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

Sorry mein IExplorrer spinnt

[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
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
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.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag 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.
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag 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:
-.-"
Antworten