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. |
|
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"; |
|
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 ... : | |
|
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. |
|
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? |
|
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.
|
|
akwes |
» 2011-10-24 21:37:30 void sf::Sprite::SetSubRect( const IntRect & SubRect )
Gdzieś sobie trzymasz jeszcze te dane I na podstawie tego wyznaczasz sobie IntRect. A poruszanie rozwiązujesz przez if( wcisnieto literke A ) X--;
Ewentualnie trzymasz gdzieś (np. w klasie) po prostu tego Recta i go zmieniasz dokumentacja odnosnie sf::RectWcześniej pisałeś 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 |
|
1 « 2 » |