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

[SFML 2.0] Różne przyciski ale ta sama akcja

Ostatnio zmodyfikowano 2013-08-22 22:55
Autor Wiadomość
tomasz
Temat założony przez niniejszego użytkownika
[SFML 2.0] Różne przyciski ale ta sama akcja
» 2013-08-13 11:55:09
Witam, nie do końca umiem przedstawić swój problem ale postaram się najlepiej jak mogę :). Otóż chce wyświetlić na ekranie kilka (kilkanaście) przycisków. Chodzi o to, że chce aby były przypisane do jednej akcji, tzn. że jeśli będę miał na przykład coś takiego:

C/C++
if( przycisk wci ś ni ę ty )
{
    //
}

To niezależnie od tego czy wcisnę przycisk 1 czy 5 instrukcja if będzie wywołana. Od razu nadmieniam, że nie chodzi mi o samą konstrukcję klikania (pobranie współrzędnych primitywu, kursora i zdarzenia klikania). Wiem, że można by to zaifować osobno na każdy przycisk, ale byłoby to w przypadku 16 przycisków 16 ifów, a nie wydaje mi się to dobry rozwiązaniem w takiej sytuacji. Problem polega na tym, że po naciśnięciu chce pobierać np dane z któregoś przycisku. Czy ktoś, mógłby mnie nakierować którąś stronę?
P-90115
pekfos
» 2013-08-13 11:57:21
C/C++
if( przycisk1 || przycisk2 || itd )
{ }
P-90116
MrPoxipol
» 2013-08-13 11:58:43
Tablica (vector) z przyciskami. Dla 16 przycisków:
C/C++
for( int i = 0; i < 15; ++i )
{
    if( przycisk_wcisniety[ i ] )
         funkcja();
   
}
I to w eventach.
P-90117
tomasz
Temat założony przez niniejszego użytkownika
» 2013-08-13 12:25:47
Myślałem o tym, ale nie wiedziałem jak zrobić taką tablice, ale teraz pomyślałem że to powinno być banalne. Czy taka tablica przycisków powinna wyglądać tak?

C/C++
sf::RectangleShape przyciski[ 15 ];

I jeszcze pytanie odnośnie zastosowania pętli for którą pokazałeś. Ponieważ czytając kursy, wyczytałem, że stosując pętle w głównej pętli programu, ograniczamy wykonywane programu do jednego wątku jednocześnie (pewnie pisze zagmatwanie, chodzi mi o przykład w przypadku ruchu punktu. Nie robi się tego pętlą, a odejmowanie lub dodawanie wartości do współrzędnych. Nie wiem czy wiesz o co mi chodzi?) Tak więc czy taką pętle można w głównej pętli programu zastosować? Mój program, nie będzie jakoś specjalnie wielowątkowy, ale wolę się zapytać o takie techniczne szczegóły.

Pekfos, Twoje rozwiązanie byłoby dobre gdybym nie musiał z każdego przycisku pobrać innych danych po wciśnięciu.
P-90120
MrPoxipol
» 2013-08-13 13:03:26
Nie powinno być różnicy z ręcznym użyciem.
P-90122
tomasz
Temat założony przez niniejszego użytkownika
» 2013-08-13 17:53:35
Dzięki, MrPoxipol, działa pięknie:)
P-90180
tomasz
Temat założony przez niniejszego użytkownika
» 2013-08-20 12:03:33
Witam ponownie. Niestety po zwiększeniu liczby przycisków program nie działa już tak pięknie. Przy klikaniu w przycisk nie zawsze działa akcja wciśnięcia. Domyślam się, że nie zawsze trafiamy w czasie na odpowiednią wartość w pętli for, ale jak można by to rozwiązać?
P-90596
MrPoxipol
» 2013-08-20 13:00:04
Pokaż kod.
P-90600
« 1 » 2 3
  Strona 1 z 3 Następna strona