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

SFML Poruszanie obiektów/aktywacja obiektów

Ostatnio zmodyfikowano 2015-03-15 21:25
Autor Wiadomość
Brunon3
» 2015-03-14 22:43:25
Tworzysz tablicę (niekoniecznie dynamiczną) typu
bool
, o rozmiarze takim, jak ilość kwadratów. Gdy klikniesz na kwadrat nr 1, zmieniasz na
true
 
tablica[ 1 ]
, a gdy klikniesz ponownie, zmieniasz tą komórkę tablicy na
false
, i tak ze wszystkimi. ;)

Proste.

-BD.
P-128411
michal11
» 2015-03-14 22:43:40
@Lora

Twoje rozwiązanie z timerem nie jest chyba najlepsze. Do obsługi pojedynczych kliknięć powinno się stosować sf::Event.
P-128412
Lora
» 2015-03-14 22:53:53

Rzeczywiście w pętli zdarzeń lepiej to wychodzi. Tylko musisz używać warunków
zdarzenie.type == sf::Event::MouseButtonReleased /*(albo MouseButtonPressed)*/ && zdarzenie.mouseButton.button == sf::Mouse::Left
 zamiast sf::Mouse::isButtonPressed.
P-128413
miro741
Temat założony przez niniejszego użytkownika
» 2015-03-14 23:04:14
czyli chwila bo się pogłubiłem jak ma wyglądać Event do klikania aby działał w moim programie ??
P-128416
Brunon3
» 2015-03-14 23:06:53
Tak jak napisała to @Lora.
Tamten kod umieść w pętli zdarzeń (w if'ie).

-BD.
P-128418
miro741
Temat założony przez niniejszego użytkownika
» 2015-03-14 23:14:08
C/C++
bool kw[ 5 ];
if( kw[ 0 ] == false ) {
    if( zdarzenie.type == sf::Event::MouseButtonReleased && zdarzenie.mouseButton.button == sf::Mouse::Left )
    kw[ 0 ] = true,
}


if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) )
{
    q.move( 0, - 1 );
    x.move( 0, - 1 );
    w.move( 0, - 1 );
    e.move( 0, - 1 );
    r.move( 0, - 1 );
}...

W ten deseń to ma wygladać z tą tablicą przechowujacą i klikaniem ?
P-128419
Brunon3
» 2015-03-14 23:16:26
Tak, tylko lepiej będzie z:

C/C++
if( zdarzenie.type == sf::Event::MouseButtonReleased && zdarzenie.mouseButton.button == sf::Mouse::Left )
     kw[ 0 ] = !kw[ 0 ];

Choć oczywiście ten kod który podałeś nie jest do końca dokończony.

EDIT:
I do warunku przesuwania kwadratu dodaj
C/C++
&& kw[ numerKwadratu ] // Np 0

-BD.
P-128420
Lora
» 2015-03-14 23:17:18
I wciąż musisz sprawdzać czy kliknąłeś w obszar zajmowany przez dany kwadrat.
P-128421
1 « 2 » 3 4 5 6
Poprzednia strona Strona 2 z 6 Następna strona