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

[SFML] Problem ze scrollowaniem mapy

Ostatnio zmodyfikowano 2012-03-25 11:11
Autor Wiadomość
jam09
Temat założony przez niniejszego użytkownika
[SFML] Problem ze scrollowaniem mapy
» 2012-03-24 17:51:56
Witajcie
Udało mi się zrobić scrollowanie mapy, ale mam problem - postać porusza się szybciej niż kamera. Co zrobiłem nie tak ?
Kod:
C/C++
while( App.IsOpened() )
{
    // Process events
    sf::Event Event;
    while( App.GetEvent( Event ) )
    {
       
        if( Event.Type == sf::Event::Closed )
             App.Close();
       
        if(( Event.Type == sf::Event::KeyPressed ) &&( Event.Key.Code == sf::Key::W ) )
             p_y--;
       
        if(( Event.Type == sf::Event::KeyPressed ) &&( Event.Key.Code == sf::Key::S ) )
             p_y++;
       
        if(( Event.Type == sf::Event::KeyPressed ) &&( Event.Key.Code == sf::Key::D ) )
             p_x++;
       
        if(( Event.Type == sf::Event::KeyPressed ) &&( Event.Key.Code == sf::Key::A ) )
             p_x--;
       
    }
    App.Clear();
    // Clear screen
    //rysowanie mapki
    for( int y = p_y / WYS_T; y < p_y / WYS_T + SZER / WYS_T + 2; y++ )
    {
        for( int x = p_x / SZER_T; x < p_x / SZER_T + WYS / SZER_T + 2; x++ )
        {
            if( y < 100 && y >= 0 && x < 100 && x >= 0 )
            {
                Sprite.SetPosition( x * WYS_T - p_x, y * SZER_T - p_y );
                App.Draw( Sprite );
            }
        }
    }
    //i kolejne
    Gracz.SetPosition( p_x, p_y );
    App.Draw( Gracz );
    App.Display();
}
Przy okazji: gdzie znajdę informacje o bb-code stosowanym na tym forum ?
P-53141
SeaMonster131
» 2012-03-24 18:46:45
» KursyKurs STC kurs
P-53142
jam09
Temat założony przez niniejszego użytkownika
» 2012-03-24 19:05:01
Dziękuję będę wiedział na przyszłość, a pomoże ktoś z tą mapą ?
P-53144
DejaVu
» 2012-03-24 19:21:49
C/C++
Sprite.SetPosition( x * WYS_T - p_x, y * SZER_T - p_y );
Wywal p_x oraz p_y z tej linijki :)
P-53146
jam09
Temat założony przez niniejszego użytkownika
» 2012-03-24 19:48:31
Jak wywalę to się w ogóle tło nie przesuwa.
P-53149
DejaVu
» 2012-03-24 19:54:47
W takim razie przeanalizuj sens pętli for:
C/C++
for( int y = p_y / WYS_T; y < p_y / WYS_T + SZER / WYS_T + 2; y++ )
Tej drugiej również.
P-53150
jam09
Temat założony przez niniejszego użytkownika
» 2012-03-24 20:18:21
Tą cześć z pętlami znalazłem na forum gamedev.com przerobiłem i dostosowałem do SFML. Te obliczenia już tam były. No i działają tylko mapka się za wolno przewija.
EDIT: One po prostu obliczają ilość kafelków, które się wygenerują. Nic więcej.
P-53152
bingo009
» 2012-03-25 11:11:51
Może do rysowania mapki skorzystaj z Algorytmu EasyKodera? A co do przesuwania, to może kontroluj prędkość za pomocą Timera.
P-53177
« 1 »
  Strona 1 z 1