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

[C++] Referencja do wskaźnika

Ostatnio zmodyfikowano 2016-03-24 13:55
Autor Wiadomość
emSon
Temat założony przez niniejszego użytkownika
[C++] Referencja do wskaźnika
» 2016-03-24 11:45:38
Cześć.

Mam pewien problem z SIGSEGV. Otóż robię grę 2D. Mam sobię klasę Collider, w której trzymam wskaźniki na obiekty, z którymi mam sprawdzać kolizję.

std::map < unsigned long, RectangleType *> m_collidableObjects;

Mam też funkcję Update, która jest za to odpowiedzialna:

C/C++
void Collider::Update()
{
    for( auto & pointer: m_collidableObjects )
    {
        std::cout << pointer.second->renderBody.getGlobalBounds().width << std::endl;
        if( CollisionChecker::isColliding( m_gameBody->renderBody, pointer.second->renderBody ) )
        {
            // ...
        }
    }
}

W kosoli wypis z cout'a pokazuje się poprawnie, natomiast po przekazaniu do CollisionChecker pokazuje się "Segmentation Fault'. Aktualnie funkcja ta wygląda tak:

C/C++
bool CollisionChecker::isColliding( sf::RectangleShape & rect1, sf::RectangleShape & rect2 )
{
    std::cout << rect1.getPosition().x << std::endl; // tu już wywala
    return false;
}

Co tu jest nie tak :/ ?
P-146489
michal11
» 2016-03-24 12:54:07
Trochę mało kodu.

C/C++
std::cout << rect1.getPosition().x << std::endl; // tu już wywala

Z tego by wynikało, że problem jest z rect1 czyli m_gameBody->renderBody a nie z wskaźnikami w mapie. Czym jest gameBody ? Na pewno inicjujesz ten wskaźnik ?
P-146493
emSon
Temat założony przez niniejszego użytkownika
» 2016-03-24 13:55:43
O kurcze, tak się skupiłem na tych wskaźnikach na obiekty że zapomniałem o najważniejszym.. gameBody to wskaźnik na gracza i w ogóle go nie ustawiłem :D. Najciemniej pod latarnią. Dzięki ;)
P-146509
« 1 »
  Strona 1 z 1