Autor Wątek: Problem z obrazem w trybie fullscreen  (Przeczytany 4293 razy)

Offline idyzer

  • Użytkownik

# Listopad 28, 2012, 17:19:09
Witam,

mam problem z uruchomieniem gry w trybie FULLSCREEN. Po skompilowaniu gra się oczywiście włącza, nie minie chwilka a obraz się zawiesza. W trybie WINDOWED wszystko działa. Proszę o pomoc w rozwiązaniu tego problemu.
#include <allegro.h>
int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT_FULLSCREEN, 640, 480, 0, 0 );
    clear_to_color( screen, makecol( 128, 128, 128 ) );
   
   
    BITMAP * ludek = NULL;
   
    ludek = load_bmp( "ludek.bmp", default_palette );
    if( !ludek )
    {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "nie mogę załadować obrazka Ludek !" );
        allegro_exit();
        return 0;
    }
   
   
    int ludek_x = 100, ludek_y = 100;
while( !key[ KEY_ESC ] )
{
    if( key[ KEY_LEFT ] ) ludek_x--;
   
    if( key[ KEY_RIGHT ] ) ludek_x++;
   
    if( key[ KEY_UP ] ) ludek_y--;
   
    if( key[ KEY_DOWN ] ) ludek_y++;
    rest(20);
    masked_blit( ludek, screen, 0, 0, ludek_x, ludek_y, ludek->w, ludek->h );
}
destroy_bitmap( ludek );
allegro_exit();
return 0;
}
END_OF_MAIN();
« Ostatnia zmiana: Listopad 28, 2012, 17:22:19 wysłana przez idyzer »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Gabes

  • Użytkownik
    • Allegro5kurs

# Listopad 28, 2012, 23:47:52
set_color_depth( 32 );
set_gfx_mode( GFX_AUTODETECT_FULLSCREEN, 640, 480, 0, 0 );
Jeśli poprawnie wczytałeś bitmapę, to twoja karta nie obsługuje tak niskiej rozdzielczości lub głębi kolorów.
Pokombinuj z 16 lub 24 i 800x600.
Tak niska rozdzielczość to tylko w trybie okna.
set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640,480, 0, 0 );

Offline idyzer

  • Użytkownik

# Listopad 29, 2012, 00:34:14
Kombinuję, i z głębią kolorów i z rozdzielczością.
ustawiłem:

set_color_depth( 16 );
set_gfx_mode( GFX_AUTODETECT_FULLSCREEN, 1024, 768, 0, 0 );

i efekt jest taki sam. Opisując problem jeszcze dokładniej, po uruchomieniu "gry" trzymam przycisk sterujący postacią i przesuwa się ona o kilkadziesiąt pikseli a następnie obraz się zawiesza a kolory jaśnieją.

Offline idyzer

  • Użytkownik

# Listopad 29, 2012, 01:21:35
Po ustawieniu:

set_color_depth( 8 );
Obraz już się nie zawiesza. Ale nie wiem czym to jest spowodowane. Czy w takim razie w trybie FULLSCREEN mogę używać tylko głębi kolorów 8 bitowej? Wiadomo co może być przyczyną tego?
« Ostatnia zmiana: Listopad 29, 2012, 10:59:13 wysłana przez idyzer »

Offline idyzer

  • Użytkownik

# Grudzień 22, 2012, 20:59:27
Witam ponownie,
chciałbym odświeżyć temat :)

Przypominam, że miałem problem z uruchomieniem gry pisanej w bibliotece allegro. Dzisiaj na komputerze stacjonarnym pobrałem prostą grę napisaną właśnie w tej bibliotece. Mama tam zainstalowany system Win XP i gra ruszyła bez problem w trybie okienkowym i fullscreen. Natomiast na laptopie gdzie mam Win 7 64 bit gra nie działa ani w trybie okienkowym ani w trybie fullscreen. Może ktoś spotkał się z takim problemem?

Offline Kos

  • Użytkownik
    • kos.gd

  • +1
# Grudzień 22, 2012, 21:07:01
Główny problem, jaki tu widzę, to fakt, że opisujesz swój problem jako "nie działa" i po takim opisie oczekujesz pomocy :).

Offline idyzer

  • Użytkownik

# Grudzień 22, 2012, 23:43:17
Masz rację. Przeczytałem swoją wypowiedź jeszcze raz xD Rozwinę myśl "nie działa" :)

Na systemie Win 7 64 bit program, czy gra napisana w bibliotece allegro nie działa poprawnie w trybie fullscreen. Po uruchomieniu obraz się zawiesza. Na systemie XP wszystko jest ok, tryb fullscreen działa dobrze, obraz się nie zawiesza.

Offline hfjh

  • Użytkownik

# Grudzień 23, 2012, 00:27:27
Spróbuj dodać jakiś log do programu, to naprawdę ułatwia życie. Jeśli chcesz mogę sprawdzić program u siebie, też mam Win7 64 bit.

Offline idyzer

  • Użytkownik

# Grudzień 23, 2012, 00:52:56
Tu masz prostą grę. U mnie w trybie fullscreen się obraz zawiesza.
http://warsztat.scythe.pl/projects/nkreski

Offline hfjh

  • Użytkownik

# Grudzień 23, 2012, 01:02:31
U mnie działa bez problemu.

Offline idyzer

  • Użytkownik

# Grudzień 23, 2012, 01:05:39
Dzięki :) wina leży po stronie sprzętu. A powiedz mi jaką masz kartę graficzną?

Offline hfjh

  • Użytkownik

# Grudzień 23, 2012, 01:35:02
GeForce GTX660M. Ale AFAIR Allegro4 jedzie na CPU, prawda?

Offline idyzer

  • Użytkownik

# Grudzień 23, 2012, 01:40:31
Tego to nie wiem. Ale chyba na samym CPU nie może jechać... Czy może?:D
« Ostatnia zmiana: Grudzień 23, 2012, 01:46:05 wysłana przez idyzer »

Offline hfjh

  • Użytkownik

# Grudzień 23, 2012, 02:17:35
Jeśli gra nie działa w trybie fullscreen, to może ustawiasz złą rozdzielczość?

Offline idyzer

  • Użytkownik

# Grudzień 23, 2012, 10:21:53
Też to brałem pod uwagę. Ustawiałem różne rozdzielczości. Zresztą jak zauważyłeś gra, którą ci podałem u Ciebie nie zawiesza się na początku a u mnie tak ;/