Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 |
FEHLER: Die Datei Data\Font1.tga konnte nicht geöffnet, gelesen, erstellt oder beschrieben werden! (tbfile.cpp, Zeile 465, Funktion tbReadRawFile) FEHLER: Die Datei Data\Font1.tga konnte nicht geöffnet, gelesen, erstellt oder beschrieben werden! (tbvfile.cpp, Zeile 41, Funktion tbVFile::Init) FEHLER: Fehler beim Erstellen der virtuellen Datei! (tbfont.cpp, Zeile 128, Funktion tbFont::Init) FEHLER: Fehler beim laden der Schriftart Data\Font1! (snake.cpp, Zeile 176, Funktion CSnake::Load) |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 |
// Die Schriftarten laden m_pFont1 = new tbFont; if(m_pFont1->Init("Data\\Font1.tga", "Data\\Font1.tbf")) { // Fehler TB_ERROR("Fehler beim laden der Schriftart Data\\Font1!", TB_ERROR); } |
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
// Laden aus echten Dateien tbResult tbFont::Init(char* pcTGAFile, char* pcTBFFile) { tbVFile* pTGAFile; tbVFile* pTBFFile; // Parameter prüfen if(!pcTGAFile) TB_ERROR_NULL_POINTER("pcTGAFile", TB_ERROR); if(!pcTBFFile) TB_ERROR_NULL_POINTER("pcTBFFile", TB_ERROR); // Virtuelle Dateien erstellen pTGAFile = new tbVFile; if(!pTGAFile) TB_ERROR_OUT_OF_MEMORY(TB_ERROR); pTBFFile = new tbVFile; if(!pTBFFile) TB_ERROR_OUT_OF_MEMORY(TB_ERROR); // Aus Datei laden if(pTGAFile->Init(pcTGAFile)) TB_ERROR("Fehler beim Erstellen der virtuellen Datei!", TB_ERROR); if(pTBFFile->Init(pcTBFFile)) TB_ERROR("Fehler beim Erstellen der virtuellen Datei!", TB_ERROR); // Die andere Methode aufrufen if(Init(pTGAFile, pTBFFile)) { // Fehler! TB_ERROR("Fehler beim Laden der Schriftart!", TB_ERROR); } // Die virtuellen Dateien wieder freigeben TB_SAFE_DELETE(pTGAFile); TB_SAFE_DELETE(pTBFFile); return TB_OK; } // Initialisierung aus virtuellen Dateien tbResult tbFont::Init(tbVFile* pTGAFile, tbVFile* pTBFFile) { HRESULT hResult; // Die Klasseninstanz zurücksetzen. // Damit wird ermöglicht, dass der Init-Aufruf mehrere Male mit // derselben Instanz funktioniert. Exit(); // Parameter prüfen und sicherstellen, dass tbDirect3D initialisiert wurde if(!pTGAFile) TB_ERROR_NULL_POINTER("pTGAFile", TB_ERROR); if(!pTBFFile) TB_ERROR_NULL_POINTER("pTBFFile", TB_ERROR); if(!tbDirect3D::IsInitialized()) TB_ERROR("Es muss zuerst eine tbDirect3D-Klasseninstanz erstellt werden!", TB_ERROR); // Textur laden if(FAILED(hResult = D3DXCreateTextureFromFileInMemoryEx(tbDirect3D::Instance().GetDevice(), (BYTE*)(pTGAFile->GetBuffer()) + pTGAFile->GetCursor(), pTGAFile->GetSize() - pTGAFile->GetCursor(), D3DX_DEFAULT, D3DX_DEFAULT, 1, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_DEFAULT, D3DX_DEFAULT, 0, NULL, NULL, &m_pTexture))) { // Fehler! TB_ERROR_DIRECTX("D3DXCreateTextureFromFileInMemoryEx", hResult, TB_ERROR); } // Informationen laden if(pTBFFile->Read(sizeof(tbFontInfo), &m_FontInfo)) { // Fehler! TB_ERROR("Fehler beim Lesen der Schriftinformationen!", TB_ERROR); } // Effekt aus String erstellen m_pEffect = new tbEffect; if(!m_pEffect) TB_ERROR_OUT_OF_MEMORY(TB_ERROR); if(m_pEffect->Init("TEXTURE Texture;\n" "\n" "TECHNIQUE T1\n" "{\n" " PASS P1\n" " {\n" " Texture[0] = <Texture>;\n" " ZEnable = False;\n" " ZWriteEnable = False;\n" " ColorOp[0] = Modulate;\n" " ColorArg1[0] = Texture;\n" " ColorArg2[0] = Current;\n" " ColorOp[1] = Disable;\n" " AlphaOp[0] = Modulate;\n" " AlphaArg1[0] = Texture;\n" " AlphaArg2[0] = Current;\n" " AlphaOp[1] = Disable;\n" " AlphaBlendEnable = True;\n" " SrcBlend = SrcAlpha;\n" " DestBlend = InvSrcAlpha;\n" " }\n" "}\n", -1)) { // Fehler! TB_ERROR("Fehler beim Erstellen des Effekts!", TB_ERROR); } // Textur setzen m_pEffect->GetEffect()->SetTexture("Texture", m_pTexture); return TB_OK; } |
Werbeanzeige