Guest User

Untitled

a guest
Jan 21st, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. #include <SDL/SDL.h>
  2.  
  3. int main(int argc, char *argv[])
  4. {
  5. SDL_Surface *Ekran, *Obrazek[3];
  6. SDL_Event Komunikat;
  7. char *Nazwa_obrazka[3]={"1.bmp","2.bmp","3.bmp"};
  8. int Koniec=0, i, a, b;
  9.  
  10. if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER|SDL_INIT_AUDIO))
  11. {
  12. printf("Co¶ poszło nie tak: %s\n",SDL_GetError());
  13. }
  14. else
  15. {
  16. if(!(Ekran=SDL_SetVideoMode(640,480,24,SDL_ANYFORMAT)))
  17. {
  18. printf("Co¶ poszło nie tak: %s\n",SDL_GetError());
  19. }
  20. else
  21. {
  22. SDL_WM_SetCaption("Program 19","Program 19");
  23.  
  24.  
  25.  
  26. for(i=0;i<3;i++)
  27. {
  28. if(!(Obrazek[i]=SDL_LoadBMP(Nazwa_obrazka[i])))
  29. {
  30. break;
  31. }
  32. }
  33.  
  34. if(i<3)
  35. {
  36. printf("Co¶ poszło nie tak: %s\n",SDL_GetError());
  37. }
  38. else
  39. {
  40. for(i=0;i<3;i++)
  41. {
  42. if((Obrazek[i]->format->palette)&&(Ekran->format->palette))
  43. {
  44. SDL_SetColors(Ekran,Obrazek[i]->format->palette->colors,0,Obrazek[i]->format->palette->ncolors);
  45. }
  46. }
  47.  
  48.  
  49.  
  50. for(i=0;i<255;i++)
  51. {
  52. if((SDL_PollEvent(&Komunikat))&&(Komunikat.type)==(SDL_QUIT))
  53. {
  54. Koniec=1;
  55. break;
  56. }
  57. SDL_SetAlpha(Obrazek[0],SDL_SRCALPHA,i);
  58. SDL_FillRect(Ekran,NULL,SDL_MapRGB(Ekran->format,0,0,0));
  59. SDL_BlitSurface(Obrazek[0],NULL,Ekran,NULL);
  60. SDL_UpdateRect(Ekran,0,0,640,480);
  61. SDL_Delay(5);
  62. }
  63.  
  64. a=-1;
  65. b=0;
  66.  
  67. while(!Koniec)
  68. {
  69.  
  70. a++;
  71. if(a>2)
  72. {
  73. a=0;
  74. }
  75.  
  76. b++;
  77. if(b>2)
  78. {
  79. b=0;
  80. }
  81.  
  82. for(i=0;i<255;i++)
  83. {
  84.  
  85. if((SDL_PollEvent(&Komunikat))&&(Komunikat.type)==(SDL_QUIT))
  86. {
  87. Koniec=2;
  88. break;
  89. }
  90.  
  91. SDL_SetAlpha(Obrazek[b],SDL_SRCALPHA,i);
  92. SDL_BlitSurface(Obrazek[a],NULL,Ekran,NULL);
  93. SDL_BlitSurface(Obrazek[b],NULL,Ekran,NULL);
  94. SDL_UpdateRect(Ekran,0,0,640,480);
  95. SDL_Delay(5);
  96.  
  97. }
  98.  
  99. }
  100.  
  101. if((Koniec==2)&&(i<255))
  102. {
  103. for(;i<255;i++)
  104. {
  105.  
  106. if((SDL_PollEvent(&Komunikat))&&(Komunikat.type)==(SDL_QUIT))
  107. {
  108. Koniec=3;
  109. break;
  110. }
  111.  
  112. SDL_SetAlpha(Obrazek[b],SDL_SRCALPHA,i);
  113. SDL_BlitSurface(Obrazek[a],NULL,Ekran,NULL);
  114. SDL_BlitSurface(Obrazek[b],NULL,Ekran,NULL);
  115. SDL_UpdateRect(Ekran,0,0,640,480);
  116. SDL_Delay(5);
  117.  
  118. }
  119. }
  120.  
  121. for(;(Koniec<3)&&(i>=0);i--)
  122. {
  123. if((SDL_PollEvent(&Komunikat))&&(Komunikat.type)==(SDL_QUIT))
  124. {
  125. break;
  126. }
  127. SDL_SetAlpha(Obrazek[b],SDL_SRCALPHA,i);
  128. SDL_FillRect(Ekran,NULL,SDL_MapRGB(Ekran->format,0,0,0));
  129. SDL_BlitSurface(Obrazek[b],NULL,Ekran,NULL);
  130. SDL_UpdateRect(Ekran,0,0,640,480);
  131. SDL_Delay(5);
  132. }
  133.  
  134.  
  135.  
  136. }
  137.  
  138. for(i=0;i<3;i++)
  139. {
  140. if(Obrazek[i])
  141. {
  142. SDL_FreeSurface(Obrazek[i]);
  143. }
  144. }
  145.  
  146.  
  147.  
  148.  
  149. SDL_FreeSurface(Ekran);
  150. }
  151. SDL_Quit();
  152. }
  153. return(0);
  154. }
Add Comment
Please, Sign In to add comment