[SFML] Jak wygenerować listę sprajtów z scrollbarem
Ostatnio zmodyfikowano 2024-02-05 21:23
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 ? |
|
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'. |
|
« 1 » |