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

[sfml] przesowanie itemow do ekwipunku

Ostatnio zmodyfikowano 2012-03-28 17:02
Autor Wiadomość
hincu
Temat założony przez niniejszego użytkownika
[sfml] przesowanie itemow do ekwipunku
» 2012-03-27 20:00:22
siema : P pojawil sie kolejny problem przy grze, to przejde do sedna sprawy,
mianowicie mam jakis tam item na ziemi i chce go przeniesc( przesowajac item na dany slot w ekwipunku ) no i tu pojawil sie problem nie mam zielonego pojecia jak zrobic aby przedmiot przesowal sie razem z kursorem, jakies pomysly? probowalem sie bawic z setcenter lecz bez dobrych efektow
P-53304
kampar
» 2012-03-27 20:08:32
po prostu ustawiasz pozycję itemu na taką samą jak pozycja myszy
P-53305
hincu
Temat założony przez niniejszego użytkownika
» 2012-03-27 20:27:49
wlasnie problem polega na tym ze nie mozna tak z prostego powodu, item posiada swoj center i to wzgledem niego sie przesowa, tak wiec najpierw musze znalezc sposob na to aby przy kliknieciu pozycja myszki przyjela taki center jaka byla pozycja myszki podczas klikniecia a po przesunieciu myszki dopiero zmieniac pozycje itemu.

@EDIT

udalo mi sie nastrugac cos takiego ale niestety nie dziala tak jak powinno : / i nie mam zielonego pojecia gdzie jest blad

C/C++
bool Item::MouseOnItem( const sf::Input & Mouse )
{
    if(( Mouse.GetMouseX() >= ItemGFX.GetPosition().x && Mouse.GetMouseX() < ItemGFX.GetPosition().x + Width ) &&( Mouse.GetMouseY() >= ItemGFX.GetPosition().y && Mouse.GetMouseY() < ItemGFX.GetPosition().y + Height ) )
         return true;
   
    else return false;
   
}

bool Item::MouseClickItem( const sf::Input & Mouse )
{
    if( MouseOnItem( Mouse ) && Mouse.IsMouseButtonDown( sf::Mouse::Left ) )
    {
        //   ItemGFX.SetCenter( Mouse.GetMouseX() - ItemGFX.GetPosition().x , Mouse.GetMouseY() - ItemGFX.GetPosition().y );
       
        return IsMove = true;
    }
    else
    {
        //   ItemGFX.SetCenter( Width / 2, Height / 2 );
        return IsMove = false;
    }
}

void Item::MoveItem( const sf::Input & Mouse )
{
    if( MouseClickItem( Mouse ) && LastItemPos.x != Mouse.GetMouseX() && LastItemPos.y != Mouse.GetMouseY() && IsMove == true )
    {
        ItemGFX.SetPosition( Mouse.GetMouseX(), Mouse.GetMouseY() );
    }
    else ItemGFX.SetCenter( Width / 2, Height / 2 ); IsMove = false;
}
P-53309
kampar
» 2012-03-28 17:02:25
"nie działa tak jak powinno", czyli jak to teraz działa?
P-53355
« 1 »
  Strona 1 z 1