JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=ea3c246c455c62f4032ffa01ddc01a94Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Direct3D Grundlagen Tutorial
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 01:29    Titel: Antworten mit Zitat

Hi,

ja das mit den Texturen nehme ich mir zu Herzen, no panic Smile

Frage an alle: Wie solls nach dem nächsten Tut weiter gehen? Irgendwelche Wünsche?
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 38
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 01:59    Titel: Antworten mit Zitat

Mein Wunsch wäre eine Klasse zum laden von png oder tga Dateien in eine Textur.

I wanna be
D3DX free!! Very Happy

Eine 32-TGA-Datei mit AlphaChannel - die Header-Struktur sieht so aus. Smile
CPP:
struct TARGAFILEHEADER
{
   BYTE tgaNumCharsInIdField; // unwichtig
   BYTE tgaColorMapType; // 1 = mit Palette
   BYTE tgaImageType; // 2 = RGB-Image
   WORD tgaColorMapOrigin; // unwichtig
   WORD tgaColorMapLength; // unwichtig
   BYTE tgaColorMapEntrySize; // unwichtig
   WORD tgaImageOriginX; // unwichtig
   WORD tgaImageOriginY; // unwichtig
   WORD tgaWidth; // Breite
   WORD tgaHeight; // Höhe
   BYTE tgaBitsPerPixel; // Farbtiefe
   BYTE tgaFlags; // Flags (8 für 32-Bit, nicht fragen, machen)
   /* BYTE tgaImageIdentificationField[???] */ // Existiert nicht
   /* BYTE tgaPalette[???] */ // Existiert nicht
};


Zuletzt bearbeitet von KI am 13.02.2005, 14:18, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 02:03    Titel: Antworten mit Zitat

Ich dachte da eher an etwas was mit GameStrukturierung zu tun hätte als an Grafiken laden Very Happy
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 38
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 02:18    Titel: Antworten mit Zitat

Achso. Mmmmh.
Vielleicht einen Pause Gamestate, bei dem alle Prozesse des Game-Gamestates gestoppt werden. Auch die zeitabhängigen, irgendwie.
Vielleicht noch Übergangsphasen. Z.B. Aplhablending vom einen zum anderen Bildschirm.
Ansonsten fällt mir jetzt nichts ein.
Maus-Management und Button Klasse auf jedenfall sehr praktisch.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 02:21    Titel: Antworten mit Zitat

Hi,

also pause ist echt kein kunststück Smile einfach den delta des gamestates direkt am anfang auf 0 setzen ^^

Fading zwischen den Gamestates? Joah wäre was Smile Kommt auch.

Achja zur Buttonklasse: Damit kann man keine richtige GUI machen, das ist eher nur so ne kleine Hilfsklasse um einen Knopf anzuzeigen und zu Managen Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 38
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 02:35    Titel: Antworten mit Zitat

Patrick hat Folgendes geschrieben:
also pause ist echt kein kunststück Smile einfach den delta des gamestates direkt am anfang auf 0 setzen ^^

Ich hab mir das etwas schwieriger vorgestellt.
Wenn jetzt eine Aktion im Hauptspiel abläuft, die zeitabhängig ist, könnte das zu einem Problem werden, oder.
Angenommen ich ermittle die Zeit (StartTime = 500 000 ms) und möchte in 10000 ms eine Tür öffnen lassen. Also prüfe ich bei jedem Durchlauf, ob bereits 10 Sekunden vergangen sind...
Im Pause-Modus kann man die Zeit ja nicht einfach anhalten.
Wenn ich jetzt 10 sekunden in den Pause-Modus wechsele, und wieder zurückkomme geht die Tür direkt auf.
Im Pause-Modus müsste man sich also irgendwie die Differenz zwischen StartTime und aktueller Zeit (z.B Differenz = 7 s) merken.
Wenn der Pause-Modus vorbei ist, kann man StartTime dann entsprechend anpassen, sodass die ursprüngliche Differenz wiederhergestellt ist.(7s)

Naja. soviel dazu. Wink
Es ist schon spät geworden.

Soll ich den Thread in den Projekte-Ordner verschieben?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 02:52    Titel: Antworten mit Zitat

Nee pass auf die Zeit wird im manager errechnet und an den Gamestate weitergegeben, dort kann man nun mit ner if abfrage folgendes machen:

CPP:
if (pause)
    delta = 0;


und dann gehts weiter im Code des GameStates Smile Da ist nichts mit Differenzwert und so Smile Wenn Delta 0 ist, ist kein speed da und nichts bewegt sich und wenn danach delta wieder auf 100 ist oder sonst wo gehts wie gehabt weiter ohne sprünge Smile

Von mir aus kannste verschieben Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 38
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 02:57    Titel: Antworten mit Zitat

Aha. Das ist ja richtig Tricky. Cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 15:07    Titel: Antworten mit Zitat

Okay Leute, hier ein kleiner "NewsFlash":

Fontklasse sowie Mausmanager funktionieren perfekt, ebenso die Buttonklasse (die bald fertig sein wird Smile), Es gibt momentan nur paar Probleme mit dem Clientrect des Fensters aber ich denk das ich das in den Griff bekomme Smile

Dann muss ich noch das Changelog schreiben, also im großen und ganzen denke ich, dass es vor 22:00 heute Abend online kommt Smile

- Patrick
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 35
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 15:14    Titel: Antworten mit Zitat

