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 |
struct Baum { bool besetzt; SDL_Rect place; } Baum b1; b1.besetzt = true; b1.place = SDL_Rect(15, 15, 25, 25); Baum b2; b2.besetzt = true; b2.place = SDL_Rect(115, 15, 25, 25); |
C-/C++-Quelltext |
|
1 2 3 4 5 |
std::vector<SDL_Rect> baeume; for (auto baum : baeume) { Boden.Planzen(baum); } |
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 |
#include "SDL\SDL.h" #include "Menu.hpp" int main( int argc, char* args[] ) { SDL_Surface* screen = NULL; //Start SDL SDL_Init( SDL_INIT_EVERYTHING ); //Set Screen screen = SDL_SetVideoMode( 800, 600, 32, SDL_SWSURFACE|SDL_DOUBLEBUF ); Menu Laha; Laha.Getsscreen(screen); SDL_Quit(); return 0; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Menu { public: void Getsscreen(SDL_Surface *screen); Menu(); void SButtonPos(); private: SDL_Rect ButtonPos; SDL_Rect AniButton; }; |
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 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
#include "SDL\SDL.h" #include "Menu.hpp" #include "SDL\SDL_mixer.h" #include "SDL\SDL_image.h" Menu::Menu() { } void Menu::Getsscreen(SDL_Surface *screen) { //ENUM Zur Animierung Des MENUES enum walk { Banner , Banner1 , Banner2 , Banner3 , Banner4 , Banner5 , Banner6 }; //ENUM //Positioniert den Button Im MEnue SButtonPos(); //Buttton //Deklariert Sound Zeiger Mix_Chunk *Effekt1; Mix_Chunk *Effekt2; Mix_Music *Maska; //Sounds Zeiger //Definiert, wie Der Sound ausgegeben werden soll Mix_OpenAudio(22050,AUDIO_S16SYS,2,640); //Definierung Sound //Definierung der Sounds (Zeiger Sound) Maska =Mix_LoadMUS("test.mid"); Effekt1=Mix_LoadWAV("test1.wav"); Effekt2=Mix_LoadWAV("test2.wav"); //Definiert die Sound Zeiger //Spielt die Hintergrund Musik ab Mix_PlayMusic(Maska,1); //Music loop=1 //Spielt Musik mit 1 LOOP(Durchlauf ab) //Handelt alle Events, wie Tastatureingabe und MAus SDL_Event event; //Events //Zahlvariable für die Animation //Animationszaehler //Zeiger für die Späteren Bilder SDL_Surface *Button; SDL_Surface *Load; SDL_Surface *LerixLogo; SDL_Surface *sdlLogo; SDL_Surface *Buttonover; //Zeiger Bilder //Definiert die Zeiger (Bilder) Buttonover=IMG_Load("test.gif"); sdlLogo= SDL_LoadBMP("sdllogo.bmp"); Load= SDL_LoadBMP("bis.bmp"); LerixLogo= SDL_LoadBMP("Banner.bmp"); Button = SDL_LoadBMP("startbutton.bmp"); //Definition Bilder //Rect für Animation SDL LOGO SDL_Rect Logo; Logo.x=250; Logo.y=0; Logo.h=67; Logo.w=123; //Laufzeitvariable für die Schleife des Menüs bool Run = true; //Laufzeitzschleife(Menü) //Hauptschleife(Menü) while(Run) { //Variable für die Animation SDL_Delay(100); //While schleife für Events, wenn etwas gedrückt wird, bearbeitung HIER while(SDL_PollEvent(&event)) { //Event Type, Maus Tastatur, bearbeitung erfolgt hier switch(event.type) { case SDL_MOUSEMOTION: { }break; case SDL_MOUSEBUTTONDOWN: { //X,Y Koordinate von der Maus ZUR ZEIT int x= event.motion.x; int y=event.motion.y; //Ueberpruefune, ob Maus, im Bereich des Buttons gedrückt wurde if(x>ButtonPos.x&&x<ButtonPos.x+ButtonPos.w &&y>ButtonPos.y&&y<ButtonPos.y+ButtonPos.h) { //Sound Abspielen Mix_PlayChannel(-1,Effekt1, 0); //Ladebildschirm Laden SDL_BlitSurface(Load,NULL, screen, NULL); //Bildschirm erneuern SDL_Flip(screen); //5 Sekunden warten SDL_Delay(5000); //Hauptschleife auf false setzen, eigentliches Spiel beginnt Run=false; } }break; //Case Endet }//Switch Zuende }//While Event Zuende //Wenn Ende des Animationsarrays erreicht ist, Zeahler wieder auf 0 //Ausgabe des Hintergrunds SDL_BlitSurface(LerixLogo, NULL,screen, NULL); //Ausgabe Animation SDL_BlitSurface(sdlLogo, NULL,screen, &Logo); //Button Ausgeben SDL_BlitSurface(Button,NULL, screen, &ButtonPos); SDL_BlitSurface(Buttonover, NULL,screen,&AniButton); //Bildschirm erneuern SDL_Flip(screen); SDL_FillRect(screen,NULL, 0x221122); Logo.y+=5; if(Logo.y>=533) { Logo.y=0; } }//Ende Der Hauptschleife(Menü) //Freigeben der Geladenen Sounds Mix_FreeChunk(Effekt1); Mix_FreeChunk(Effekt2); Mix_FreeMusic(Maska); Mix_CloseAudio(); //Soundfreigabe Ende //Freigabe Der Bilder // SDL_FreeSurface(sdlLogo); SDL_FreeSurface(LerixLogo); //Animationsschleife freigabe Endet SDL_FreeSurface(Button); SDL_FreeSurface(Load); //Ende Bilderfreigabe } //Klassenfunktion Getsscreen Ende void Menu::SButtonPos() { //Position für Startbutton ButtonPos.h=123; ButtonPos.w=527; ButtonPos.x=130; ButtonPos.y=450; //Ende Position Startbutton //Position für animation Buttopn AniButton.h=100; AniButton.w=200; AniButton.x=200; AniButton.y=460; } |
Werbeanzeige