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
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 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
//_____________________________________________________________ //Struktur für einen Vertex #define VERTEX_FVF (D3DFVF_XYZRHW | D3DFVF_TEX1) struct SVertex { tbVector3 vPosition; float fRHW; tbVector2 vTex0; }; //__________________________________________________________________ //Globale Variablen tbVideo* g_pVideo = NULL; //Video //__________________________________________________________________ //Initialisiert den Spielzustand tbResult CIntro::Init() { //Laden if(Load()) TB_ERROR("Fehler beim Laden des Spielzustands!", TB_ERROR); return TB_OK; } //__________________________________________________________________ //Fährt den Spielzustand herunter tbResult CIntro::Exit() { //Entladen Unload(); return TB_OK; } //__________________________________________________________________ //Entlädt den Spielzustand tbResult CIntro::Unload() { //Alles löschen TB_SAFE_DELETE(g_pVideo); return TB_OK; } //__________________________________________________________________ //Bewegt den Spielzustand tbResult CIntro::Move(float fTime) { //Das Video verarbeiten g_pVideo->Process(); //Wenn 'Escape' gedrückt wurde: zum Hauptmenü if(g_pbButtons[TB_KEY_ESCAPE]) { tbDelay(100); g_pTetris->SetGameState(GS_MAIN_MENU); } return TB_OK; } //__________________________________________________________________ //Rendert den Spielzustand tbResult CIntro::Render(float fTime) { SVertex aVertex[4]; //Wenn die Videotextur gerade gesperrt ist: warten bis sie frei ist while(g_pVideo->GetRenderer()->IsTextureLocked()) {} //Die Szene beginnen tbDirect3D::GetDevice()->BeginScene(); //Vertexformat und Videotextur setzen, Z-Buffer aus tbDirect3D::SetFVF(VERTEX_FVF); tbDirect3D::SetTexture(0, g_pVideo->GetRenderer()->GetTexture()); tbDirect3D::SetRS(D3DRS_ZENABLE, D3DZB_FALSE); //Die vier Vertizes erstellen //Links unten aVertex[0].vPosition = tbVector3(0.0f, tbDirect3D::GetScreenSize().y, 0.5f); aVertex[0].fRHW = 1.0f; aVertex[0].vTex0 = tbVector2(0.0f, g_pVideo->GetRenderer()->GetBottomRightTex().y); //Links oben aVertex[1].vPosition = tbVector3(0.0f, 0.0f, 0.0f); aVertex[1].fRHW = 1.0f; aVertex[1].vTex0 = tbVector2(0.0f, 0.0f); //Rechts unten aVertex[2].vPosition = tbVector3(tbDirect3D::GetScreenSize().x, tbDirect3D::GetScreenSize().y, 0.5f); aVertex[2].fRHW = 1.0f; aVertex[2].vTex0 = g_pVideo->GetRenderer()->GetBottomRightTex(); //Rechts oben aVertex[3].vPosition = tbVector3(tbDirect3D::GetScreenSize().x, 0.0f, 0.5f); aVertex[3].fRHW = 1.0f; aVertex[3].vTex0 = tbVector2(g_pVideo->GetRenderer()->GetBottomRightTex().x, 0.0f); //Als Dreiecksfolge zeichnen tbDirect3D::GetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, aVertex, sizeof(SVertex)); //Szene beenden und darstellen tbDirect3D::GetDevice()->EndScene(); tbDirect3D::GetDevice()->Present(NULL, NULL, NULL, NULL); return TB_OK; } //__________________________________________________________________ //Lädt den Spielzustand tbResult CIntro::Load() { //Video laden g_pVideo = new tbVideo; if(g_pVideo->Init("Akira Class Starship.avi")) { MessageBox(NULL, "Fehler beim Laden des Videos!", "Fehler", MB_OK | MB_ICONEXCLAMATION); Unload(); return TB_ERROR; } //Video mit Looping abspielen g_pVideo->Play(TRUE); //Aufräumen Unload(); return TB_OK; } //________________________________________________________________________ |
Zitat
ich denke mal das is einfach die erfahrung und ich würde das auch irgendwie hinbekommen aber ich müsste hald endlos lange suchen und debuggen und und und und () ich denke mal ihr habt den besseren blick und könnt mir da einiges ersparen
Werbeanzeige