| 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 |