| 
			
				|  | JLI Spieleprogrammierung 
 
 |  
 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |  
		| Autor | Nachricht |  
		| Leviathan Mini JLI'ler
 
 
 Alter: 50
 Anmeldedatum: 12.01.2005
 Beiträge: 31
 Wohnort: S9
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.01.2005, 07:27    Titel: Kapitel 21.2 "Sprites bewegen" und DirectX9 Oktobe |   |  
				| 
 |  
				| Hallo zusammen, 
 kann mir bitte jemand helfen den Quellcode vom Kapitel 21.2 zu modifizieren, so dass das Beispiel auch mit der Version DirectX Oktober funktioniert?
 
 Da schein wohl die Methode "draw" der Sprite-Klasse 5 statt 7 Parameter zu haben.
 Außerdem verursacht die Textausgabe einen Laufzeitfehler.
 Hat es einer von euch zum laufen bekommen?
 
 Vielleicht könnte der Autor des Buches ein paar Worte dazu verlieren.
 
 Danke sehr!
 
 mfg
 |  |  
		| Nach oben |  |  
		|  |  
		| HomeLess_PunkDrummer JLI Master Trainee
 
  
 Alter: 37
 Anmeldedatum: 28.11.2004
 Beiträge: 583
 Wohnort: Alter Joghurtbecher an der A4
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.01.2005, 08:15    Titel: |   |  
				| 
 |  
				| Du hast unter C:/DXSDK/Doc die Hilfedatei. Gib da die Funktionsnamen ein, und du kriegst die Beschreibung aller Parameter, und was du beachten musst. 
 Warum hast du um die Zeit keine Schule?(8:27am)
 
 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 |  |  
		|  |  
		| Leviathan Mini JLI'ler
 
 
 Alter: 50
 Anmeldedatum: 12.01.2005
 Beiträge: 31
 Wohnort: S9
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.01.2005, 08:23    Titel: |   |  
				| 
 |  
				| Ich hab auch versucht die Parameter anzupassen, bloß ich bekomme jedes Mal nur einen schwarzen Bildschirm zu sehen, ohne den Sprite... 
 Da sind nun 3dVektoren statt 2dVektoren zu verwenden. Ist ja wunderbar, ich habe sie augetauscht und die z-Koordinate auf 0.0f gesetzt.
 
 Es ist aber kein Sprite zu sehen.
 
 Außerdem: wenn ich die Textausgabe nicht auskommentiere, dann gibts noch zusätzlich zur Laufzeit einen Fehler. Da hilft nun keine Online Hilfe mehr...
 |  |  
		| Nach oben |  |  
		|  |  
		| Fallen JLI MVP
 
  
  
 Alter: 41
 Anmeldedatum: 08.03.2003
 Beiträge: 2860
 Wohnort: Münster
 Medaillen: 1 (mehr...)
 
 
 | 
			
				|  Verfasst am: 12.01.2005, 08:25    Titel: |   |  
				| 
 |  
				|  	  | Code: |  	  | // Erzeugen der D3D-Schrift void CDirect3D::CreateFont(void)
 {
 // Struktur für die Beschreibung der Schriftart
 // anlegen und Elemente mit 0 initialisieren
 D3DXFONT_DESC FontDesc = { 0 };
 
 // // das Element FaceName muss den Namen der
 // gewünschten Schriftart enthalten
 strcpy(FontDesc.FaceName, "Arial");
 
 // nach erfolgreichem Aufruf zeigt lpD3DFont
 // auf ein Objekt vom Typ D3DXFont
 D3DXCreateFontIndirect(m_lpD3DDevice,
 &FontDesc,
 &m_lpD3DFont);
 }
 | 
 
 
  	  | Code: |  	  | // Text an Position x,y ausgeben void CDirect3D::DrawText(LPCSTR Text, int x, int y, D3DCOLOR TextColor,bool bCenter)
 {
 RECT r = { x, y, 0, 0 };
 
 // Größe des Rechtecks berechnen
 m_lpD3DFont->DrawText(NULL, Text, -1, &r, DT_CALCRECT, TextColor);
 
 if(bCenter)
 {
 int width=(r.right-r.left)/2;
 int height=(r.bottom-r.top)/2;
 r.left-=width;
 r.right-=width;
 r.top-=height;
 r.bottom-=height;
 }
 // Text ausgeben
 m_lpD3DFont->DrawText(NULL, Text, -1, &r, DT_CENTER, TextColor);
 }
 | 
 
 
 Hier musste ne menge schaun was du brauchst, weil issn bissl viel modifiziert
 
  	  | Code: |  	  | // Sprite zeichnen void CSprite::Draw()
 {
 //Kein brauchbares Animationsset gewählt
 if(m_CurrentAnimSet==-1 || !m_Visible)
 return;
 if(bProcess)
 Process();
 // testen, ob die nächste Animation angezeigt werden soll
 if(++m_AnimationDelay > m_AnimationSpeed && m_PlayAnimation)
 {
 m_AnimationDelay = 0;
 
 // wenn ja, nächste Grafik (Textur) verwenden
 if(++m_CurrentImage >= m_AnimSet[m_CurrentAnimSet].m_AnimationVec.size())
 {
 if(!m_LoopAnimation)
 m_PlayAnimation = false;
 m_CurrentImage = 0;
 }
 }
 
 m_vCenter = D3DXVECTOR3((float)m_AnimSet[m_CurrentAnimSet].m_Width/2, (float)m_AnimSet[m_CurrentAnimSet].m_Height/2,0.0f);
 
 // Transformationsmatrizen angeben - neu im Summer Update 2003
 D3DXMATRIXA16 matCombo, matRot, matScale, matTrans;
 
 D3DXMatrixRotationZ(&matRot,m_Rotation);
 D3DXMatrixScaling(&matScale, m_vScale.x, m_vScale.y, m_vScale.z);
 D3DXMatrixTranslation(&matTrans, m_vPosition.x+stepx, m_vPosition.y+stepy, m_vPosition.z);
 
 D3DXMatrixMultiply(&matCombo, &matRot, &matScale);
 D3DXMatrixMultiply(&matCombo, &matCombo, &matTrans);
 
 m_lpSprite->Begin(D3DXSPRITE_DONOTSAVESTATE | D3DXSPRITE_ALPHABLEND);
 
 m_lpSprite->SetTransform(&matCombo);
 
 // Sprite in der passenden Animationsstufe zeichnen
 char alpha=(char)m_Alpha;
 HRESULT hr=m_lpSprite->Draw(m_AnimSet[m_CurrentAnimSet].m_AnimationVec[m_CurrentImage],
 NULL,
 &m_vCenter,
 NULL,
 D3DCOLOR_RGBA(255,255,255,alpha));
 
 m_lpSprite->End();
 
 }
 | 
 _________________
 "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
 |  |  
		| Nach oben |  |  
		|  |  
		| HomeLess_PunkDrummer JLI Master Trainee
 
  
 Alter: 37
 Anmeldedatum: 28.11.2004
 Beiträge: 583
 Wohnort: Alter Joghurtbecher an der A4
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.01.2005, 08:27    Titel: |   |  
				| 
 |  
				| Was für Textausgabe? von der Direct3D-Klasse? Dann könnte doch der Fehler ganz woanders sein. Was für ein Laufzeitfehler is das? 
 EDIT: fallen war ma wieder schneller><
  _________________
 "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 |  |  
		|  |  
		| Leviathan Mini JLI'ler
 
 
 Alter: 50
 Anmeldedatum: 12.01.2005
 Beiträge: 31
 Wohnort: S9
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.01.2005, 09:07    Titel: |   |  
				| 
 |  
				|  	  | HomeLess_PunkDrummer hat Folgendes geschrieben: |  	  | Was für Textausgabe? von der Direct3D-Klasse? Dann könnte doch der Fehler ganz woanders sein. Was für ein Laufzeitfehler is das? 
 | 
 
 Die Textausgabe steht in dem Originalbeispiel direkt hinter dem Draw des Sprites.
 Den Quellcode habe ich leider im Moment nicht zur Hand.
 |  |  
		| Nach oben |  |  
		|  |  
		| Leviathan Mini JLI'ler
 
 
 Alter: 50
 Anmeldedatum: 12.01.2005
 Beiträge: 31
 Wohnort: S9
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.01.2005, 11:52    Titel: |   |  
				| 
 |  
				| @ FallenAngel84 Danke! Wahrscheinlich liegt es an dem "Begin" und "End" beim Sprite selbst.
 Ich werde es heute abend ausprobieren.
 |  |  
		| Nach oben |  |  
		|  |  
		| Leviathan Mini JLI'ler
 
 
 Alter: 50
 Anmeldedatum: 12.01.2005
 Beiträge: 31
 Wohnort: S9
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 12.01.2005, 21:26    Titel: |   |  
				| 
 |  
				| Hallo nochmals, 
 es funktioniert jetzt wunderbar mit dem Sprite.
 
 Wenn mir jetzt noch einer sagen könnte warum die Anweisung:
 
  	  | Code: |  	  | Direct3D.DrawText("Bewegung mit Hilfe der Nachrichtenfunktionen - Bewegung ist nicht flüssig",100,100,0xFFFFFFFF);
 
 | 
 
 einen Laufzeitfehler verursacht...
 |  |  
		| Nach oben |  |  
		|  |  
		| Fallen JLI MVP
 
  
  
 Alter: 41
 Anmeldedatum: 08.03.2003
 Beiträge: 2860
 Wohnort: Münster
 Medaillen: 1 (mehr...)
 
 
 | 
			
				|  Verfasst am: 12.01.2005, 21:53    Titel: |   |  
				| 
 |  
				| Kannst ja mal nen Haltepunkt auf die Funktion setzen dann Debuggen und mit F10/F11 schaun wo genau er sich verabschiedet. Ich nehme mal an das es etwas mit dem Text bzw. der Länge des Textes zu tun hat. 
 Ich hab das Problem aber nicht das ich auf std::string umgestiegen bin
  _________________
 "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
 |  |  
		| Nach oben |  |  
		|  |  
		| Leviathan Mini JLI'ler
 
 
 Alter: 50
 Anmeldedatum: 12.01.2005
 Beiträge: 31
 Wohnort: S9
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 13.01.2005, 11:42    Titel: |   |  
				| 
 |  
				| @ FallenAngel84 Hast Du auch die DirectX Version vom Oktober installiert?
 
 Bei mir geht nämlich der Aufruf der drawText Methode in allen Beispielen schief...
 |  |  
		| Nach oben |  |  
		|  |  
		| Fallen JLI MVP
 
  
  
 Alter: 41
 Anmeldedatum: 08.03.2003
 Beiträge: 2860
 Wohnort: Münster
 Medaillen: 1 (mehr...)
 
 
 | 
			
				|  Verfasst am: 13.01.2005, 14:21    Titel: |   |  
				| 
 |  
				| Hab nur die SummerSDK 
 welche Visual Studoi Version hast du ? Hab geört das bei Version6 das October SDK nicht geht.
 _________________
 "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
 |  |  
		| Nach oben |  |  
		|  |  
		| Leviathan Mini JLI'ler
 
 
 Alter: 50
 Anmeldedatum: 12.01.2005
 Beiträge: 31
 Wohnort: S9
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 13.01.2005, 14:36    Titel: |   |  
				| 
 |  
				| Hi! 
 Es funktioniert auch mit VS C++, bloß Du mußt dir außer dem SDK auch noch "Extras" von der Microsoft Seite runterladen.
 Dort ist ne lib (dxd9 glaube ich, ist aber genau beim Download von DirectX Oktober oder Dezember auf der Seite beschrieben), die Du per Hand in Dein Studio verzeichnis reinkopierst.
 Die ist extra für VS kompiliert.
 |  |  
		| Nach oben |  |  
		|  |  
		| KI JLI Master
 
  
 Alter: 40
 Anmeldedatum: 04.07.2003
 Beiträge: 965
 Wohnort: Aachen
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 13.01.2005, 14:48    Titel: |   |  
				| 
 |  
				|  	  | Leviathan hat Folgendes geschrieben: |  	  | Hallo nochmals, 
 es funktioniert jetzt wunderbar mit dem Sprite.
 
 Wenn mir jetzt noch einer sagen könnte warum die Anweisung:
 
  	  | Code: |  	  | Direct3D.DrawText("Bewegung mit Hilfe der Nachrichtenfunktionen - Bewegung ist nicht flüssig",100,100,0xFFFFFFFF);
 
 | 
 
 einen Laufzeitfehler verursacht...
 | 
 Um welches Objekt handelt e sich bei Direct3D?
 Ein Direct3D Device kann es nicht sein, weil es dort keine Funktion namens DrawText gibt.
 
 Kommt der Laufzeitfehler während des Ausführens? Oder kannst du das Programm nicht vollständig kompilieren?
 
 Hast du schonmal hier [Update Kapitel 19 - DrawText] geguckt
 |  |  
		| Nach oben |  |  
		|  |  
		| Patrick Dark JLI Master
 
  
 
 Anmeldedatum: 25.10.2004
 Beiträge: 1895
 Wohnort: Düren
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 13.01.2005, 15:01    Titel: |   |  
				| 
 |  
				|  	  | KI hat Folgendes geschrieben: |  	  | Ein Direct3D Device kann es nicht sein, weil es dort keine Funktion namens DrawText gibt. | 
 
 Mich hätte ja eher der Punktoperator stutzig gemacht
  _________________
 '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 |  |  
		|  |  
		| HomeLess_PunkDrummer JLI Master Trainee
 
  
 Alter: 37
 Anmeldedatum: 28.11.2004
 Beiträge: 583
 Wohnort: Alter Joghurtbecher an der A4
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 13.01.2005, 15:06    Titel: |   |  
				| 
 |  
				| isn objekt von der Direct3D Klasse ausm Buch, benutz ich selbst noch. *pranz* jaaa verdammt, ich weiß das wisst ihr selbst...
    _________________
 "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 |  |  
		|  |  
		|  |  
  
	| 
 
 | 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
 |