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

Kolizje sfml 2.X " Nie rozumiem jak to działa "

Ostatnio zmodyfikowano 2015-04-01 19:14
Autor Wiadomość
Brunon3
» 2015-04-01 10:13:14
Po co pisać coś do projektu, jeżeli nie przyda się w żadnym stopniu?

Nie do projektu, tylko dla nauki. Niech sobie wyrzuci plik z funkcją kolizji (tą lepszą) gdzieś do folderu 'silnik' i gdy będzie mu to potrzebne, wykorzysta.

-BD.
P-129726
RazzorFlame
» 2015-04-01 10:14:31
Koleś chce napisać grę a Ty mu podrzucasz bezsensowne pomysły.
P-129727
Brunon3
» 2015-04-01 10:16:08
To Ty mu utrudniasz życie, zamiast żeby raz napisał porządnie kolizje i je wykorzystywał w niemal każdym swoim projekcie, każesz mu pisać tu złą kolizję, żeby przy następnej grze pisał od nowa lepszą...

-BD.
P-129728
pekfos
» 2015-04-01 10:17:25
@up: Ale ja piszę o nauce, proszę, drugi raz już to cytuję:

jeżeli @Topic (@Crax) nigdy nie pisał kolizji w grach, to dobrze by było, żeby nauczył się takich jakie podałem, a to jakie zastosuje w swoim projekcie, to już może wybrać od specyfiki samego projektu. ;)
Równie dobrze mógłbyś pisać, że nie należy uczyć się programowania od konsoli, lecz od aplikacji okienkowych, 'bo są ogólniejsze', ale jakby co, to może użyć konsoli, jeśli specyfika konkretnego projektu tego wymaga.. Jeszcze kilka osób uprze się przy swoich kolizjach i ten temat się zapętli w wieczne cytowanie samego siebie "no dobra, do tego projektu najbardziej odpowiednia jest kolizja X.. AAaalle, niech koniecznie zacznie od mojego rozwiązania, bo chodzi o naukę, a przecież w innym konkretnym przypadku (nie mylić z tym konkretnym przypadkiem) moje kolizje są lepsze"..
P-129730
Brunon3
» 2015-04-01 10:19:30
Właśnie dlatego pisałem że nie chcę się z nim kłócić...

Zamknijcie ten temat, bo to już do niczego dobrego nie prowadzi.

-BD.
P-129731
Quirinnos
» 2015-04-01 10:57:49
Kończ Waść.

Niech autor wykorzysta to, co najlepiej zrozumie.
P-129741
Crax
Temat założony przez niniejszego użytkownika
» 2015-04-01 17:29:12
Kolizje już rozwiązane... Piszę takową grę aby poćwiczyć programowanie obiektowe, natknąłem się na kolejny problem na ekranie nic się nie wyświetla :/ kod
C/C++
#include <SFML/Graphics.hpp>

using namespace std;
using namespace sf;


int mapa[ 8 ][ 8 ] =
{
    { 0, 1, 1, 1, 1, 1, 1, 0 },
    { 2, 5, 5, 5, 5, 5, 5, 4 },
    { 2, 5, 5, 5, 5, 5, 5, 4 },
    { 2, 5, 5, 5, 5, 5, 5, 4 },
    { 2, 5, 5, 5, 5, 5, 5, 4 },
    { 2, 5, 5, 5, 5, 5, 5, 4 },
    { 2, 5, 5, 5, 5, 5, 5, 4 },
    { 0, 3, 3, 3, 3, 3, 3, 0 }
};

class players
{
protected:
    Texture playerss;
    Sprite player;
    int x_p, y_p;
public:
    players::players()
    {
        playerss.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\players.png" );
        player.setTexture( playerss );
        player.setOrigin( 16, 16 );
        player.setPosition( 80, 80 );
    }
public:
    void cords_p()
    {
        x_p = player.getPosition().x;
        y_p = player.getPosition().y;
    }
   
    ~players() { };
};

class enemy
{
protected:
    Texture spiders;
    Sprite spider;
    int x_e, y_e;
public:
    enemy::enemy()
    {
        spiders.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\xxx.png" );
        spider.setTexture( spiders );
        spider.setOrigin( 16, 16 );
        spider.setPosition( 48, 48 );
    }
public:
    void cords_e()
    {
        x_e = spider.getPosition().x;
        y_e = spider.getPosition().y;
    }
   
    ~enemy() { };
};

