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

[SFML 1.6]Pytania związane z shape i funkcjami i obrazki.

Ostatnio zmodyfikowano 2012-12-28 03:19
Autor Wiadomość
marcin107
Temat założony przez niniejszego użytkownika
[SFML 1.6]Pytania związane z shape i funkcjami i obrazki.
» 2012-12-27 00:12:11
Witam, mam kilka pytań odnośnie biblioteki SFML. Zacząłem tworzyć menu, a w menu odpowiednie buttony. Buttony tworzę za pomocą shape, ale później trzeba dodać obsługę eventów i w związku z tym mam pytanie czy można odwołać się do eventu myszka klika w obiekt zamiast if'ować wszystkie współrzędne obiektu?
C/C++
if( Event.Type == Event::MouseButtonPressed )
{
    MouseX = Input.GetMouseX();
    MouseY = Input.GetMouseY();
    // Chodzi o tego ifa, czy nie można zrobić po prostu eventa myszka klika w utworzony shape?
    if( MouseX >= 514 && MouseX < 758 && MouseY >= 217 && MouseY < 256 )
    // ...
}
Druga sprawa to kolejne osobne funkcję.
Pierwotnie jest się w int main(), ale po przejściu z menu głównego do gry(tzn start gry) chciałbym kolejne części algorytmów umieścić np. w void gra(), tylko wtedy czy można tworzyć kolejne while (App.IsOpened()) ? I czy wtedy wszystko jakby będzie działać normalnie?

Trzecie pytanie to jak zrobić, żeby bo najechaniu na przycisk(tzn. prostokąt z shape) w menu, żeby na przycisku pokazała się ramka z osobnego pliku bez tła?

Bardzo proszę o odpowiedź na powyższe pytania i ewentualne ich wyjaśnienie.
P-72051
DejaVu
» 2012-12-27 04:41:27
Z dokumentacji wynika, że nie ma takiej możliwości (może coś przeoczyłem bo na szybko sprawdzałem) - no ale przecież zawsze można sobie funkcję do tego napisać:
C/C++
if( czyZaznaczony( oknoAplikacji, obiekt ) && czyKliknieto( LewyPrzycisk ) )
{
    //...
} //if
P-72057
SeaMonster131
» 2012-12-27 10:44:55
Druga sprawa to kolejne osobne funkcję.
Pierwotnie jest się w int main(), ale po przejściu z menu głównego do gry(tzn start gry) chciałbym kolejne części algorytmów umieścić np. w void gra(), tylko wtedy czy można tworzyć kolejne while (App.IsOpened()) ? I czy wtedy wszystko jakby będzie działać normalnie?
Ja zawsze robię to w mniej więcej taki sposób:
C/C++
enum GameMode { e_gameplay, e_menu } gm;
gm = e_menu;

...

while()
{
    if( gm == e_menu )
         wys_menu();
   
    if( gm == e_gameplay )
         wys_gameplay();
   
}

Trzecie pytanie to jak zrobić, żeby bo najechaniu na przycisk(tzn. prostokąt z shape) w menu, żeby na przycisku pokazała się ramka z osobnego pliku bez tła?
Moim zdaniem najlepiej jest użyć *.png z przezroczystością.
P-72061
Mrovqa
» 2012-12-27 17:15:34
Tryby (stany) gry można też ładnie zrobić z pomocą klas i dziedziczenia :)

Pierwotnie jest się w int main(), ale po przejściu z menu głównego do gry(tzn start gry) chciałbym kolejne części algorytmów umieścić np. w void gra(), tylko wtedy czy można tworzyć kolejne while (App.IsOpened()) ? I czy wtedy wszystko jakby będzie działać normalnie?
Możesz.
P-72099
marcin107
Temat założony przez niniejszego użytkownika
» 2012-12-27 22:59:52
A jak zrobić, żeby wyświetlało daną ramkę tylko i tylko wtedy kiedy myszka znajduje się w danym zasięgu X,Y.
Udało mi się zrobić, że się wyświetla ramka.png po najechaniu na obszar, ale nie umiem później tego wyczyścić...
P-72144
DejaVu
» 2012-12-28 03:19:19
Jeden temat = jeden problem. Obecnie zadajesz kolejne pytania, które mają zaspokoić tylko i wyłącznie Twoje potrzeby, a nie stanowić pomocną informację dla osób potomnych. Załóż osobny temat, nazwij go odpowiednio i wtedy można dyskutować na konkretny temat.
P-72157
« 1 »
  Strona 1 z 1