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

Allegro c++ blad z set_color_depth()

Ostatnio zmodyfikowano 2013-03-21 17:24
Autor Wiadomość
fers334
Temat założony przez niniejszego użytkownika
Allegro c++ blad z set_color_depth()
» 2013-03-21 16:19:29
Siemka jestem nowy na forum i od niedawna uczę się allegro c++.I oto moje pytanie , a mianowicie gdy tworze
w bloku main instrukcja set_color_depth() ustawie glebie kolorów na 8 to wszystko jest ok natomiast powyżej 8 bit gdy tworze nowy plik nagłówkowy a w nim w konstruktorze klasy wczytuje bitmape , np. :

BITMAP * postac;
postac = load_bitmap("postac.bmp",default_palette);

Oczywiście  " BITMAP * postać; " Jest jako składnik prywatny funkcji.

To mam taki problem ze przy wczytaniu tego obrazka na bufor przez funkcje składowa klasy postać jest zamazana,
inne kolory , rozdwojona nawet czasem i nie wiem co to powoduje jak zrobię to samo w funkcji main jest dobrze lecz ,
z funkcji składowej klasy powstaje problem. Proszę o pomoc.

Z góry dzięki.


P-79019
pekfos
» 2013-03-21 16:25:37
Spróbuj przebudować projekt. (Rebuild all)
P-79024
fers334
Temat założony przez niniejszego użytkownika
» 2013-03-21 16:41:02
Niestety nic nie pomogło. Co może mieć na to wpływ. Jedyna różnica w tym ze zamiast w main robię to w innym pliku
i dołączam nagłówek w main , Może coś jest z funkcją rysującą podam kod :

C/C++
// -------------------------------------------------------- //
Plik gracz.h
// -------------------------------------------------------- //
#include <allegro.h>

class gracz
{
    BITMAP * postac;
   
public:
   
    gracz()
        : postac( 0 )
    {
        postac = load_bitmap( "postac_stojaca_w_miejscu.bmp", default_palette );
    }
    void rysuj_gracza( BITMAP * bufor )
    {
        masked_blit( postac, bufor, 0, 0, 0, 0, 47, 69 );
    }
   
   
};

// -------------------------------------------------------- //
plik main.cpp
// -------------------------------------------------------- //

#include <allegro.h>
#include "myszka.h"
#include "gracz.h"


volatile int speed_fps = 0;
void incremented_speed()
{
    speed_fps++;
}

LOCK_FUNCTION( incremented_speed );
LOCK_VARIABLE( speed_fps );


int main()
{
    allegro_init();
    mysz mysz_screen;
    gracz postac_gracza;
    // ------------------------------------------- //
    install_keyboard();
    install_mouse();
    install_timer();
    install_int_ex( incremented_speed, BPS_TO_TIMER( 100 ) );
    // ------------------------------------------- //
    set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 );
    clear_to_color( screen, makecol( 125, 125, 125 ) );
   
    show_mouse( screen );
    unscare_mouse();
   
    BITMAP * bufor = 0;
    bufor = create_bitmap( 800, 600 );
   
   
    while( !key[ KEY_ESC ] )
    {
        while( speed_fps > 0 )
        {
            mysz_screen.ustaw_wspolzende_myszy();
            mysz_screen.czytaj_wspolzedne_myszy( bufor );
           
           
            postac_gracza.rysuj_gracza( bufor );
            blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
            clear_to_color( bufor, makecol( 50, 50, 50 ) );
           
            speed_fps--;
        }
    }
   
   
    allegro_exit();
    return 1;
}
END_OF_MAIN();


Funkcje na myszce nie maja raczej znaczenia one tylko pobierają jej wspoł. i wypisują je na ekranie.
Sprawdziłem i nawet kopiując postać w main nadal jest to samo. Czym to jest spowodowane ze przy 8+ bitowej glębi kolorów postać wyświetla blednie ? Błąd musi być w wczytywaniu w klasie lub w przestarzałej bibliotece allegro 4.2 czy to tego może być wina ?
P-79027
pekfos
» 2013-03-21 17:19:58
Utwórz obiekt 'gracz'a po tuż przed pętlą główną.
P-79033
fers334
Temat założony przez niniejszego użytkownika
» 2013-03-21 17:24:05
O dzięki jest git.

A mam pytanie doradził byś w którym miejscu przy pisaniu wiekszych projektow umieszczas animacje ?

Animacje gracza w klasie gracza
animacje przeciwnika w klasie przeciwnik

czy all do klasy animacja czy jak ?
P-79034
« 1 »
  Strona 1 z 1