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
Anonymous
unregistriert
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 |
float fRed = sinf(g_fTime); fRed *= 0,00392156; // 1 / 255 BYTE Red = static_cast<BYTE>(fRed); |
Zitat
c:\dokumente und einstellungen\philip\eigene dateien\stationäre programmierdateien\tribase\include\dshowbaseclasses\wxutil.h(195): warning C4312: 'Typumwandlung': Konvertierung von 'LONG' in größeren Typ 'PVOID'
c:\dokumente und einstellungen\philip\eigene dateien\stationäre programmierdateien\tribase\include\tbGUI.h(28: warning C4267: '=': Konvertierung von 'size_t' nach 'int', Datenverlust möglich
c:\Dokumente und Einstellungen\Philip\Eigene Dateien\Visual Studio Projects\D3D-Dreiecke\Dreieck.cpp(51): error C2041: Ungültige Ziffer '9' für Basis '8'
c:\Dokumente und Einstellungen\Philip\Eigene Dateien\Visual Studio Projects\D3D-Dreiecke\Dreieck.cpp(55): error C2041: Ungültige Ziffer '9' für Basis '8'
c:\Dokumente und Einstellungen\Philip\Eigene Dateien\Visual Studio Projects\D3D-Dreiecke\Dreieck.cpp(59): error C2041: Ungültige Ziffer '9' für Basis '8'
c:\Dokumente und Einstellungen\Philip\Eigene Dateien\Visual Studio Projects\D3D-Dreiecke\Dreieck.cpp(6: error C2296: '&': Ungültig, da der linke Operand vom Typ 'float' ist
c:\Dokumente und Einstellungen\Philip\Eigene Dateien\Visual Studio Projects\D3D-Dreiecke\Dreieck.cpp(6: error C2296: '&': Ungültig, da der linke Operand vom Typ 'float' ist
c:\Dokumente und Einstellungen\Philip\Eigene Dateien\Visual Studio Projects\D3D-Dreiecke\Dreieck.cpp(6: error C2296: '&': Ungültig, da der linke Operand vom Typ 'float' ist
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 110 111 112 113 114 115 |
// Kapitel 2 // Beispielprogramm 03 // =================== // Hier wird das erste einfache Dreieck gezeichnet. #include <Windows.h> #include <TriBase.h> #include "InitWindow.h" #include "Direct3DEnum.h" #include "InitDirect3D.h" #include "Resource.h" // ****************************************************************** // Struktur für einen Vertex: Position und Farbe struct SVertex { tbVector3 vPosition; // Position des Vertex DWORD dwColor; // Farbe des Vertex static const DWORD dwFVF; // Vertexformat (statisch) }; const DWORD SVertex::dwFVF = D3DFVF_XYZ | D3DFVF_DIFFUSE; // ****************************************************************** // Globale Variablen SDirect3DParameters g_Direct3DParameters; // Direct3D-Parameter float g_fTime = 0.0f; // Zeitzähler SVertex g_aTriangleVertex[3]; // Die drei Vertizes des Dreiecks // ****************************************************************** // Render-Funktion tbResult Render(float fNumSecsPassed) { HRESULT hResult; tbMatrix mRotation; // Rotationsmatrix tbMatrix mTranslation; // Translationsmatrix tbMatrix mWorld; // Vereinende Weltmatrix // Rotations- und Translationsmatrix des Dreiecks erzeugen mRotation = tbMatrixRotationY(TB_DEG_TO_RAD(g_fTime * 90.0f)); mTranslation = tbMatrixTranslation(tbVector3(0.0f, -0.5f, 2.0f)); // Beide Matrizen kombinieren und als Weltmatrix einsetzen mWorld = mRotation * mTranslation; g_pD3DDevice->SetTransform(D3DTS_WORLD, (D3DMATRIX*)(&mWorld)); // ------------------------------------------------------------- float fRed = sinf(g_fTime); fRed *= 0,00392156; // 1 / 255 BYTE Red = static_cast<BYTE>(fRed); float fGreen = sinf(g_fTime); fGreen *= 0,00392156; // 1 / 255 BYTE Green = static_cast<BYTE>(fGreen); float fBlue = sinf(g_fTime); fBlue *= 0,00392156; // 1 / 255 BYTE Blue = static_cast<BYTE>(fBlue); // Den Bildpuffer und den Z-Buffer leeren if(FAILED(hResult = g_pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(fRed, fGreen, fBlue), 1.0f, 0))) { // Fehler beim Leeren! MessageBox(g_hWindow, "Fehler beim Leeren der Puffer!", "Fehler", MB_OK | MB_ICONEXCLAMATION); TB_ERROR_DIRECTX("g_pD3DDevice->Clear", hResult, TB_STOP); } // Szene beginnen g_pD3DDevice->BeginScene(); // Nun das Dreieck zeichnen if(FAILED(hResult = g_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, // Dreiecksliste 2, // 1 Dreieck g_aTriangleVertex, // Vertexdaten sizeof(SVertex)))) // Vertexgröße { // Fehler beim Zeichnen! MessageBox(g_hWindow, "Fehler beim Zeichnen des Dreiecks!", "Fehler", MB_OK | MB_ICONEXCLAMATION); TB_ERROR_DIRECTX("g_pD3DDevice->DrawPrimitiveUP", hResult, TB_STOP); } float a; a = sinf(g_fTime/2); if (a<0) a *= -1; float b; b = cosf(g_fTime); if (b<0) b *= -1; g_aTriangleVertex[1].vPosition = tbVector3( a, 0.0f, 0.0f); g_aTriangleVertex[0].vPosition = tbVector3( 0.0f, 0.0f, 0.0f); g_aTriangleVertex[2].vPosition = tbVector3( 0.0f, a, 0.0f); g_aTriangleVertex[3].vPosition = tbVector3( a, a, 0.0f); g_aTriangleVertex[0].dwColor = tbColor(sinf(g_fTime), cosf(g_fTime),-sinf(g_fTime)); g_aTriangleVertex[1].dwColor = tbColor(cosf(g_fTime), sinf(g_fTime), tanf(g_fTime)); g_aTriangleVertex[2].dwColor = tbColor(-sinf(g_fTime),-sinf(g_fTime), sinf(g_fTime)); g_aTriangleVertex[3].dwColor = tbColor(-sinf(g_fTime),-tanf(g_fTime), cosf(g_fTime)); // Szene beenden g_pD3DDevice->EndScene(); // Der große Moment: den Bildpuffer sichtbar machen g_pD3DDevice->Present(NULL, NULL, NULL, NULL); return TB_OK; } |
C-/C++-Quelltext |
|
1 |
int i = 011; |
Werbeanzeige