 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
GreveN JLI Master

Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 25.05.2006, 12:44 Titel: |
|
|
alexm hat Folgendes geschrieben: | Zitat: |
c:\programme\jli beispiele\kapitel_22\spritebounce\direct3d.cpp(93) : error C2660: 'ID3DXFont::DrawTextA' : function does not take 5 arguments
c:\programme\jli beispiele\kapitel_22\spritebounce\direct3d.cpp(96) : error C2660: 'ID3DXFont::DrawTextA' : function does not take 5 arguments
c:\programme\jli beispiele\kapitel_22\spritebounce\direct3d.cpp(130) : error C2664: 'D3DXCreateFontIndirectA' : cannot convert parameter 2 from 'LOGFONT *' to 'const D3DXFONT_DESCA *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
SPRITE.CPP
c:\programme\jli beispiele\kapitel_22\spritebounce\sprite.cpp(177) : warning C4018: '>=' : signed/unsigned mismatch
c:\programme\jli beispiele\kapitel_22\spritebounce\sprite.cpp(191) : error C2660: 'ID3DXSprite::Draw' : function does not take 7 arguments
|
kann mir da bitte jemand weiterhelfen?  |
Klingt so, als würdest du ein anderes DX-SDK verwenden, als das, welches im Buch verwendet wird. D3DX baut nicht auf COM auf, deshalb ist Abwärtskompatibilität nicht zwingend und Parameterlisten ändern sich teilweise von Release zu Release. |
|
Nach oben |
|
 |
alexm Mini JLI'ler

Anmeldedatum: 20.11.2005 Beiträge: 15 Wohnort: Wien Medaillen: Keine
|
Verfasst am: 25.05.2006, 13:35 Titel: |
|
|
ja, ich benutze das aktuelle - April2006 |
|
Nach oben |
|
 |
GreveN JLI Master

Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
|
Nach oben |
|
 |
alexm Mini JLI'ler

Anmeldedatum: 20.11.2005 Beiträge: 15 Wohnort: Wien Medaillen: Keine
|
Verfasst am: 26.05.2006, 09:35 Titel: |
|
|
hab jetzt mal ein paar der Fehler wegbekommen - allerdings weiss ich bei diesem hier nicht weiter:
Code: |
//// File: Direct3D.cpp ////
// Erzeugen der D3D-Schrift
void CDirect3D::CreateFont(void)
{
// Struktur für die Beschreibung der Schriftart
// anlegen und Elemente mit 0 initialisieren
LOGFONT LogFont = { 0 };
// das Element lfFaceName muss den Namen der
// gewünschten Schriftart enthalten
strcpy(LogFont.lfFaceName, "Arial");
// nach erfolgreichem Aufruf zeigt lpD3DFont
// auf ein Objekt vom Typ D3DXFont
D3DXCreateFontIndirect(m_lpD3DDevice,
&LogFont,
&m_lpD3DFont);
}
|
hier kommt folgende Fehlermeldung:
c:\programme\jli beispiele\kapitel_22\spritebounce\direct3d.cpp(133) : error C2664: 'D3DXCreateFontIndirectA' : cannot convert parameter 2 from 'LOGFONT *' to 'const D3DXFONT_DESCA *'
in der DXSDK-Help steht:
Code: |
HRESULT D3DXCreateFontIndirect(
LPDIRECT3DDEVICE9 pDevice,
CONST D3DXFONT_DESC * pDesc,
LPD3DXFONT * ppFont
);
|
Zitat: |
Parameters
pDevice
[in] Pointer to an IDirect3DDevice9 interface, the device to be associated with the font object.
pDesc
[in] Pointer to a D3DXFONT_DESC structure, describing the attributes of the font object to create. If the compiler settings require Unicode, the data type D3DXFONT_DESC resolves to D3DXFONT_DESCW; otherwise, the data type resolves to D3DXFONT_DESCA. See Remarks.
ppFont
[out] Returns a pointer to an ID3DXFont interface, representing the created font object.
|
... daraus werd ich aber nicht wirklich schlau. was für eine font-attribut-struktur? ist nicht die vorhandene LOGFONT eh so eine struktur!?  |
|
Nach oben |
|
 |
alexm Mini JLI'ler

