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

[SFML] Wyciecie kawałka spritu.

Ostatnio zmodyfikowano 2011-10-24 21:37
Autor Wiadomość
blojayble
» 2011-10-23 20:16:59
Ewentualnie mogło mu chodzić o przesunięcie wyświetlanego kawałka względem całego sprite'a.(Aby wyświetlało jego inną część.) Wtedy wystarczyło by odpowiednio zmienić parametry Rect.
P-42594
Fletcher
Temat założony przez niniejszego użytkownika
» 2011-10-23 20:48:33
SPRITE.SetSubRect( sf::IntRect( 30, 40, 20, 20 ) );
 Wróciłem dalej do zabawy z  sf::Rect tyle że nadal nie potrafię tego przesunąć ;/. Co prawda po wpisaniu 30,40 kwadrat przesunął mi się, tyle że w przeciwnym kierunku co chciałem(Zaczął chować się za okienką ). Po dodaniu minusa przesunął się w właściwa stronę tyle że jego starej pozycji powstał jakiś "cien"; 
P-42606
akwes
» 2011-10-23 22:08:13
Em... Jeżeli nie powiesz dokładnie o co Ci chodzi to ciężko będzie Ci pomóc, bo teraz widzę że nie chodzi o żadną z dwóch rzeczy o których mówiłem ... : |
P-42622
Fletcher
Temat założony przez niniejszego użytkownika
» 2011-10-23 22:42:25
Mając do dyspozycji jakiś obrazek chce aby był wyświetlany tylko wybrany fragment, np środek pomijając przy tym wszystko poza wyznaczonym do tego obszarem.

blit( obrazek1, screen, 0,0, 100,100, obrazek1->w, obrazek1->h);
Jest to chyba najważniejsza funkcja poznana w dzisiejszej lekcji i jedna z najważniejszych w Allegro. Służy do bezpośredniego kopiowania fragmentu jednej bitmapy na drugą. Jej argumenty to :
bitmapa z której chcemy coś skopiować,
]bitmapa na którą chcemy coś skopiować,
X,Y lewego górnego rogu wycinka prostokątnego fragmentu odnoszące się do bitmapy źródłowej.
pozycja X,Y kopiowanego fragmentu na bitmapie docelowej.
Ostatnie dwa to szerokość i wysokość wycinka danych odnoszącego się do bitmapy źródłowej.

Z tego co pamiętam to pozwalało uzyskać wybrany wycinek danego fragmentu.
P-42635
akwes
» 2011-10-23 22:48:28
Ok a teraz zdefiniuj przesuwając się.

Wycięty fragment, nie zmieniając swojego wyglądu ma się poruszać po ekranie
czy
Wycięty fragment ma się poruszać po obrazku, pokazując inne jego części?
P-42636
Fletcher
Temat założony przez niniejszego użytkownika
» 2011-10-24 15:28:24
"Wycięty fragment ma się poruszać po obrazku, pokazując inne jego części?" Tak.
P-42658
akwes
» 2011-10-24 21:37:30
C/C++
void sf::Sprite::SetSubRect( const IntRect & SubRect )

Gdzieś sobie trzymasz jeszcze te dane
C/C++
int X, Y; // pozycja
int W, H; // rozmiar
I na podstawie tego wyznaczasz sobie IntRect. A poruszanie rozwiązujesz przez
C/C++
if( wcisnieto literke A )
     X--;

Ewentualnie trzymasz gdzieś (np. w klasie) po prostu tego Recta i go zmieniasz
dokumentacja odnosnie sf::Rect

Wcześniej pisałeś
C/C++
SPRITE.SetSubRect( sf::IntRect( 30, 40, 20, 20 ) );
Powiesz mi co to jest za kwadrat skoro go rysujesz od .... strony?
u Ciebie górny lewy róg to (30,40) natomiast dolny prawy to (20,20). Narysuj sobie to to zobaczysz że kwadrat jest dziwny.

Na kwadrat polecam przyjąć taką konsekwencje:
X,Y <- punkt, górnego lewego rogu
X+dlugosc, Y+wysokosc <= pinkt dolny prawy
i wtedy latwo przesuwasz zmieniając wartość X i Y
P-42699
1 « 2 »
Poprzednia strona Strona 2 z 2