[SFML]Czy kliknięto sprajta?
Ostatnio zmodyfikowano 2011-06-04 18:46
mar3 Temat założony przez niniejszego użytkownika |
[SFML]Czy kliknięto sprajta? » 2011-06-04 16:27:29 Chcę sprawdzić czy został kliknięty dany sprajt. Czy powinienem transformować współrzędne do lokalnych (Sprajt.TransformToLocal)? Np. sf::Event zdarzenie; while( oknoAplikacji.GetEvent( zdarzenie ) ) { if( zdarzenie.Type == sf::Event::MouseButtonPressed && zdarzenie.MouseButton.Button == sf::Mouse::Left ) { sf::Vector2f punkt = naszSprajt.TransformToLocal( sf::Vector2f(( float ) zdarzenie.MouseButton.X,( float ) zdarzenie.MouseButton.Y ) ); if( punkt.x >= 0 && punkt.y >= 0 && punkt.x <= obrazek.GetWidth() && punkt.y <= obrazek.GetHeight() ) { } } } Czy może do globalnych? |
|
malan |
» 2011-06-04 17:27:41 A może porównaj pozycję Sprita z pozycją myszki? |
|
DejaVu |
» 2011-06-04 17:42:23 |
|
mar3 Temat założony przez niniejszego użytkownika |
» 2011-06-04 17:48:37 const sf::Input & sterowanie = oknoAplikacji.GetInput(); sf::Vector2f punkt = naszSprajt.TransformToLocal( sf::Vector2f(( float ) sterowanie.GetMouseX(),( float ) sterowanie.GetMouseY() ) ); bool bCzyZaznaczony =( punkt.x >= 0 && punkt.y >= 0 && punkt.x <= obrazek.GetWidth() && punkt.y <= obrazek.GetHeight() ); naszSprajt.SetColor( bCzyZaznaczony ? sf::Color::Green: sf::Color::Red ); Czy chodzi o to? Zrobiłem podobnie tylko mam problem, bo jak się zmaksymalizuje okno gry to wtedy już źle działa. |
|
DejaVu |
» 2011-06-04 17:50:40 Sugerujesz więc, że jak skopiuję kod z kursu i zmodyfikuję flagę na fullscreen to będzie źle działało? :) |
|
mar3 Temat założony przez niniejszego użytkownika |
» 2011-06-04 17:56:08 Nie. Ja uruchamiam tę grę w oknie jak inne aplikacje np. Paint. Problem jest wtedy kiedy kliknę ikonkę zmaksymailozowania u góry okna obok przycisku do zamknięcia(X).
|
|
DejaVu |
» 2011-06-04 17:59:49 I czym się Twój problem objawia? Uwzględniasz fakt, że antialiasing rozmywa Ci barwy, więc krawędź niekoniecznie wypada w miejscu w jakim wydawać się było powinna być? |
|
mar3 Temat założony przez niniejszego użytkownika |
» 2011-06-04 18:03:34 Problem polega na tym, że jak mam 2 sprajty obok siebie klikam w pierwszego, a on myśli, że w drugiego. :) |
|
« 1 » 2 3 |