[SDL] Rysowanie bardzo prostego menu
Ostatnio zmodyfikowano 2013-05-22 17:15
fers334 Temat założony przez niniejszego użytkownika |
[SDL] Rysowanie bardzo prostego menu » 2013-03-27 18:23:37 Siemka mam kłopot a mianowicie mam strukture odpowiedzialna za wczytywanie struktury oraz strukture menu przechowujaca obrazy z menu ich rozmiar itd. Oto kod :
Plik menu.h
#include <SDL.h> #include <SDL_ttf.h> #include "SDL_laduj_bmp.h"
struct menu { SDL_Surface * mnu[ 5 ]; SDL_Rect mnu_dane[ 5 ]; int nr; menu() : nr( 0 ) { SLB.laduj_bmp( mnu[ 0 ], "Menu/Menu.bmp" ); SLB.laduj_bmp( mnu[ 1 ], "Menu/Menu_wyswietl.bmp" ); SLB.laduj_bmp( mnu[ 2 ], "Menu/Menu_Autor.bmp" ); SLB.laduj_bmp( mnu[ 3 ], "Menu/Menu_cofnij.bmp" ); SLB.laduj_bmp( mnu[ 4 ], "Menu/Menu_Exit.bmp" ); mnu_dane[ 0 ].x = 0; mnu_dane[ 0 ].y = 0; mnu_dane[ 0 ].w = 800; mnu_dane[ 0 ].h = 600; } void rysuj_menu() { SDL_BlitSurface( mnu[ nr ], & mnu_dane[ nr ], init.ekran, & init.ekran_dane ); } };
Plik SDL_laduj_bmp.h
#ifndef SDL_laduj_bmp_H #define SDL_laduj_bmp_H
#include <SDL.h> #include <SDL_ttf.h>
struct SDL_laduj_bmp { void laduj_bmp( SDL_Surface *& obraz, char * nazwa_pliku ); }; SDL_laduj_bmp SLB;
void SDL_laduj_bmp::laduj_bmp( SDL_Surface *& obraz, char * nazwa_pliku ) { obraz = SDL_LoadBMP( nazwa_pliku ); }
#endif
Mam taki problem ze w klasie menu mam zmienna o nazwie nr przechowujaca aktualny nr. obrazka z menu
problem polega na tym ze gdy do funkcji :
void rysuj_menu() { SDL_BlitSurface( mnu[ nr ], & mnu_dane[ nr ], init.ekran, & init.ekran_dane ); }
jaka pierwszy argument podam mnu[i] to wszystko jest dobrze lecz gdy posluze sie zapisem jak wyzej
to nie zmienia sie obrazek menu mimo ze zmienna przyjmuje inne wartosci. Obrazek menu jest taki sam caly czas a mianowicie jest to obrazek nr 0.
Nie wiem czego to wina bo sama zmienna podlega zmianie prosze o pomoc :) .
Z góry dzieki Fers ! |
|
DejaVu |
» 2013-05-22 17:15:57 mnu_dane[ 0 ].x = 0; mnu_dane[ 0 ].y = 0; mnu_dane[ 0 ].w = 800; mnu_dane[ 0 ].h = 600;
Nie inicjalizujesz wszystkich zmiennych, więc w pamięci pozostałych obiektów od 1 do 4 włącznie są śmieci, zatem obraz w najlepszym wypadku rysuje się poza ekranem. |
|
« 1 » |