DirectX-Forum - Beitragsübersicht -
ThemaDX8: probleme mit directx8
Von minime
Datum 13. April 2010 um 03:43:47
Frage Hi ich arbeite momentan an einem kleinen spiel projekt und hab mir ein haufen tutorials angesehen und komme mitlerweile ein wenig mit directx8 klar nun habe ich ein problem ich wollte in vb eine funktion machen bei der automatisch ein neues directx8 object erstellt wird natürlich kann man auch alles manuell eingeben was aber in diesem fall mir nicht helfen würde , weil das spiel eine online funktion haben wird und bei der directx muss man ja für jeden spieler der online ist und den man dann auch sehen kann extra rendern und das wollte ich über eine for schleife machen aber um dies machen zu können brauche ich eine funktion die automatisch die daten für dx8 erstellt:
Bsp.

NeuObject(index, xpos,ypos,...,...,...,usw)

ich habe lange probiert es aber nicht hinbekommen wäre nett wenn mir jemand dabei behilflich sein kann

MFG minime
Antwort:
Von Nico
E-Mail nico.schertler@gmx.de
Datum 14. April 2010 um 11:35:54
Antwort Klar.
Grundlage für Bewegungen mit gleicher Geschwindigkeit ist die Framerate - besser gesagt die Zeit, die seit dem letzen Frame vergangen ist. Ich nehme an, die misst du bereits.
Dann müsstest du regelmäßig (der Einfachheit halber jeden Frame) eine Funktion aufrufen, die den Frame aktualisiert. Hast du dein Objekt eigentlich in einer Klasse? Dann wäre das optimal. Ich hab übrigens schon lange nicht mehr VB6 programmiert. Deswegen könnte ein bisschen .NET mit in meinen Code reinrutschen. Aber das kriegst du schon hin.
Private AnimTime As Long 'Speichert die Zeit seit Beginn der Animation In ms
Private Step As Integer 'Speichert den aktuellen Animationsschritt (0, 1, 2)
Private Direction As eDirection 'Speichert die Richtung
'Die Zahlen bezeichnen gleich die Position In der Textur
Private Enum eDirection
Left = 2
Right = 3
Forward = 0
Backward = 1
End Enum

Public Sub Update()
'In frameMillis stehen die Millisekunden seit dem letzten Frame
AnimTime = AnimTime + frameMillis
'Angenommen für eine komplette Animation 500 ms
If AnimTime >= 500 Then AnimTime = AnimTime Mod 500 'Den Rest beibehalten, sonst zurücksetzen
Step = Int(AnimTime * 3 / 500) '3 Animationsschritte auf 500 ms
End Sub
Damit hätten wir die Animationsschritte aktualisiert. Jetzt müssen wir das ganze noch zeichnen. Das ist dann auch nicht weiter schwierig. Wir müssen einfach aus der gesamten Textur einen passenden Bereich aussuchen. Und der geht auf der Y-Achse von 0 bis texHeight. Die Breite des Bereiches sei texWidth. Dann ist die Startposition des Bereichs auf der X-Achse genau
StartX = Direction * 3 * texWidth + Step * texWidth
Also erst auf das jeweilige Animationsset verschoben und dann noch den passenden Schritt rausgesucht.
Das ganze kannst du dann in einem Rectangle speichern und deinem Sprite-Objekt beim Zeichnen übergeben.

Nico
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ]
Antworten
DX8: probleme mit directx8 - minime 13. April 2010 um 03:43:47
Re: probleme mit directx8 - Nico 13. April 2010 um 09:43:55
Re: probleme mit directx8 - Nico 13. April 2010 um 09:51:02
Re: probleme mit directx8 - minime 14. April 2010 um 02:03:31
Re: probleme mit directx8 - minime 14. April 2010 um 02:09:20
Re: probleme mit directx8 - Nico 14. April 2010 um 11:35:54
Re: probleme mit directx8 - minime 14. April 2010 um 14:10:21
Re: probleme mit directx8 - minime 14. April 2010 um 15:20:53
Re: probleme mit directx8 - Nico 14. April 2010 um 20:32:55
Re: probleme mit directx8 - minime 15. April 2010 um 05:38:12
Re: probleme mit directx8 - minime 15. April 2010 um 10:49:36
Re: probleme mit directx8 - Nico 15. April 2010 um 10:52:50
Re: probleme mit directx8 - minime 15. April 2010 um 12:14:48
Re: probleme mit directx8 - minime 15. April 2010 um 12:17:42
Re: probleme mit directx8 - minime 15. April 2010 um 12:21:42
Re: probleme mit directx8 - Nico 15. April 2010 um 12:57:03
Re: probleme mit directx8 - minime 15. April 2010 um 13:29:15
Re: probleme mit directx8 - Nico 15. April 2010 um 15:10:09
Re: probleme mit directx8 - minime 15. April 2010 um 16:27:35
Re: probleme mit directx8 - minime 15. April 2010 um 16:42:08
Re: probleme mit directx8 - Nico 15. April 2010 um 17:42:04
Re: probleme mit directx8 - minime 15. April 2010 um 18:26:51
Re: probleme mit directx8 - minime 15. April 2010 um 18:38:12
Re: probleme mit directx8 - Nico 15. April 2010 um 19:23:12
Re: probleme mit directx8 - minime 16. April 2010 um 04:40:14

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  DirectX 8
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum DirectX-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB.Net | .Net-Forum | DirectX | DirectX-Forum | Chat | Ausschreibungen | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015