试图从对象指针接收vector2f

时间:2015-06-09 17:22:07

标签: c++ pointers sfml

我的主函数检查是否已触发某个键,如果它是左箭头/右箭头,则调用我创建的名为Game的对象中的函数。 当代码到达Game中的函数时,会出现“访问冲突读取位置”错误。

这是我的主要功能:

int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600), "PongZzZZzzZ");

Ball *b = new Ball();
Paddle *p = new Paddle();
Game *game = new Game(&window, b, p);

while (window.isOpen())
{
    sf::Event event;
    while (window.pollEvent(event))
    {
        if (event.type == sf::Event::Closed)
            window.close();
        else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
            game->ParseKey('r');
        else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
            game->ParseKey('l');
    }
    window.clear(sf::Color::White);

    window.draw(*p);

    window.display();
}

return 0;
}

这是我在游戏中的功能:

void Game::ParseKey(char dir)
{
if (dir == 'r' && (this->p->GetPosition().x + this->p->getSize().x) < 795)
{
    std::cout << "right key fired";
}
else if (dir == 'l' && (this->p->getPosition().x) > 5)
{
    std::cout << "left key fired";
}
}

我知道问题是当我尝试获取向量并获取x时:

this->p->GetPosition().x

我尝试获取矢量并且它有效,但是当我尝试获取'x'时它会崩溃。

0 个答案:

没有答案