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

[Allegro] Mapa a współrzędne ekranu

Ostatnio zmodyfikowano 2009-07-21 18:13
Autor Wiadomość
wojownik266
Temat założony przez niniejszego użytkownika
[Allegro] Mapa a współrzędne ekranu
» 2009-07-21 13:12:09
Witam. Mamy taką przykładową definicję jakiejś tam sobie mapy:
C/C++
short int mapa[ 4 ][ 4 ] = {
    4, 4, 4, 4, 4 5, 5, 5, 5
};

Pod kazdą cyferką tej definicji znajduje się wycinek mapy. Teraz proszę mi powiedzieć jak przełożyć te cyferki na wspólrzedne ekranu. Tzn. chciałbym pierwsze pięć kafelków wyświetlić na dole ekranu a pozostałe na górze ekranu?
Rozdzielczość ekranu to np: 640x480. Jak tego dokonać?
P-8635
DejaVu
» 2009-07-21 14:38:17
Hm... jeśli nie potrafisz takich rzeczy zrobić lepiej zacznij czytać kurs C++. Nawet jeśli dostaniesz odpowiedź to i tak jej nie będziesz rozumiał.
P-8636
wojownik266
Temat założony przez niniejszego użytkownika
» 2009-07-21 14:43:53
Może jednak...? Czytam symfonię c++ J. Grębosza
P-8637
DejaVu
» 2009-07-21 15:04:14
Zadam więc Ci proste pytanie:
int klocek = rand() % 4;
Jak wyświetlić wycinek mapy w prawym dolnym rogu na który wskazuje zmienna klocek?
P-8638
wojownik266
Temat założony przez niniejszego użytkownika
» 2009-07-21 15:19:46
Tylko takie oto coś przychodzi mi do głowy:
C/C++
#include <allegro.h>

BITMAP * klocek = NULL;
BITMAP * bufor = NULL;
int klocek_1 = rand() % 4;

int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 16 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 );
    bufor = create_bitmap( 640, 480 );
    klocek = load_bmp( "cel.bmp", NULL );
    while( !key[ KEY_ESC ] )
    {
        clear_to_color( bufor, makecol( 0, 0, 0 ) );
        blit( klocek, bufor, 0, 0, klocek_1, 400, klocek->w, klocek->h );
        blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
    }
   
    destroy_bitmap( bufor );
    destroy_bitmap( klocek );
    allegro_exit();
    return 0;
}
END_OF_MAIN();
    //JCJ: Na przyszłość - nie stc tylko src
P-8640
wojownik266
Temat założony przez niniejszego użytkownika
» 2009-07-21 15:24:43
Sprostowanie na prawy dolny róg:
C/C++
clear_to_color( bufor, makecol( 0, 0, 0 ) );
blit( klocek, bufor, 0, 0, klocek_1 + 560, 400, klocek->w, klocek->h );
blit( bufor, screen, 0, 0, 0, 0, 640, 480 );
P-8642
DejaVu
» 2009-07-21 15:24:45
Linijka:
blit( klocek, bufor, 0, 0, klocek_1, 400, klocek->w, klocek->h );
Wyświetla zawsze ten sam klocek na pozycji x=0..3 (losowa), y=400. Ty chcesz (chyba), żeby klocek wyświetlił się w prawym dolnym rogu i w zależności od wartości klocek_1 wyświetliła się odpowiednia tekstura. Tak więc kombinuj dalej :)
P-8643
wojownik266
Temat założony przez niniejszego użytkownika
» 2009-07-21 15:45:56
To bardzo dziwne forum... Na zadane przez siebie pytanie trzeba odpowiedzieć sobie samemu... pierwszy raz mi to się zdarza ale niech tam!!
P-8645
« 1 » 2
  Strona 1 z 2 Następna strona