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

[SFML 1.6] Przewijanie tła

Ostatnio zmodyfikowano 2012-07-24 06:50
Autor Wiadomość
wojownik266
Temat założony przez niniejszego użytkownika
[SFML 1.6] Przewijanie tła
» 2012-07-20 14:07:53
Mamy taki kod w Allegro 4.2
C/C++
masked_blit( tlo, buffer, 0, 0, backx, backy, tlo->w, tlo->h ); //TĹ‚o
masked_blit( tlo, buffer, 0, 0, backx,( backy +( tlo->h ) ), tlo->w, tlo->h ); //TĹ‚o
backy--;
if(( backy +( tlo->h ) ) == 0 )
     backy = 0;


Jak powinno to samo wyglądać w SFML'u? Tak aby działało identycznie?
P-60696
diego997
» 2012-07-20 17:23:38
W sfml'u możesz to zrobić np za pomocą klasy sf::View.


Tutaj masz linka jak używać:
http://www.sfml-dev.org/tutorials/1.3/graphics-views.php
P-60708
wojownik266
Temat założony przez niniejszego użytkownika
» 2012-07-20 17:58:40
Ciężko będzie ale myślę że dam radę. Dzięki!
P-60714
wojownik266
Temat założony przez niniejszego użytkownika
» 2012-07-21 11:53:30
Bez większych zgrzytów napisałem taki kod jak poniżej, który bardziej odpowiada moim oczekiwaniom. Program działa (w tej wersji), tak że skroluje tlo aplikacji od dołu do góry. Co zrobić aby tło aplikacji  powróciło taką samą drogą do punktu wyjścia. A potem znowu do dołu i tak w koło Macieju?

C/C++
void Gracz::scroll_back( sf::Sprite & Fota, float & x1, float & y1 )
{
   
    bool przewin = false;
   
    if( y1 < SCREEN_H && przewin == false ) {
       
        // y1+=0.05;
        przewin = true;
    }
    if( y1 >=( SCREEN_H ) && przewin == true )
    {
       
        // y1-=0.05;
        przewin = false;
       
    }
    else
    {
        if( przewin == false )
             y1 += 0.05;
       
        if( przewin == true )
             y1 -= 0.05;
       
    }
   
    Fota.SetPosition( x1, y1 );
}
P-60742
diego997
» 2012-07-21 12:01:00
Nie rozumie ;p

Chodzi ci o to że scrolujesz w nieskonczonosc do góry ? A chesz do pewnego momnetu czy jak?
P-60744
wojownik266
Temat założony przez niniejszego użytkownika
» 2012-07-21 12:05:24
Chodzi mi o to żeby tło po przskrolowaniu do górnej krawędzi okna (na razie), przskrolowało się z powrotem do dolnej krawędzi okna. Coś w rodzaju pętli. Inaczej już tego wytłumaczyć nie da rady.
P-60746
diego997
» 2012-07-21 12:30:08
Scrolujesz w dół więc tło idzie w górę, musisz wykryć moment kiedy dolna krawędź będzie niewidoczna wtedy przesuwasz kamerę w takie miejsce, żeby pod nią była krawędź górna tła. Dzięki czemu uzyskasz pożądany efekt;p sf::View na pewno ma metode set i get Position.

No ja bym to w ten sposób zrobił
P-60752
wojownik266
Temat założony przez niniejszego użytkownika
» 2012-07-21 12:38:27
To rozwiązanie zapewne nie było by złe ale wydaje mi się że można by to zrobić o wiele prościej. Zadaje te głupie pytania bo w efekcie końcowym chciałbym uzyskać takie scrollowanie tła jak w tej grze: http://hostuje.net/file.php?id=4b49628b62ccd6f890060bb82a3111b9 Sam ją napisałem ale przetłumaczyc na SFML jescze nie umiem....!
P-60754
« 1 » 2
  Strona 1 z 2 Następna strona