Forum: SDL bug!

Forum huvudsida -> Programmering -> SDL bug!

Sidor: 1

Till botten

lord_slampa 02:53 - 1:a Januari 2007 | Post #1
Medlem
Inlägg: 46


Skicka PM
hej, jag har ett problem här va.
min kod, den fungerar inte riktigt som jag vill!

ni får hela och se för er själva men det är när jag lägger till: SDL_Flip(screen); som skiten buggar sig!
  1.  
  2. #include "SDL.h"
  3. #include <stdio.h>
  4. #include <string>
  5.  
  6. int screenW = 800;
  7. int screenH = 600;
  8. int screenBPP = 32;
  9.  
  10. SDL_Surface *screen = NULL;
  11. SDL_Surface *bild = NULL;
  12.  
  13. //min bild laddare, som en grafik motor typ. :D
  14. SDL_Surface *load_image( std::string filename )
  15. {
  16. //tillfälligt laddnings tåg för bilden.
  17. SDL_Surface* loadedImage = NULL;
  18. //optimala bilden som används :S
  19. SDL_Surface* optimizedImage = NULL;
  20. //laddar bilden.
  21. loadedImage = SDL_LoadBMP( filename.c_str() );
  22. if( loadedImage != NULL ){
  23. //skapar den optimerade bilden!
  24. optimizedImage = SDL_DisplayFormat( loadedImage );
  25. //och släper lös den gammla eller andra bilden!
  26. SDL_FreeSurface( loadedImage );
  27. }
  28. //åter till den optimerade bilden!
  29. return optimizedImage;
  30. }
  31. void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination ) {
  32. //Make a temporary rectangle to hold the offsets
  33. SDL_Rect offset;
  34. //Give the offsets to the rectangle
  35. offset.x = x;
  36. offset.y = y;
  37. //Blit the surface
  38. }
  39. int main(int argc, char *argv[]){
  40. SDL_Init (SDL_INIT_EVERYTHING);
  41. if(SDL_Init(SDL_INIT_EVERYTHING)==-1){
  42. printf("kan inte ladda : %s.",SDL_GetError());
  43. exit(-1);
  44. }
  45. printf("Kunde ladda SDL!");
  46. screen = SDL_SetVideoMode(screenW,screenH,screenBPP,SDL_SWSURFACE);
  47. if(screen=NULL){
  48. printf("kan inte ladda skit skärmen: ",SDL_GetError());
  49. exit(-1);
  50. }
  51. SDL_WM_SetCaption( "Test program 01-01-07", NULL );
  52. //laddar bilden : namn = load_image("plats.bmp");
  53. bild = load_image("box.bmp");
  54.  
  55. //konstaterar att bilden fins där!! = apply_surface(x,y,vilken,och till skärmen'screen');
  56. apply_surface(400,300,bild,screen);
  57. printf ("Testar text.");
  58. if(SDL_Flip( screen ) ==-1 ){
  59. return 1;
  60. }
  61. SDL_Delay(2000);
  62.  
  63. //friar alla bilder.
  64. SDL_FreeSurface(bild);
  65. SDL_Quit();
  66. return 0;
  67. }
  68.  
  69.  
  70.  


-------------------------
DirectX + Win32 Api For the win!



Independence 04:26 - 1:a Januari 2007 | Post #2
Administratör
Inlägg: 1800


Skicka PM
Vad är det som buggar sig när du kör flip? Det kan väl inte direkt funka utan flip, då flip är det som får bilden att faktiskt visa sig.

-------------------------

Vi är riddarna som säger fiskbulle!





lord_slampa 04:27 - 1:a Januari 2007 | Post #3
Medlem
Inlägg: 46


Skicka PM
ja men grejen är den att visual studio buggar sig! och bara i det projektet! inte anars! hel cp!
det kommer upp ett fel medelande där det står

"x0000000" o massa skit
sedan fins det en knapp som det står Break och en annan där det står continu!

prova koden själv eller nått!


-------------------------
DirectX + Win32 Api For the win!

Senast redigerad 04:28 - 1:a Januari 2007


Independence 07:15 - 1:a Januari 2007 | Post #4
Administratör
Inlägg: 1800


