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

Obróbka sprite'a

Ostatnio zmodyfikowano 2010-04-12 19:15
Autor Wiadomość
lenrokskate
Temat założony przez niniejszego użytkownika
Obróbka sprite'a
» 2010-04-11 12:44:00
Mam taką grafikę samochodu (128x128):
jak nie działa kliknij link
jak nie działa kliknij link
http://zapodaj.net/images/cdf8fd726491.bmp

Niech mi ktoś go zrobi wg. tego wzoru:
jak nie działa kliknij link
jak nie działa kliknij link
http://www.easykoder.vot.pl/web/arty/obrazki/samochod.jpg

Tzn. pierwsza klatka to samochód jadący dokładnie na "wschód", a każda kolejna to samochód obrócony o kolejne 5 stopni w prawo. Ma być 18x4 czyli 72 kierunki.

Z góry dziękuję.
P-16005
pekfos
» 2010-04-11 13:11:02
napisz sobie do tego program.tj:
tworzysz bitmapę i pętlą wyświetlasz co a*ROZ_X pixeli
obraz obrócony o a*stopnie*360/256 i save_bitmap()
tyle, to proste jest a paintem tego nie zrobisz tak łatwo bo
obraca o pełne 90

To forum programistyczne! Myślisz że otworze painta i ci narysuje?

//edit: a to iterator ROZ_X Y to rozmiar samochodu

i pos y w bitmapie to ROZ_Y*a*stopnie/90
P-16006
lenrokskate
Temat założony przez niniejszego użytkownika
» 2010-04-11 13:45:59
taki obrót da się zrobić np. w gimpie ale tam potem gorzej odpowiednio ustawić bitmapę

niech ktoś to zrobi
P-16008
Bartaz
...
» 2010-04-11 14:19:58
Straszny  leń z ciebie, nawet nie poprosiłeś tylko "Niech mi ktoś go zrobi wg. tego wzoru:"to jak rozkaz :/ wątpię żeby ktoś ci to zrobił ,to nie strona z gotowcami...
Link nie działa...
P-16009
lenrokskate
Temat założony przez niniejszego użytkownika
» 2010-04-12 19:15:11
dobra, napisałem to:
C/C++
#include <allegro.h>
#include <cmath>

#define h 115
#define w 147

BITMAP * bufor = NULL;
BITMAP * sam = NULL;
int k;

int main()
{
    allegro_init();
    install_keyboard();
    set_color_depth( 32 );
    set_gfx_mode( GFX_AUTODETECT_WINDOWED, 1900, 460, 0, 0 );
    bufor = create_bitmap( 2646, 460 );
    if( !bufor ) {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Nie mogę utworzyć bufora !" );
        allegro_exit();
        exit( 0 );
    }
    clear_to_color( bufor, makecol( 255, 0, 255 ) );
    sam = load_bmp( "sam2.bmp", default_palette );
    if( !sam ) {
        set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 );
        allegro_message( "Brakuje obrazka!" );
        allegro_exit();
        exit( 0 );
    }
    for( int y = 0; y < 4 * h; y += h ) {
        for( int x = 0; x < 18 * w; x += w ) {
            rotate_sprite( bufor, sam, x, y, itofix( k * 5 * 256 / 360 ) );
            k++;
        }
    }
    save_bitmap( "sam.bmp", bufor, default_palette );
    blit( bufor, screen, 0, 0, 0, 0, 2304, 512 );
    readkey();
    allegro_exit();
    return 0;
}
END_OF_MAIN();
P-16077
« 1 »
  Strona 1 z 1