|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Annakin Mini JLI'ler
Anmeldedatum: 14.05.2005 Beiträge: 40
Medaillen: Keine
|
Verfasst am: 21.05.2005, 19:04 Titel: Scrolling2 ? |
|
|
Also ich muß hier einfach mal meinem Ärger Luft machen.
Bislang konnte ich noch alles nachvollziehen was in dem Buch passiert.
Ich finde mit diesem Beispiel hast du (Christian) es dir zu leicht gemacht.
Ich kann irgendwie nicht nachvollziehen wofür m_ScrollRect1, m_ScrollRect2, r1, r2 da sind
Besonders diese Codeausschnitte verstehe ich nicht:
Code: |
// testen, ob das Rechteck breiter als ein Pixel wird
if(m_ScrollRect1.left != m_ScrollRect1.right)
{
// neues Rechteck konstruieren
r1.left = 0;
r1.right = 1024 - m_ScrollRect1.left;
r1.top = 0;
r1.bottom = 768;
m_lpD3DDevice->StretchRect(m_lpBuffer,&m_ScrollRect1,m_lpBackBuffer,&r1,D3DTEXF_NONE);
}
// testen, ob das Rechteck breiter als ein Pixel wird
if(m_ScrollRect2.left != m_ScrollRect2.right)
{
// neues Rechteck konstruieren
r2.left = 1024 - m_ScrollRect2.right;
r2.right = 1024;
r2.top = 0;
r2.bottom = 768;
m_lpD3DDevice->StretchRect(m_lpBuffer,&m_ScrollRect2,m_lpBackBuffer,&r2,D3DTEXF_NONE);
}
|
Im Buch einfach zu schreiben schaut euch den Code an, dan werdet ihr den schon verstehen finde ein bischen wenig.
Da hättest du etwas mehr erklären können.
Wenn ich das mit dem Debugger nachvollziehen will, dann erscheint nur ein weißes Fenster und ich kommen nicht mehr in den Code rein
Ist dieser Code für das restliche Buch noch wichtig, wird der da noch benötigt, wenn nicht hacke ich den erstmal mal ab. |
|
Nach oben |
|
|
HomeLess_PunkDrummer JLI Master Trainee
Alter: 36 Anmeldedatum: 28.11.2004 Beiträge: 583 Wohnort: Alter Joghurtbecher an der A4 Medaillen: Keine
|
Verfasst am: 22.05.2005, 09:18 Titel: |
|
|
Klar kommst du in den Code rein, aber nicht wenn du D3D im Vollbildmodus initialisierst...
Schau mal, die Textur is 1024*768, soweit ich weiß. Darauf sind zwei Rechtecke. Jetzt stell dir vor, du hast die Textur wie einen Filmstreifen unendlich mal nebeneinander geklebt und ziehst sie hinter einem Fenster lang, das auch 1024*768 ist. Du wirst immer einen eben so großen Ausschnitt sehen, und immer eine "Klebestelle". Diese stellt die Grenzen von zwei Rechtecken dar... ScrollRect1 und 2.
Was du beim Scrolling tust, ist dass du nur die Grenze denkst, das ist die Vriable für das gescrollte. An dieser Grenze baust du von links ein Rechteck und von rechts eins ran - so ist die gesamte Oberfläche bedeckt.
Dann blittest du sie in den Backbuffer, aber das linke nach rechts, und andersherum. So entsteht der Eindruck des Scrollings.
Is aber wirklich etwas schwer zu verstehn.
Gruß _________________ "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 |
|
|
Annakin Mini JLI'ler
Anmeldedatum: 14.05.2005 Beiträge: 40
Medaillen: Keine
|
Verfasst am: 22.05.2005, 12:05 Titel: |
|
|
Mittlerweile habe ich mal eine kleine "Zeichenstunde" hingelegt.
Auf dem Papier kann ich es nachvollziehen, bei der Betrachtung des Codes nicht.
Aber ist die Erklärung im Buch nicht etwas falsch? Da steht auf Seite 314 unten "Anschließend wird die erste Spalte des zweiten Hintergrundbildes ... in die erste Spalte des Puffers kopiert, weil diese im nächsten Schritt nicht mehr benötigt wird..."
Die kopierte Spalte wird doch damit sichtbar gemacht, inwiefern wirde die nicht mehr benötigt? |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 22.05.2005, 12:11 Titel: |
|
|
hmm, also ich hab grad das Buch mal rausgekramt...
...und kann diesen Satz net finden. Wenn das da wirklich so stehen würde, wärs net ganz korrekt
Gruß DirectXer |
|
Nach oben |
|
|
|
|
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
|