Noch ne Alternative zu LPD3DXPMESH wäre praktisch. Im moment steh ich eh aufm Schlauch... null motivation, das is meine generation...
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 13.02.2005, 18:55    Titel: Antworten mit Zitat

Teil 7 ist da!

http://83.246.114.104/patrick/index.php

Diesmal gehts um Buttons, Fonts (ohne zusätzliche Bitmaps oder D3DX) und die Maus.

Im Code selbst hat sich wieder einiges getan Smile Jetzt wird auch der Point-Filter benutzt (damit KI nichts mehr zu jammern hat ;D) und auch die window_X Funktionen sind nun in einer Extra-Datei in einem Namespace!

Viel Spass damit Smile

p.s.: Zu beachten: Die Buttons haben einen Hover-Effekt und einen Press-Effekt, sie werden wie bei Windows erst mit einer Aktion beginnen wenn die Maustaste gelöst wurde Smile

Handling ist in der mainmenu::idle() Smile

- Patrick, der nun überlegt was als nächstes kommen sollte... Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
KI
JLI Master


Alter: 38
Anmeldedatum: 04.07.2003
Beiträge: 965
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 14.02.2005, 18:34    Titel: Antworten mit Zitat

Hi Patrick.

Schöne stylische Buttons mit Rahmen (D3DPT_LINESTRIP^^).
Mir gefällt auch die Font-Engine! just make it clap Wird ja alles dynamisch zur Laufzeit erstellt, unter Berücksichtigung von D3DCAPS9.
Das war bestimmt eine Meneg Arbeit.
Du zeichnest sogar den Schatten der Font. Smile

Wofür wird eigentlich der letzte Parameter der font::create funktion unsigned long flags benutzt? Sieht so aus, als sei er unbenutzt.

Aber was ich leider immernoch bemängeln muss ist das Texturmapping. Smile
Es reicht nicht den Pointfilter zu aktivieren.
Man muss die Texturkoordinaten anpassen!
Sie dürfen nicht von 0 bis 1 laufen, sondern von (0,5 / Bildschirmauflösung) bis 1. Anders gesagt einen halben Pixel später anfangen. Bei einer Auflösung von 800 * 600 wäre das für u 0,000625f und für v 0.000833333f.
Das hat etwas damit zu tun, wie der Pointfilter arbeitet.
Sonst sieht es so aus. Zumindest bei mir:


So sieht es aus, wenn man die Texturkoordinaten entsprechend der Bildschirmauflösung anpasst. (Ich hab mal ein einheitliches Muster genommen. Da sieht man den Unterschied deutlicher)

(Wenn man z.B. den LINEAR Filter benutzt, sollte man die Texturkoordinaten von 0 bis 1 laufen lassen.)

CPP:
   const float fTexX = 0.5f / 800.0f;//static_cast<float>(::window_width);
   const float fTexY = 0.5f / 600.0f;//static_cast<float>(::window_height);

        // Rechteck
    vertex rect[] =
    {
            //        x,      y,    z,      color, u,         v,
        vertex (   0.0f,   0.0f, 0.5f, 0xFFFFFFFF, 0 + fTexX, 0 + fTexY),
        vertex ( 800.0f,   0.0f, 0.5f, 0xFFFFFFFF, 1        , 0 + fTexY),
        vertex ( 800.0f, 128.0f, 0.5f, 0xFFFFFFFF, 1        , 1),
        vertex (   0.0f, 128.0f, 0.5f, 0xFFFFFFFF, 0 + fTexX, 1),
    };


MfG KI
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 14.02.2005, 19:18    Titel: Antworten mit Zitat

KI hat Folgendes geschrieben:
Schöne stylische Buttons mit Rahmen (D3DPT_LINESTRIP^^).
Mir gefällt auch die Font-Engine! just make it clap Wird ja alles dynamisch zur Laufzeit erstellt, unter Berücksichtigung von D3DCAPS9.
Das war bestimmt eine Meneg Arbeit.
Du zeichnest sogar den Schatten der Font. Smile


Tjaja Buttons müssen doch Style haben Wink

Türlich war das arbeit, aber wenn mans hat, hat mans Smile

KI hat Folgendes geschrieben:
Wofür wird eigentlich der letzte Parameter der font::create funktion unsigned long flags benutzt? Sieht so aus, als sei er unbenutzt.


Guck mal ganz oben in der font.h Wink da ist ein enum Smile wenn du jetzt bei create z.b. italic (je nach schriftart! Bei Fixedsys bissel ugly) oder bold angibst gibts nen geilen style Very Happy


KI hat Folgendes geschrieben:
Aber was ich leider immernoch bemängeln muss ist das Texturmapping. Smile


Würd der Lineare Filter nicht reichen oder muss die berechnung da hin? Smile

- Patrick, der nun nachdenkt was als nächstes kommen soll und hofft das KI nicht der Einzigste mit Feedback war Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 14.02.2005, 20:31    Titel: Antworten mit Zitat

*g*, also ich fände es net mal Bonesanimationen zu implementieren.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 14.02.2005, 22:39    Titel: Antworten mit Zitat

Hi,

als nächstes kommt 3D Mathematik, also Kameramatrix, Rotationen, Transponierungen, Skalierungen usw. Es bringt nichts vorher etwas über Bones zu erzählen wenn noch nichtmal eine Perspektivische Projektion da ist und man nicht die Grundlagen des 3D Matrizensystems verstanden hat Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6  Weiter
Seite 5 von 6

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum