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: 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ć? |
|
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ł. |
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2009-07-21 14:43:53 Może jednak...? Czytam symfonię c++ J. Grębosza |
|
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? |
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2009-07-21 15:19:46 Tylko takie oto coś przychodzi mi do głowy: #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 |
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2009-07-21 15:24:43 Sprostowanie na prawy dolny róg: 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 );
|
|
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 :) |
|
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!! |
|
« 1 » 2 |