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

[SFML] Kolizja kwadratow

Ostatnio zmodyfikowano 2011-07-06 23:47
Autor Wiadomość
diego997
Temat założony przez niniejszego użytkownika
[SFML] Kolizja kwadratow
» 2011-07-06 22:15:40
Zmodyfikował by mi ktoś ten kod tak że jak zielonym kwadratem najadę na biały to program się zamknie ? Chyba przez analizę lepiej bym to zrozumiał.

C/C++
#include <SFML/Graphics.hpp>
#include <iostream>





int main()
{
   
    sf::RenderWindow Okno;
    Okno.Create( sf::VideoMode( 800, 600, 32 ), "Okno" );
   
    const sf::Input & sterowanie = Okno.GetInput();
   
    sf::Image obraz;
    obraz.Create( 20, 20, sf::Color::White );
   
    sf::Sprite sprajt;
    sprajt.SetImage( obraz );
    sprajt.SetColor( sf::Color::Green );
    sprajt.SetScale( 4, 4 );
    sprajt.SetPosition( 400, 300 );
    sprajt.SetCenter( obraz.GetWidth() / 2, obraz.GetHeight() / 2 );
   
    sf::Sprite sprajt1;
    sprajt1.SetImage( obraz );
    sprajt1.SetPosition( 100, 200 );
    sprajt1.SetCenter( obraz.GetWidth() / 2, obraz.GetHeight() / 2 );
   
   
   
   
   
    while( Okno.IsOpened() )
    {
       
       
        sf::Event zdarzenie;
       
        while( Okno.GetEvent( zdarzenie ) )
        {
            if( zdarzenie.Type == sf::Event::Closed ) Okno.Close();
           
        }
       
       
        if( sterowanie.IsKeyDown( sf::Key::Left ) ) sprajt.Move( - 0.2, 0 );
       
        if( sterowanie.IsKeyDown( sf::Key::Right ) ) sprajt.Move( 0.2, 0 );
       
        if( sterowanie.IsKeyDown( sf::Key::Up ) ) sprajt.Move( 0, - 0.2 );
       
        if( sterowanie.IsKeyDown( sf::Key::Down ) ) sprajt.Move( 0, 0.2 );
       
       
       
        Okno.Clear( sf::Color( 100, 149, 237 ) );
        Okno.Draw( sprajt );
        Okno.Draw( sprajt1 );
        Okno.Display();
       
    }
   
   
   
   
   
   
   
}
P-35455
akwes
» 2011-07-06 22:31:31
Wykorzystaj z artykułu o kolizjach gotowy kod kolizji.

mniejwięcej:
C/C++
if( CzyKolizja( pkt_1, pkt_2 ) ) Okno.Close();


P-35456
diego997
Temat założony przez niniejszego użytkownika
» 2011-07-06 23:18:28
A podał byś mi linka do tego godzine temu przeszukałem całe forum wpiszujac w wyszukiwarce kolizje i znalazłem tylko jeden kod który odradzał Dejavu.


P.S akwes i mówisz że wystarczą tylko dwie współrzędne ??
P-35458
akwes
» 2011-07-06 23:47:47
http://cpp0x.pl/forum/temat?id=4603

Absolutnie nie.

pkt_1 i pkt_2 to klasa która musi mieć współrzędną X, Y oraz znać swoją h(wysokość) oraz w(szerokość).

W temacie opisane jest wszystko : )
P-35460
« 1 »
  Strona 1 z 1