[SFML 2.0] Problem z przesuwaniem obiektu
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

[SFML 2.0] Problem z przesuwaniem obiektu

AutorWiadomość
Temat założony przez niniejszego użytkownika
[SFML 2.0] Problem z przesuwaniem obiektu
» 2012-12-03 19:23:34
Witam.
Mam problem z poruszaniem obiektu. Korzystam z kursu na stronie. Jest on na 1.6 ale chyba powinno działać po małych zmianach. Wszystko idzie dobrze, dopóki nie dodam
C/C++
for( VObiektyT::iterator i = vObiekty.begin(); i < vObiekty.end(); ++i )
     i->aktualizujPolozenie();

Obiekty uciekają mi poza okienko. Nie mam pojęcia co jest nie tak.
P-70296
» 2012-12-03 20:29:12
Nie masz zielonego pojęcia co piszesz albo niezbyt oczekujesz pomocy z tego forum. Wiesz co robi ten kod, który nam zamieściłeś? Myślisz, że ktokolwiek Ci na podstawie tego kodu stwierdzi gdzie masz błąd? Daj kod, ale ten odpowiedzialny za to, co działa źle.
P-70300
Temat założony przez niniejszego użytkownika
» 2012-12-03 21:43:08
C/C++
int main()
{
   
    sf::CircleShape kolo;
    kolo.setRadius( 5 );
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Wytwarzanie Gier 2D, C++ | http://cpp0x.pl" );
   
    typedef std::vector < RObiekt > VObiektyT;
    VObiektyT vObiekty;
   
    vObiekty.push_back( RObiekt( 50, 50, 1.0 ) );
   
    while( oknoAplikacji.isOpen() )
    {
       
        sf::Event zdarzenie;
        while( oknoAplikacji.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == sf::Event::Closed )
                 oknoAplikacji.close();
           
            if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Escape )
                 oknoAplikacji.close();
           
        } //while
       
       
        for( VObiektyT::iterator i = vObiekty.begin(); i < vObiekty.end(); ++i )
             i->aktualizujPolozenie();
       
        oknoAplikacji.clear();
       
        for( VObiektyT::iterator i = vObiekty.begin(); i != vObiekty.end(); ++i )
        {
            kolo.setPosition( i->x, i->y );
        }
        oknoAplikacji.draw( kolo );
        oknoAplikacji.display();
    }
    return 0;
}[ cpp / ]
Resztę mam tak samo jak w przykładzie.
P-70304
» 2012-12-03 21:49:44
Widać nawet nie wiesz, który kod wylicza pozycję obiektu... Szkoda, że nie rozumiesz tego co piszesz.

Btw chodzi Ci o to, że część koła wychodzi poza okno?
kolo.setPosition( i->x, i->y );
 to jest ustalenie pozycji środka koła.
P-70305
Temat założony przez niniejszego użytkownika
» 2012-12-03 22:12:01
To mógłbyś wytłumaczyć, jak działa
C/C++
for( VObiektyT::iterator i = vObiekty.begin(); i < vObiekty.end(); ++i )
     i->aktualizujPolozenie();

for( VObiektyT::iterator i = vObiekty.begin(); i != vObiekty.end(); ++i )
{
    kolo.setPosition( i->x, i->y );
}
oknoAplikacji.draw( kolo );
To wyświetla mi koło w punkcie x,y.
a aktualizujPolozenie()?
Kurde, przepraszam za być może niski poziom pytań, ale naprawdę chciałbym się tego nauczyć.
P-70308
» 2012-12-03 22:17:11
To popatrz do tej metody, co ona robi. Zanim weźmiesz się za pisanie gier (w bibliotece zgodnej z OOP) to najpierw naucz się OOP. Poczytaj o klasach, metodach, ewentualnie o dziedziczeniu. Nie ma sensu Ci czegoś tłumaczyć, czego pewnie i tak nie zrozumiesz.
P-70309
« 1 »
 Strona 1 z 1