Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

SDL - Problem z wyświetlaniem obrazów.

Ostatnio zmodyfikowano 2013-12-19 21:23
Autor Wiadomość
Sharrk
Temat założony przez niniejszego użytkownika
SDL - Problem z wyświetlaniem obrazów.
» 2013-12-18 20:08:06
Witam!

Nie mam pojęcia czemu, ale nie wyświetlają mi się obrazy. Jedyne co widzę po skompilowaniu to okienko wypełnione białym kolorem. Inne projekty kompilują się bez problemu, a we wszystkich mam tak samo ustawione properties. Używam Visuala 2013 Pro.

Plik main.cpp:
C/C++
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>
#include <SDL_thread.h>
#include <iostream>
#include <string>
#include "klasy.h"
#include "funkcje.h"

// Zmienne globalne ogólne
SDL_Window * gWindow = NULL;


// Globalne Surface
SDL_Surface * gScreenSurface = NULL;

SDL_Surface * tlo_menu_glownego = NULL;
SDL_Surface * start_gry = NULL;
SDL_Surface * koniec_gry = NULL;

bool loadmedia()
{
    start_gry = SDL_LoadBMP( "start_gry.bmp" );
    koniec_gry = SDL_LoadBMP( "koniec.bmp" );
    tlo_menu_glownego = SDL_LoadBMP( "tlo_menu_glownego.bmp" );
    return true;
}


// MAIN

int main( int argc, char ** argv )
{
    bool quit = false; // Flaga zamykająca główną pętle
    bool pierwszy_raz = false; // Flaga
   
   
    przycisk zaczyjanacy_gre;
    przycisk konczacy_gre;
   
    SDL_Event wydarzenie;
   
    init( gWindow, gScreenSurface ); // Tworzy okno
    loadmedia(); // Wczytuje wszystkie obrazy
   
    while( !quit ) // Główna Pętla
    {
        SDL_BlitSurface( tlo_menu_glownego, NULL, gScreenSurface, NULL );
        SDL_UpdateWindowSurface( gWindow );
        if( !pierwszy_raz )
        {
            zaczyjanacy_gre.wgraj_przycisk( 290, 480, start_gry, gScreenSurface );
            konczacy_gre.wgraj_przycisk( 290, 960, koniec_gry, gScreenSurface );
            SDL_UpdateWindowSurface( gWindow );
            pierwszy_raz = true;
        }
       
    }
    return 0;
}
Plik klasy.cpp:

C/C++
#include <SDL.h>
#include "klasy.h"

void postac::poruszanie()
{
   
   
}

void przycisk::wgraj_przycisk( int x, int y, SDL_Surface * surface, SDL_Surface * przeznaczenie )
{
    ksztalt.x = x;
    ksztalt.y = y;
   
    SDL_BlitSurface( surface, NULL, przeznaczenie, & ksztalt );
}
Plik funkcje.cpp

C/C++
#include <SDL.h>
#include "funkcje.h"
#include "klasy.h"

// Tworzy okno
bool init( SDL_Window * siemek, SDL_Surface * siemekSurface )
{
    siemek = SDL_CreateWindow( "Shit Happens", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 1920, 1080, SDL_WINDOW_SHOWN );
   
    siemekSurface = SDL_GetWindowSurface( siemek );
    return true;
}


// Wczytuje na ekran obrazek z Surface
void wgraj_surface( int x, int y, SDL_Surface * surface, SDL_Surface * przeznaczenie )
{
    SDL_Rect polozenie;
   
    polozenie.x = x;
    polozenie.y = y;
   
    SDL_BlitSurface( surface, NULL, przeznaczenie, & polozenie );
}
plik klasy.h

C/C++
#ifndef klasy_h
#define klasy_h

// Postać
class postac
{
private:
    SDL_Rect ksztalt;
   
    int x = 0;
    int y = 0;
   
public:
    void poruszanie(); // Poruszanie się postacią
   
};

// Przycisk

class przycisk
{
private:
    SDL_Rect ksztalt;
   
    int x = 0;
    int y = 0;
public:
   
    void wgraj_przycisk( int x, int y, SDL_Surface * surface, SDL_Surface * przeznaczenie );
   
};

#endif
plik funkcje.h

C/C++
#include "klasy.h"

#ifndef funkcje_h
#define funkcje_h

bool loadmedia();

bool init( SDL_Window *, SDL_Surface * );

void wgraj_surface( int, int, SDL_Surface *, SDL_Surface *, SDL_Window * );

void menu_glowne();

#endif
P-99599
MrPoxipol
» 2013-12-18 21:03:55
Może nie rysujesz? ew bardziej prawdopodobne jest to, że plik nie został wczytany.
P-99606
Sharrk
Temat założony przez niniejszego użytkownika
» 2013-12-19 21:23:01
Dziękuję za odpowiedz, ale już rozwiązałem sprawę. Zamykam temat.
P-99669
« 1 »
  Strona 1 z 1