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

[SFML] Jak wygenerować listę sprajtów z scrollbarem

Ostatnio zmodyfikowano 2024-02-05 21:23
Autor Wiadomość
tBane
Temat założony przez niniejszego użytkownika
[SFML] Jak wygenerować listę sprajtów z scrollbarem
» 2024-02-05 20:59:25
Co to by była za gra RPG, gdyby nie posiadała inwentarza.
Otóż postanowiłem napisać "inwentarz" bochatera. I teraz są dwie możliwości - albo zrobić listę statyczną albo dynamiczną.
Chciałbym napisać tę drugą i kompletnie nie wiem za co się zabrać.
Napiszę co wiem i liczę na jakieś wasza wskazówki.

1: Nie wszystkie elementy listy są wyświetlane, tak więc sprawdzaj tylko te elementy które są aktualnie wyświetlane
2: Wartość scrolla nie określa indeksu początkowego do rysowania itemu lecz pozycję w pixelach
3: Rysuj te elementy które mieszczą się na palecie
4: Niektóre elementy nie są wyświetlanie całkowicie lecz częściowo - zadbaj o ich poprawne przycinanie
...

Tyle wiem.. nie za wiele. Liczę na jakieś wskazówki i czy da się w ogóle to zrobić w SFML ?


P-180651
DejaVu
» 2024-02-05 21:23:43
Wszystko się da, bo SFML używa OpenGL. Musisz użyć glScissor do przycinania obszaru. Czyli: aktywujesz przycinanie wskazując prostokąt, w którym można modyfikować scenę, a następnie renderujesz co chcesz. Po zakończeniu renderowania tej 'listy', wyłączasz przycinanie.

/edit:
Jak zorganizować pracę:
1. Zrób renderowanie 'inventory' bez scrollowania (nawet niech wychodzi poza ekran)
2. Zrób przesuwanie inventory za pomocą scrolla - narysuj prostokąt np. czerwony nad tym obszarem, aby upewnić się, że scroll działa dobrze i zawartość inventory mieści się w oczekiwanym obszarze
3. Użyj glScissor, aby ograniczyć renderowanie tego inventory.

Jaką strategię Ci polecam:
1. Zrób prosty 'inventory', który nie wymaga dużo energii
2. Zaimplementuj grę
3. Rozbuduj 'inventory', aby była zgodna z Twoją wizją

Punkt drugi sam w sobie jest wyzwaniem, więc nie trać za dużo energii na rzeczy, które da się w pierwszej kolejności zrobić 'prosto'. Podejście dynamiczne, ze scrollowaniem raczej wymaga sporo energii, jeżeli trzeba implementować narzędzia 'samodzielnie'.
P-180652
« 1 »
  Strona 1 z 1