Anmeldedatum: 20.11.2005 Beiträge: 15 Wohnort: Wien Medaillen: Keine
|
Verfasst am: 26.05.2006, 10:01 Titel: |
|
|
hab jetzt den code auskommentiert und folgendes draus gemacht:
Code: |
// Erzeugen der D3D-Schrift
void CDirect3D::CreateFont(void)
{
D3DXFONT_DESC font_desc; // Font structure
ZeroMemory(&font_desc, sizeof(D3DXFONT_DESC));
font_desc.Height = 15;
strcpy(font_desc.FaceName,"Arial");
D3DXCreateFontIndirect( m_lpD3DDevice, &font_desc, &m_lpD3DFont );
}
|
jetzt kompiliert das beispiel und startet auch, allerdings bleibt nach der message-box der bildschirm schwarz - was sollte da zu sehen sein !?? |
|
Nach oben |
|
 |
GreveN JLI Master

Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 26.05.2006, 10:08 Titel: |
|
|
Also der 2. Parameter der Funktion erwartet 'D3DXFONT_DESC', musst du auch verwenden, ist nämlich nicht dasselbe wie 'LOGFONT'... ;)
Zitat: | jetzt kompiliert das beispiel und startet auch, allerdings bleibt nach der message-box der bildschirm schwarz - was sollte da zu sehen sein !?? |
Ööhm, keine Ahnung, jedenfalls initialisiert diese Funktion nur ein Font-Objekt und schreibt noch nichts, von daher wäre es zu erwarten, dass nichts zusehen ist... ;) |
|
Nach oben |
|
 |
alexm Mini JLI'ler

Anmeldedatum: 20.11.2005 Beiträge: 15 Wohnort: Wien Medaillen: Keine
|
Verfasst am: 26.05.2006, 10:13 Titel: |
|
|
*loool*
na dann ...
ich dachte da ist irgendeine sprite-animation oder so zu sehen ...
hmmm ... um das einfacher zu gestalten:
ich würde gerne ein sprite darstellen und bewegen. was kann ich mir dazu am besten ansehen?
nachtrag:
aber schau mal im beispiel gibt es diese funktion:
Code: |
// Diese Methode zeichnet eine Ellipse
void CDirect3D::DrawEllipse(int x1,int y1, int x2, int y2, LPDIRECT3DSURFACE9 lpSurface)
...etc...
|
demnach müsste ja was gezeichnet werden  |
|
Nach oben |
|
 |
GreveN JLI Master

Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 26.05.2006, 10:19 Titel: |
|
|
Nunja, woran's da hängt lässt sich jetzt schwer sagen, zumindest ohne genau zu wissen, was die Funktion macht und wie das Surface initialisiert worde... ;) |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 26.05.2006, 13:53 Titel: |
|
|
alexm hat Folgendes geschrieben: | nachtrag:
aber schau mal im beispiel gibt es diese funktion:
Code: |
// Diese Methode zeichnet eine Ellipse
void CDirect3D::DrawEllipse(int x1,int y1, int x2, int y2, LPDIRECT3DSURFACE9 lpSurface)
...etc...
|
demnach müsste ja was gezeichnet werden  |
Ohne jetzt ne große Ahnung davon zu haben, von welchem Beispiel genau ihr sprecht ( ) - wenn diese Funktion in dem Beispiel existiert, heißt das noch lange nicht, dass sie auch aufgerufen wird
Schau am besten mal nach, ob dies wirklich der Fall ist.
Bei dem von dir zitierten Codeausschnitt handelt es sich nur um die Klassendefinition.
Ein Aufruf würde so (oder ähnlich) aussehen:
CPP: | //Speicherreservierung für die Klassen bzw. Aufruf deren Konstruktoren
CDirect3D d3d_class;
CDirect3D* d3d_class_pointer;
//[...]
//Aufruf der DrawEllipse-Methode
//1. über normale Klasse
//2. über Zeiger auf Klasse
d3d_class.DrawEllipse(...);
d3d_class_pointer->DrawEllipse(...);
|
PS: Für C++ Codes haben wir hier die netten CPP-Tags, die den Code weitaus lesbarer machen
Du brauchst nur statt [code ]dein code[/code ] das hier schreiben: [cpp ]dein code[/cpp ]
(natürlich ohne Leerzeichen vor der schließenden Klammer. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
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
|