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 :) |
|
Mrovqa |
» 2012-09-16 16:50:31 Pomyśl teraz, na podstawie czego mamy Ci pomóc? Daj jakiś punkt zaczepienia, najlepiej kod. |
|
intothenether Temat założony przez niniejszego użytkownika |
» 2012-09-16 17:00:49 Funkcja rysująca mape : 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 :/ |
|
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. |
|
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ę. |
|
DejaVu |
» 2012-09-16 17:07:32 |
|
SeaMonster131 |
» 2012-09-16 17:08:10 Ja mapę izo rysuję tak: 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 |
|
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: 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 ); } } }
|
|
« 1 » 2 |