SeaMonster131 Temat założony przez niniejszego użytkownika |
[C++, Allegro 5] Wyświetlanie na odpowiednim miejscu » 2011-04-05 21:06:02 Otóż mam problem... Kiedy na mapie (kafelkowej) pojawi się pochodnia, chce żeby rozświetlało 2 kratki w lewo,prawo,do góry i na dół. Na środku problemu nie mam, lecz z tymi kierunkami to już mam ;( if( map[ y ][ x ] == 15 ) { al_draw_tinted_bitmap( czarne, al_map_rgba_f( 1, 1, 1, 0 ), x * 50, y * 50, 0 ); al_draw_tinted_bitmap( czarne, al_map_rgba_f( 1, 1, 1, 0 ),( x - 1 ) * 50, y * 50, 0 ); } Wyświetlam sobie kafelek całkowicie przezroczysty na współrzędnych x*50, y*50, teraz chcę sobie wyświetlić tak samo ten kafelek, ale na współrzędnych (x-1)*50 lecz już sie niestety nie wyświetla (czyli chce go wyświetlić kratkę wcześniej). Jak mam to zapisać żeby to jakoś poprawnie działało..? :) |
|
McAffey |
» 2011-04-05 22:09:10 Nie rozumiem, nie możesz po prostu zrobić x * 50 - 50 (po lewej), x * 50 + 50 (po prawej), y * 50 - 50 (na górze) i y * 50 + 50 (na dole) ? |
|
ison |
» 2011-04-05 23:43:40 generalnie wyświetlanie białego prostokąta z pewną alphą to zły pomysł na oświetlenie :) |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2011-04-06 15:18:51 @McAffey: Próbowałem tak, lecz i tak to nie działa ehh ;/ for( int y = 0; y < 100; y++ ) { for( int x = 0; x < 100; x++ ) { if(( hero.x + map_x ) >=(( x * 50 ) - 1300 ) && ( hero.x + map_x ) <=(( x * 50 ) + 1300 ) && ( hero.y + map_y ) >=(( y * 50 ) - 1300 ) && ( hero.y + map_y ) <=(( y * 50 ) + 1300 ) ) { if( map[ y ][ x ] == 15 ) { al_draw_tinted_bitmap( czarne, al_map_rgba_f( 1, 1, 1, 0 ), x * 50 - 50, y * 50, 0 ); } else al_draw_tinted_bitmap( czarne, al_map_rgba_f( 1, 1, 1, noc / 720 ), x * 50, y * 50, 0 ); } } } @ison: Pomijając to, że kwadrat jest czarny, to dlaczego to jest zły pomysł na oświetlenie? :) |
|
McAffey |
» 2011-04-06 16:03:50 Tylko musisz wyświetlać jednocześnie 4 razy, dla wszystkich stron świata naraz. |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2011-04-06 16:39:46 @up: znaczy sie, x*50+50, x*50-50, y*50-50, y*50+50, mam wyświetlać tak? (bo nie do końca zrozumiałem o co Ci chodzi.. ;p) Jeżeli tak, to tak robie, ale nic sie nie pojawia ;/
#aa..już wiem w czym tkwi błąd. Po prostu rysowałem ten kafelek cały przezroczysty, na tym ciemniejszym kafelku. Dlatego go nie było widać. ehh :) |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2011-04-06 17:24:13 Ok..temat zamykam :) Dzięki wszystkim za chęć pomocy :) (Jakby ktoś chciał, to zrobiłem to dodając jeszcze jedną mapkę dostosowaną do cieni itd) if( map[ y ][ x ] == 15 ) { map2[ y ][ x ] = 15; map2[ y - 1 ][ x ] = 15; map2[ y + 1 ][ x ] = 15; map2[ y ][ x - 1 ] = 15; map2[ y ][ x + 1 ] = 15; map2[ y + 1 ][ x + 1 ] = 15; map2[ y - 1 ][ x - 1 ] = 15; map2[ y - 1 ][ x + 1 ] = 15; map2[ y + 1 ][ x - 1 ] = 15; } else if( map2[ y ][ x ] != 15 ) al_draw_tinted_bitmap( czarne, al_map_rgba_f( 1, 1, 1, noc / 720 ), x * 50, y * 50, 0 ); |
|
« 1 » |