В игре присутствует модель игрока. Суть в том, что при нажатии W игрок просто летит вверх. Эта проблема решилась просто проверкой вертикальной скорости y игрока перед следующим нажатием.
if(evt.key.code == sf::Keyboard::W && playerBody->GetLinearVelocity().y == 0)
А вот как решить проблему полёта при зажатии "A" или "D"? Проверять горизонтальную скорость не вариант. При зажатии кнопки, игрок просто летит в выбранном направлении.
if(evt.key.code == sf::Keyboard::D)
playerBody->SetLinearVelocity(b2Vec2(5.0f, 0.0f));
А так же следующая проблема состоит в том, что при нажатии W+D или W+A игрок поднимается вверх, но влево-право не двигается.
if(evt.key.code == sf::Keyboard::A && evt.key.code == sf::Keyboard::W)
playerBody->SetLinearVelocity(b2Vec2(-50.0f, 50.0f));
Какие существуют решения для таких проблем?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Программа читает число с flash-памяти внешнего устройства (целое, 1 байт, беззнаковое)Для его программной интерпретации используется перечисление:
Недавно столкнулся с одной непонятной для меня вещью - указатели на функции классаИмеют ли они смысл ? В каких случаях используются ? Пример: