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

[SFML] Problem kontaktu z użytkownikiem, menu i zarządzanie sprite'ami

Ostatnio zmodyfikowano 2019-01-20 14:09
Autor Wiadomość
paula1902
Temat założony przez niniejszego użytkownika
[SFML] Problem kontaktu z użytkownikiem, menu i zarządzanie sprite'ami
» 2019-01-20 12:14:01
Mam pewien problem. Mam za zadanie stworzyć program do tworzenia prostych planów pomieszczeń. Dla uproszczenia będzie to jedno prostokątne pomieszczenie. Każdy mebel jest osobną podklasą klasy wirtualnej. Chcę umożliwić użytkownikowi wstawienie wybranego mebla, jego obrót, przesuwanie oraz zmianę koloru. Każda podklasa to osobny obrazek wczytany z pliku png do sprite'a.
Myślałam o tym, żeby wszystkie dodane przez użytkownika elementy przechowywać w liście wskaźników na elementy, żeby potem w pętli głównej sprawdzać wydarzenia dla każdego z nich oraz rysować całą listę. Czy to dobry pomysł? Da się może zrobić to prościej? Bo w tym wypadku trzeba będzie zapewnić identyczną obsługę dla każdej klasy, a więc identyczną funkcję ale w każdej klasie i jeszcze sprawdzanie zdarzenia.

Problem jest w tym, jak najprościej kontaktować się z użytkownikiem. Planowałam sprawdzać, czy wklejony sprite nie  jest kliknięty, a jeśli jest to umożliwić np przesuwanie o pewien krok za pomocą strzałek, ale wtedy po każdym kroku trzeba od nowa klikać na ten obiekt.

Najgorszy problem tkwi w tym, jak umożliwić wstawianie elementu.. Szukałam jakiś tutoriali, czegokolwiek, jak zrobić menu, ale wszystko co znalazłam, to proste menu gry - które znika np po wybraniu PLAY. A ja muszę mieć stały podgląd do menu. Chyba, że dodać w oknie ikonę wstawiania i dopiero wtedy wyświetlić menu takie do wyboru elementu?

W jaki sposób można to wszystko zrobić w najprostszy sposób?
P-173617
pekfos
» 2019-01-20 13:08:57
Bo w tym wypadku trzeba będzie zapewnić identyczną obsługę dla każdej klasy, a więc identyczną funkcję ale w każdej klasie
Podejście obiektowe jest najprostszym rozwiązaniem. Nie rozumiem o co ci chodzi. Jakieś funkcje będą musiały być zdefiniowane dla każdej klasy obiektu, ale jeśli musisz kopiować kod, to robisz to źle.

Planowałam sprawdzać, czy wklejony sprite nie  jest kliknięty, a jeśli jest to umożliwić np przesuwanie o pewien krok za pomocą strzałek, ale wtedy po każdym kroku trzeba od nowa klikać na ten obiekt.
Nie widzę powodu, dla którego trzeba by za każdym razem klikać na obiekt.

Najgorszy problem tkwi w tym, jak umożliwić wstawianie elementu.. Szukałam jakiś tutoriali, czegokolwiek, jak zrobić menu, ale wszystko co znalazłam, to proste menu gry - które znika np po wybraniu PLAY. A ja muszę mieć stały podgląd do menu. Chyba, że dodać w oknie ikonę wstawiania i dopiero wtedy wyświetlić menu takie do wyboru elementu?
SFML to biblioteka graficzna, nie GUI. Możesz zrobić sobie dowolny interfejs, o ile sama go zaimplementujesz. Jeśli chcesz gotowych rozwiązań, musisz użyć dodatkowej biblioteki.
P-173618
paula1902
Temat założony przez niniejszego użytkownika
» 2019-01-20 13:46:52
Chodziło mi o to, że będą w zasadzie takie same, ale będzie obsługiwać konkretną klasę. Zle myślę?

Czyli da się tak zrobić, żeby do powiedzmy kliknięcia na inny obiekt lub wybrania menu wstawiania, będzie się obsługiwać dany obiekt?

A więc łatwiej i szybciej będzie zrobić zmianę widoku okna po kliknięciu na jakiś konkretny klawisz (menu wstawiania obiektu), utworzenie menu w jakimś osobnym oknie, czy użyć jakiejś dodatkowej biblioteki? I czy pomysł z listą już wstawionych elementów jest dobry? Z góry bardzo dziękuję za wszystkie podpowiedzi. To mój pierwszy program graficzny.
P-173619
pekfos
» 2019-01-20 14:09:33
Chodziło mi o to, że będą w zasadzie takie same, ale będzie obsługiwać konkretną klasę. Zle myślę?
Klasy twórz dla obiektów różniących się zachowaniem, nie parametrami. Jeśli dwie klasy mają być "w zasadzie takie same", to być może to nie powinny być dwie klasy.

Czyli da się
Tak.

A więc łatwiej i szybciej będzie zrobić zmianę widoku okna po kliknięciu na jakiś konkretny klawisz (menu wstawiania obiektu), utworzenie menu w jakimś osobnym oknie, czy użyć jakiejś dodatkowej biblioteki?
Łatwo i szybko są subiektywne. Mogę najwyżej powiedzieć, co jest najprostsze, ale muszę wiedzieć co dokładnie chcesz osiągnąć. Jeśli byle co, byle działało, to pierwsza opcja jest najmniej wymagająca.
P-173620
« 1 »
  Strona 1 z 1