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

[SFML 2.0] Wyświetlanie ramki nieregularnych wształtów

Ostatnio zmodyfikowano 2013-09-20 19:50
Autor Wiadomość
tomasz
Temat założony przez niniejszego użytkownika
[SFML 2.0] Wyświetlanie ramki nieregularnych wształtów
» 2013-09-20 12:56:54
Witam. Ponownie mam wątpliwości co do mojego rozwiązania problemu, dlatego postanowiłem znów zapytać o radę. Otóż mam mapę podzieloną na tereny (coś jak województwa). Chce zrobić tak, aby po wjechaniu na odpowiedni przycisk podświetlała się ramka danego terytorium. Udało mi się to zrobić jednak nie jestem przekonany co do tego rozwiązania. Mianowicie zrobiłem tak, że jeśli najedziemy na konkretny przycisk rysuje nowy rysunek, z odznaczoną na nim ramką i tak dla każdego przycisku osobno. Jednak problem pojawia się jeśli chciałbym wprowadzić nowe mapki (a myślę o tym) lub gdy chciałbym podświetlić dwa tereny na raz (także o tym myślę). Oczywiście jest to do zrobienia moim pomysłem, ale np podświetlenie w ten sposób dwóch terenów jednocześnie znacznie zwiększy ilość grafik do zrobienia.Czy ktoś miałby pomysł o udoskonalenie mojego pomysłu lub podsunięcie lepszego? Czy jednak mój sposób jest wystarczająco dobry (co mi się nie wydaje :)).
P-92349
DejaVu
» 2013-09-20 16:28:49
rysuj każde województwo osobono, a w sąsiedztwie województwa użyj kanału alfa. Wówczas możesz narysować n-województw tak, że obrazki będą na siebie najeżdżały, ale tylko te fragmenty, które są pokryte kanałem alfa i w konsekwencji będzie mapa wyglądała jak jeden rysunek. Potem podmieniasz tylko jedno/dwa województwa, które masz mieć zaznaczone i efekt swój masz osiągnięty.
P-92360
akwes
» 2013-09-20 16:33:00
Wszystko zależy jakie ma być to zaznaczenie (czyli ile bajerów). Dwie najprostsze drogi: jeżeli zależy Ci na czymś, co będzie się samo generowało to można pomyśleć o
void sf::Sprite::setColor( const Color & color )
. Jeżeli chcesz ładniejsze zaznaczenie a równie nieskomplikowane logicznie to można faktycznie użyć dwóch tekstur.

Jeżeli myślisz o czymś bardziej zaawansowanym i ładnym to zawsze można pomyśleć o jakimś bogatszym transformowaniu tekstury.

Być może nie głupio będzie pomyśleć o ułożeniu województwa z hexów jak w C5 Wtedy liczba tekstur zmniejsza się diametralnie, a tylko mapa pamięta który hex gdzie należy.
P-92362
tomasz
Temat założony przez niniejszego użytkownika
» 2013-09-20 17:56:37
DejaVu co rozumiesz przez użycie kanału alfa w sąsiedztwie województwa? Wiem co to jest kanał alfa, ale nie rozumiem jak miałbym to zrobić?

Akwes chodzi raczej o proste rozwiązanie, zwykłe podświetlenie granic terenu. Zależy mi tylko aby troszkę to wycieniować, aby zbytnio nie raziło w oczy.
P-92370
akwes
» 2013-09-20 18:19:34
@tomasz, DejaVu Ci tłumaczył w jaki sposób zrobić z województw ładną mapę, ale z tego co się wyczytałem to już masz to zrobione.


chodzi raczej o proste rozwiązanie
Proste będzie podświetlenie całego województwa przez zmianę koloru sprajta funkcją, którą Ci podałem. Proste będzie również zrobienie tekstur dla każdego województwa z ramką.


Programowe wykrywanie krawędzi będzie bardziej skomplikowane. Oczywiście, można by spróbować przeskalować teksturę województwa na mniejszą, ustawić ją w jego środku, i następnie za pomocą samych zabaw z sf::BlendMode uzyskać ramkę. Cieniowanie pewnie można by uzyskać, rozmazując ramkę jakimś shaderem we wszystkie strony i znów bawiąc się sf::BlendMode zastosować to do tekstury z pierwotną ramką i potem z tego korzystać. Jednak taka metoda to tylko moje przypuszczenie i nie wiadomo czy w praniu by nie wyszły dodatkowe problemy. Poza tym generowanie takich ramek za każdym razem będzie niepotrzebnie zabierać czas, bo przecież mogłyby już być gotowe na dysku jak w jednym z prostszych przypadków.
P-92375
tomasz
Temat założony przez niniejszego użytkownika
» 2013-09-20 18:54:49
Czyli jeśli dobrze rozumiem, zrobić każde województwo osobno, ustawić je aby razem tworzyły mapę i dodatkowo zrobić to samo z drugimi województwami ale z ramkami i wyświetlać je kiedy będzie potrzebna ramka?
P-92379
akwes
» 2013-09-20 19:04:34
@tomasz, tak. Możesz też zamiast całego województwa zrobić tylko grafikę ramek i wyświetlać ją na obrazku województwa (województwo + ew. ramka, zamiast województwo z ramką/województwo bez ramki).
P-92381
tomasz
Temat założony przez niniejszego użytkownika
» 2013-09-20 19:10:49
Dokładnie tak robię, jedne grafiki województw z czarnymi ramkami, a drugie tylko ramki, które będą kolorowe. Ale tutaj pojawia się moje pytanie o tym pewnie pisał DejaVu, a ja tego nie zrozumiałem. Chodzi właśnie o to przenikanie. Bo wyświetlając samą ramkę będę chciał wyświetlić tylko ją, bez białej pustki w środku. I jak właśnie to zrobić, domyślam się, że chodzi o ten kanał alfa, ale jak? Czy mogę ustawić aby przenikał np konkretny kolor, a biały który jest w środku już nie?
P-92382
« 1 » 2
  Strona 1 z 2 Następna strona