• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[SFML 2] Kolejność wyświetlania obrazków

Object Storage Arubacloud
0 głosów
178 wizyt
pytanie zadane 1 stycznia 2016 w C i C++ przez GameProgrammer Obywatel (1,140 p.)
Mam klasę Tiles, i w tej klasie znajduje się też obrazek z ekwipunkiem. Po namalowaniu wszystkich bloków i otworzeniu skrzynki, obrazek ekwipunku jest przykryty pod innymi blokami. Jak wyświetlić to w odpowiedniej kolejności?

2 odpowiedzi

+1 głos
odpowiedź 1 stycznia 2016 przez niezalogowany

W SFML (i ogólnie) rysowanie obiektów odbywa się podobnie jakbyś robił to np w Paincie:

window.clear(); // <- czyści poprzednią scenę i wypełnia ją jakimś kolorem
window.draw(obj1); // <- rysuje obiekt 1 przykrywa obszar na jakiejś pozycji
window.draw(obj2)l // <- jeżeli obiekt 1 znajduje się chociaż częściowo w miejscu gdzie powinien się pojawić obiekt 2, to ten fragment obj1 zostanie przysłonięty przez obj2

Obiekty są nakładane warstwowo (mam nadzieję, że wiesz o co mi chodzi), jeżeli chcesz aby określone obiekty były rysowane np zawsze na wierzchu to warto zastosować jakiś system warstw (np każdemu kaflowi nadać jakąś liczbę (nie musi być unikalna), a następnie przed rysowaniem sortujesz kafle wg warstwy na której się znajdują i dopiero wtedy rysujesz obiekty.

Np kafle: Tile1,Tile2, ... Tile5 mają ustawioną wartość layer na 1, z kolei Tile6 layer ma ustawiony na 2: oznacza, to że Tile6 zostanie narysowany dopiero po narysowaniu wszystkich obiektów Tile1-5.

 

0 głosów
odpowiedź 1 stycznia 2016 przez MetGang Nałogowiec (34,360 p.)
Namalować/wywołać_funkcję_odpowiedzialną_za_render później? Niezbyt rozumiem zaistniały problem.
komentarz 1 stycznia 2016 przez GameProgrammer Obywatel (1,140 p.)
Jest obiekt który zawiera dwa sprity.

1 . Obrazek kafla

2.Obrazek kafli ekwipunku - w przypadku gdy jest to skrzynia

oba sprity malowane są wewnątrz

draw(sf::RenderTarget& target, sf::RenderStates states) const

Jeżeli otworzy się skrzynie i namaluje też kafle ekwipunku, są przykrywane przez inne sprity, czyli obrazki kafli innych obiektów.

No a nie można stworzyć dwóch metod

draw(sf::RenderTarget& target, sf::RenderStates states) const

żeby najpierw wywołać jedną do malowania jednych elementów danego obiektu, a potem te inne.

Podobne pytania

0 głosów
1 odpowiedź 141 wizyt
pytanie zadane 12 lutego 2021 w PHP przez Chris Black Początkujący (330 p.)
0 głosów
1 odpowiedź 207 wizyt
pytanie zadane 3 czerwca 2018 w Java przez Adrian Paź Obywatel (1,270 p.)
0 głosów
1 odpowiedź 1,197 wizyt

92,551 zapytań

141,395 odpowiedzi

319,526 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...