class maps
    : players
     , enemy
{
private:
    Texture water, water_grass, gras;
    Sprite spr0, spr1, spr2R, spr2D, spr2L, spr2U;
    RenderWindow oknoAplikacji;
   
public:
    void rysuj()
    {
        water.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\water.png" );
        spr0.setTexture( water );
       
        gras.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\gras.png" );
        spr1.setTexture( gras );
       
        water_grass.loadFromFile( "C:\\Users\\Maciek\\Documents\\Visual Studio 2010\\Projects\\sfml\\Debug\\graph\\water_grassU.png" );
        spr2U.setTexture( water_grass );
       
        spr2R.setTexture( water_grass );
        spr2R.setOrigin( 32, 0 );
        spr2R.setRotation( 270 );
       
        spr2D.setTexture( water_grass );
        spr2D.setOrigin( 32, 32 );
        spr2D.setRotation( 180 );
       
        spr2L.setTexture( water_grass );
        spr2L.setOrigin( 0, 32 );
        spr2L.setRotation( 90 );
       
       
        for( int i = 0; i < 8; i++ )
        {
            for( int j = 0; j < 8; j++ )
            {
                if( mapa[ j ][ i ] == 0 )
                {
                    spr0.setPosition( i * 32, j * 32 );
                    oknoAplikacji.draw( spr0 );
                }
               
                if( mapa[ j ][ i ] == 1 )
                {
                    spr2U.setPosition( i * 32, j * 32 );
                    oknoAplikacji.draw( spr2U );
                }
               
                if( mapa[ j ][ i ] == 2 )
                {
                    spr2R.setPosition( i * 32, j * 32 );
                    oknoAplikacji.draw( spr2R );
                }
                if( mapa[ j ][ i ] == 3 )
                {
                    spr2D.setPosition( i * 32, j * 32 );
                    oknoAplikacji.draw( spr2D );
                }
                if( mapa[ j ][ i ] == 4 )
                {
                    spr2L.setPosition( i * 32, j * 32 );
                    oknoAplikacji.draw( spr2L );
                }
                if( mapa[ j ][ i ] == 5 )
                {
                    spr1.setPosition( i * 32, j * 32 );
                    oknoAplikacji.draw( spr1 );
                }
            }
        }
    }
public:
    void rysuj_gracz()
    {
        oknoAplikacji.draw( player );
    }
public:
    void rysuj_spider()
    {
        oknoAplikacji.draw( spider );
    }
   
};

int colision( int lvll, int xx, int yy, bool gg, bool dd, bool ll, bool rr )
{
    bool gog, god, gol, gor;
    gog = false; god = false;
    gol = false; gor = false;
   
    if( gg == true )
    {
        yy = yy - 32;
        if( mapa[ xx / 32 ][ yy / 32 ] == 0 )
        {
            return gog = false;
        }
        else
        {
            return gog = true;
        }
    }
    if( dd == true )
    {
        yy = yy + 32;
        if( mapa[ xx / 32 ][ yy / 32 ] == 0 )
        {
            return god = false;
        }
        else
        {
            return god = true;
        }
    }
    if( rr == true )
    {
        xx = xx + 32;
        if( mapa[ xx / 32 ][ yy / 32 ] == 0 )
        {
            return gor = false;
        }
        else
        {
            return gor = true;
        }
    }
    if( ll == true )
    {
        xx = xx - 32;
        if( mapa[ xx / 32 ][ yy / 32 ] == 0 )
        {
            return gol = false;
        }
        else
        {
            return gol = true;
        }
    }
}

int main()
{
   
    RenderWindow oknoAplikacji( VideoMode( 256, 256, 32 ), "xxx" );
   
    bool g, d, l, r;
   
    g = false;
    r = false;
    d = false;
    l = false;
   
    Event zdarzenie;
    while( oknoAplikacji.isOpen() )
    {
        while( oknoAplikacji.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == Event::Closed )
            {
                oknoAplikacji.close();
            }
           
            if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Escape )
            {
                oknoAplikacji.close();
            }
           
            if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Up )
            {
                g = true;
            }
           
            if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Down )
            {
                d = true;
            }
           
            if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Left )
            {
                l = true;
            }
           
            if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::Right )
            {
                r = true;
            }
        }
       
        oknoAplikacji.clear( Color::Black );
       
        maps engine;
        engine.rysuj();
       
        oknoAplikacji.display();
    }
   
    return 0;
}

 Prosił bym o pomoc i wyjaśnienie :)
P-129822
Brunon3
» 2015-04-01 17:30:55
1 temat = 1 problem.

Załóż więc nowy temat, bo spamujesz.

*Eh.. Szkoda że nie jestem moderatorem.*

-BD.
P-129823
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona