[SFML] Problem ze scrollowaniem mapy
Ostatnio zmodyfikowano 2012-03-25 11:11
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:
while( App.IsOpened() ) { 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(); 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 ); } } } Gracz.SetPosition( p_x, p_y ); App.Draw( Gracz ); App.Display(); }
Przy okazji: gdzie znajdę informacje o bb-code stosowanym na tym forum ? |
|
SeaMonster131 |
» 2012-03-24 18:46:45 |
|
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ą ? |
|
DejaVu |
» 2012-03-24 19:21:49 Sprite.SetPosition( x * WYS_T - p_x, y * SZER_T - p_y );
Wywal p_x oraz p_y z tej linijki :) |
|
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. |
|
DejaVu |
» 2012-03-24 19:54:47 W takim razie przeanalizuj sens pętli for:
for( int y = p_y / WYS_T; y < p_y / WYS_T + SZER / WYS_T + 2; y++ )
Tej drugiej również. |
|
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. |
|
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. |
|
« 1 » |