Skicka PM
Jag googlade komentarerna i koden på de bitarna som du uppenbarligen kopierat från någon annan på nätet, och det visade sig att du misslyckats med att copy-paste:a koden till apply_surface. Du ska ha med denna rad sist i funktionen:
  1.  
  2. SDL_BlitSurface( source, NULL, destination, &offset );



-------------------------

Vi är riddarna som säger fiskbulle!





Kanye 18:57 - 1:a Januari 2007 | Post #5
Medlem
Inlägg: 130


Skicka PM
LOL, egd Smiley

-------------------------
Motiverar?



lord_slampa 19:34 - 1:a Januari 2007 | Post #6
Medlem
Inlägg: 46


Skicka PM
tyvär så är det inte rätt.
jag har redan försökt med det.


-------------------------
DirectX + Win32 Api For the win!



Independence 19:35 - 1:a Januari 2007 | Post #7
Administratör
Inlägg: 1800


Skicka PM
Då är det nog någon inställning i kompilator/länkare eller motsvarande. Ser inte ut som något mer är fel med koden.

-------------------------

Vi är riddarna som säger fiskbulle!





lord_slampa 19:36 - 1:a Januari 2007 | Post #8
Medlem
Inlägg: 46


Skicka PM
exakt! och jag vet inte vad Smiley
skall titta alla min LIB filer osv.

-------------------------
DirectX + Win32 Api For the win!



Kanye 19:47 - 1:a Januari 2007 | Post #9
Medlem
Inlägg: 130


Skicka PM
Ett tips vore om du kollade så att du inte har på 'console' och 'SDL' inställningar?

-------------------------
Motiverar?



lord_slampa 19:48 - 1:a Januari 2007 | Post #10
Medlem
Inlägg: 46


Skicka PM
hur menar du console?

om du menar win32 console app så nej
jag kör i win32 window eller vad det heter.

-------------------------
DirectX + Win32 Api For the win!



Kanye 19:49 - 1:a Januari 2007 | Post #11
Medlem
Inlägg: 130


Skicka PM
,,r faktiskt inte hemma i Visual Studio, så jag kan inte svara på det men då jag använde det till SDL så minns jag att någon sa att jag skulle använda SDL-inställningar.

Tänkte också påminna dig om att du kan byta till Dev-C++, mycket bättre! Smiley

-------------------------
Motiverar?



lord_slampa 19:50 - 1:a Januari 2007 | Post #12
Medlem
Inlägg: 46


Skicka PM
mjo.. skumt nog så ser jag faktiskt inte ett enda fel i hela koden! men bara det att tar jag bort just
SDL_Flip så fungerar det!

-------------------------
DirectX + Win32 Api For the win!



Kanye 19:56 - 1:a Januari 2007 | Post #13
Medlem
Inlägg: 130


Skicka PM
if(mellan slaget här?)(SDL_Flip


Mellanslaget kanske emellan if(SDL_flip) ? Kan ju vara så petigt det där..

-------------------------
Motiverar?

Senast redigerad 19:57 - 1:a Januari 2007


lord_slampa 19:59 - 1:a Januari 2007 | Post #14
Medlem
Inlägg: 46


Skicka PM
nepp fungerade inte.
skriver om min kod just nu.

och skall göra min egen bild laddare, eller försöka iaf.

då kanske någon möjligtvis kan förklara det dära
void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination ) {

//Make a temporary rectangle to hold the offsets
SDL_Rect offset;
//Give the offsets to the rectangle
offset.x = x;
offset.y = y;
//Blit the surface
}

-------------------------
DirectX + Win32 Api For the win!



Independence 20:05 - 1:a Januari 2007 | Post #15
Administratör
Inlägg: 1800


Skicka PM
Nu glömde du sista raden igen, det är den som gör själva förflyttningen till den nya ytan, utan den raden är funktionen helt meningslös

-------------------------

Vi är riddarna som säger fiskbulle!





lord_slampa 20:06 - 1:a Januari 2007 | Post #16
Medlem
Inlägg: 46


Skicka PM
förlåt pojekn min, men alltså

blit koden, är ungifär som en uppdatering.
den titar efter den laddade bilden och laddar upp den!

och offset är hur stor bilden skall vara?

har jag fått allt rätt eller fel?

-------------------------
DirectX + Win32 Api For the win!



Sidor: 1

Forum huvudsida -> Programmering -> SDL bug!
Atom feed

Du får inte posta i den här tråden | Till toppen