Я читал учебное слово в слово, но я получаю сообщение об ошибке, из-за которого я не мог получить ответ от парня, который сделал учебник!не является членом 'tagINPUT'
я попал в этот раздел учебника, который где пошло не так: http://www.gamefromscratch.com/page/Game-From-Scratch-CPP-Edition-Part-6.aspx
Ошибка я получаю:
playerpaddle.cpp(32): error C2039: 'IsKeyDown' : is not a member of 'tagINPUT'
c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winuser.h(5332) : see declaration of 'tagINPUT'
playerpaddle.cpp(36): error C2039: 'IsKeyDown' : is not a member of 'tagINPUT'
c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winuser.h(5332) : see declaration of 'tagINPUT'
playerpaddle.cpp(40): error C2039: 'IsKeyDown' : is not a member of 'tagINPUT'
c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winuser.h(5332) : see declaration of 'tagINPUT'
1>c:\users\dave\c++\pang\playerpaddle.cpp(54): error C2064: term does not evaluate to a function taking 1 arguments
В этом разделе сценария:
void PlayerPaddle::Update(float elapsedTime)
{
if(Game::GetInput().IsKeyDown(sf::Key::Left))
{
_velocity-=3.0f;
}
if(Game::GetInput().IsKeyDown(sf::Key::Right))
{
_velocity+=3.0f;
}
if(Game::GetInput().IsKeyDown(sf::Key::Down))
{
_velocity = 0.0f;
}
if(_velocity > _maxVelocity)
_velocity = _maxVelocity;
if(_velocity < -_maxVelocity)
_velocity = -_maxVelocity;
sf::Vector2f pos = this->GetPosition();
if(pos.x <= GetSprite().GetSize().x/2 ||
pos.x >= (Game::SCREEN_WIDTH - GetSprite().GetSize().x/2))
{
_velocity = -_velocity;
}
GetSprite().Move(_velocity * elapsedTime, 0);
}
Я приложил свой проект к кому-то, чтобы посмотреть: http://tinyurl.com/7evajju
Спасибо за ответ - то, что я не понимаю, потому что учебник работает, но у меня нет, когда у них тот же код =/ – Sir
Это ключ, они * не * тот же код. Джо пригвоздил проблему. Исходный код: const static sf :: Input & GetInput(); в то время как ваш код: const static :: INPUT & GetInput() ;. Входные и INPUT - две разные вещи. – Serapth
Для более подробного описания 'Input' является определяемым пользователем классом, тогда как' INPUT' является структурой данных Windows для хранения входной информации. Он используется в функции «SendInput». Кроме того, структура 'INPUT' фактически является typedef структуры' _tagINPUT'. – chris