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

[Allegro] Mapa izometryczna

Ostatnio zmodyfikowano 2012-09-16 18:47
Autor Wiadomość
intothenether
Temat założony przez niniejszego użytkownika
[Allegro] Mapa izometryczna
» 2012-09-16 16:20:17
Witam otóż mamy z kolegą taki problem że robimy grę izometryczną ,i musimy obliczyć kratkę na mapie na której znajduje się myszka .I tutaj pojawia się problem jak to obliczyć ?
Możliwe że źle rysujemy mapę ,jak chcecie to możemy podać kod .Proszę o pomoc :)
P-65054
Mrovqa
» 2012-09-16 16:50:31
Pomyśl teraz, na podstawie czego mamy Ci pomóc? Daj jakiś punkt zaczepienia, najlepiej kod.
P-65057
intothenether
Temat założony przez niniejszego użytkownika
» 2012-09-16 17:00:49
Funkcja rysująca mape :
C/C++
void SetIView( BITMAP * buffer, BITMAP * angleBMP )
{
    for( i = 0; i < 20; i++ )
    {
        for( j = 0; j < 40; j++ )
        {
           
            if( map[ i ][ j ] == 0 ) masked_blit( angleBMP, buffer, 0, 0, j * 16,( 32 / 4 ) *( j + i * 2 ), 32, 32 );
           
           
        }
    }
}
A z myszą nie zrobiliśmy nic działającego :/
P-65059
DejaVu
» 2012-09-16 17:04:09
Przecież ten kod nawet mapy dobrze nie wyświetla...

/edit:
Poza tym najpierw zróbcie projekt w oparciu o mapę kafelkową żeby zdobyć doświadczenie w pracy zespołowej i innych aspektach, a nie zabraliście się za coś czego samodzielnie rozwiązać nie potraficie.
P-65061
intothenether
Temat założony przez niniejszego użytkownika
» 2012-09-16 17:06:36
Oto właśnie chodzi że pierwszy raz robimy grę z widokiem izometrycznym.
To jak prawidłowo napisać funkcje która by taką mapę wyświetlała ??

Robiliśmy gry z mapą kafelkową i wszystko było dobrze ale nigdy jeszcze nie stosowaliśmy takiego widoku.
Wiem jak zrobić funkcje która wyświetlała by zwykłą mapę.
P-65062
DejaVu
» 2012-09-16 17:07:32
Frazy, które należy wpisać w wyszukiwarkę google:
P-65063
SeaMonster131
» 2012-09-16 17:08:10
Ja mapę izo rysuję tak:
C/C++
for( int y = 0; y < mapH; y++ )
{
    for( int x = 0; x < mapW; x++ )
    {
        xx =( x - y ) *( TILE_SIZE_W / 2 );
        yy =(( x - 1 ) +( y - 1 ) ) *( TILE_SIZE_H / 2 );
       
        if( map[ y ][ x ] == 0 )
             al_draw_scaled_bitmap( TILE_grass, 0, 0, bitmapW( TILE_grass ), bitmapH( TILE_grass ), xx - cameraX, yy - cameraY, TILE_SIZE_W, TILE_SIZE_H, 0 );
       
    }
}
Z myszą kombinowałem i nic nie wykombinowałem. Na angielskim forum powiedzieli, żebym ze wzoru (xx, yy) wyliczył sobie x i y, lecz nie zrobiłem tego jeszcze ;P
P-65064
intothenether
Temat założony przez niniejszego użytkownika
» 2012-09-16 17:36:33
http://imageshack.us/a/img837/3303/graizo.png
 Oto co mi wyświetla gdy kompiluje z tym kodem :/
Coś źle zrobiłem ?? Oto kod:
C/C++
void SetIView( BITMAP * buffer, BITMAP * angleBMP )
{
    for( i = 0; i < 40; i++ )
    {
        for( j = 0; j < 40; j++ )
        {
            xx =( j - i ) *( 32 / 2 );
            yy =(( j - 1 ) +( i - 1 ) ) *( 32 / 2 );
           
            if( map[ i ][ j ] == 0 )
                 masked_blit( angleBMP, buffer, 0, 0, xx, yy, 32, 32 );
           
        }
    }
}
P-65071
« 1 » 2
  Strona 1 z 2 Następna strona