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

SFML C++ Zapisanie pozycji gracza

Ostatnio zmodyfikowano 2019-07-12 21:30
Autor Wiadomość
R0ut4
Temat założony przez niniejszego użytkownika
» 2019-07-12 09:12:24
To ma być "skok"
P-174913
sppmacd
» 2019-07-12 21:30:24
Są lepsze sposoby.

C/C++
bool kolizja( sf::Sprite sprite, sf::Vector2f off )
{
    //... Offset-wektor o jaki przesunie sie sprite
    sf::Rect aabb( sprite.getPosition() + off, WIELKOSC_GRACZA );
    // sprawdzamy kazdy rect
    sf::Rect innyaabb( 0, 0, 100, 100 ); //przyklad!!
    if( aabb.intersects( innyaabb ) )
         return true;
    //...
    return false;
}
bool move( sf::Sprite sprite, sf::Vector2f off )
{
    if( !kolizja( sprite, off ) )
    {
        sprite.move( off );
        return true;
    }
    else
         return false;
   
}
//...
sf::Vector2f predkosc;
bool skok = false;
//...
if( sf::Keyboard::isKeyPressed( Keyboard::Up ) && !skok )
{
    predkosc.y -= PREDKOSC_SKOKU;
    skok = true;
}
predkosc.y += GRAWITACJA;
move( postac, predkosc );

Trzeba sobie tylko zdefiniować te stałe Vector2f WIELKOSC_GRACZA, Vector2f PREDKOSC_SKOKU, float GRAWITACJA
P-174918
1 « 2 »
Poprzednia strona Strona 2 z 2