• 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

0 głosów
139 wizyt
pytanie zadane 1 stycznia 2016 w C i C++ przez GameProgrammer Obywatel (1,150 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,380 p.)
Namalować/wywołać_funkcję_odpowiedzialną_za_render później? Niezbyt rozumiem zaistniały problem.
komentarz 1 stycznia 2016 przez GameProgrammer Obywatel (1,150 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ź 110 wizyt
pytanie zadane 12 lutego 2021 w PHP przez Chris Black Początkujący (330 p.)
0 głosów
1 odpowiedź 99 wizyt
pytanie zadane 3 czerwca 2018 w Java przez Adrian Paź Obywatel (1,270 p.)
0 głosów
1 odpowiedź 829 wizyt

89,693 zapytań

138,297 odpowiedzi

309,243 komentarzy

59,623 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...