Du bist nicht angemeldet.

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

1

18.11.2006, 18:13

SDL: Ganz verrücktes Problem! Brauch hilfe!

Hallo!
Ich habe ein komisches Problem. :?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination, bool bg=false )
{
    
    SDL_Rect offset;  
    
    offset.x = x;
    offset.y = y;

    if (bg){    
    
    offset.w = SCREEN_WIDTH;  //DAS NIMMT ER NICHT AN

    offset.h = SCREEN_HEIGHT; //DAS AUCH NICHT

         
    }
   
    SDL_BlitSurface( source, NULL, destination, &offset );
}


Ich habe die funktion aus einem tut und ein bisschen ergänzt, das man eingeben kann ob es sich um einen Hintergrund handelt. Wenn es der fall ist, soll sich das Bild direkt an das Fenster anpassen!

Hab ich einen black out oder irgendwas übersehen!?

Bitte um hilfe!
Gruß Flo

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

2

18.11.2006, 19:28

Der Compiler mekert? Dann geb bitte die Fehlermeldung an. Es könnte z.B. sein dass er SCREEN_WIDTH nicht kennt.
"Games are algorithmic entertainment."

3

18.11.2006, 19:40

Ne der meckert nicht! das ist ja auch so komisch.
Eigentlich ist die doch nicht falsch oder?
ps: SCREEN_WIDTH KENNT DER ;)

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

4

18.11.2006, 20:08

hmm dann heißt das der bg immer false ist :( mach mal das bool bg=false zu bool bg ;) ist zwar nur ne theorie aber könnte daran liegen aber hast du auch die werte für bg korrekt über geben? zeig auch den codeabschnitt dafür bitte ;)
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

5

18.11.2006, 20:41

C-/C++-Quelltext

1
2
3
SDL_Surface *bg;
bg=load_image("Programm//Menu//bg.gif");
apply_surface( 0, 0, bg, screen, true);


Das ist der Codeabschnitt!
Die funktion load_image() sieht so aus:

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
SDL_Surface *load_image( std::string filename ) 
{
  
    SDL_Surface* loadedImage = NULL;
    
    
    SDL_Surface* optimizedImage = NULL;
    
   
    loadedImage = IMG_Load( filename.c_str() );
    
   
    if( loadedImage != NULL )
    {
      
        optimizedImage = SDL_DisplayFormat( loadedImage );
        
       
        SDL_FreeSurface( loadedImage );
        
       
        if( optimizedImage != NULL )
        {
         SDL_SetColorKey( optimizedImage, SDL_RLEACCEL | SDL_SRCCOLORKEY, SDL_MapRGB( optimizedImage->format, 0, 0xFF, 0xFF ) );
        }
    }
    
      return optimizedImage;
}
Gruß Flo

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

6

18.11.2006, 21:13

gmm sieht eigentlich alles io aus :(
Keine Ahnung wo der Fehler sin könnte :(
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

7

18.11.2006, 21:36

Genau! Das sieht alles super aus!
Ich weiß auch nicht!
Das Bild möchte sich einfach nicht vergrößern oder verkleinern! :(
Naja schade.
Gruß Flo

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

19.11.2006, 00:42

Schonmal den Debugger bemüht? Einfach den Zeiger in die Zeile "if (bg){" setzen und dann F9 drücken. Das Programm normal per F5 starten und dann die Werte überprüfen. Gegebenen Falls per F10 und/oder F11 schrittweise das Programm weiterlaufen lassen, um die Werteveränderung beobachten zu können :)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

ecsl

Frischling

Beiträge: 41

Wohnort: Kaiserslautern

Beruf: Meteorologie Student

  • Private Nachricht senden

9

10.06.2007, 02:32

Is zwar schon eine Weile her die Frage aber rein aus Neugier

Du hast offset.w und offset.h geschrieben.

Sind das globale Variablen oder irgendwo anders definiert?

Ich geh mal davon aus, da er net meckert müssen die ja definiert sein, oder?
Sonst kommt doch sowieso ne Fehlermeldung.

Lg Eike

Beliah

Treue Seele

Beiträge: 115

Wohnort: Söhlde - LK Hildesheim

Beruf: FI-Anwendungsentwicklung

  • Private Nachricht senden

10

10.06.2007, 13:57

Zitat von »"ecsl"«

Is zwar schon eine Weile her die Frage aber rein aus Neugier

Du hast offset.w und offset.h geschrieben.

Sind das globale Variablen oder irgendwo anders definiert?
[...]


Ist doch in der Funktion selber definiert:

Quellcode

1
2
3
4
void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination, bool bg=false )
{
   
    SDL_Rect offset; << HIER
Debuggers don't remove bugs, they only show them in slow motion.

Google Suche ohne Werbung und Cookies: Scroogle

Derzeitige(s) Freizeitprojekt(e)

Werbeanzeige