В моей игре (C ++ /raylib), когда я перемещаю игрока по диагонали, существует много дрожания для остальных элементов
, когда я перемещаю персонаж, который я «прокручивает». Уровень (добавляет смещение к математическому 2D -вектору), а затем уровень наносит все элементы, когда он содержит, что на спинном, так что он по -прежнему, он по центру, по центру, я подходит к сцене, он по -прежнему. Гладкий без дрожания, но при перемещении по диагонали он сильно дрожит, прокрутка обновляется перед рисунком, а не в то время как он не может быть слишком связан с тем, как применяется прокрутка, вектор, представляющий смещение прокрутки, состоит из 2 удвоений, которые представляют x и y < /p>
, представляющий смещение прокрутки, состоит из 2 удвоений, которые представляют x и y < /p>
В моей игре (C ++ /raylib), когда я перемещаю игрока по диагонали, существует много дрожания для остальных элементов , когда я перемещаю персонаж, который я «прокручивает». Уровень (добавляет смещение к математическому 2D -вектору), а затем уровень наносит все элементы, когда он содержит, что на спинном, так что он по -прежнему, он по центру, по центру, я подходит к сцене, он по -прежнему. Гладкий без дрожания, но при перемещении по диагонали он сильно дрожит, прокрутка обновляется перед рисунком, а не в то время как он не может быть слишком связан с тем, как применяется прокрутка, вектор, представляющий смещение прокрутки, состоит из 2 удвоений, которые представляют x и y < /p> , представляющий смещение прокрутки, состоит из 2 удвоений, которые представляют x и y < /p>
if (on_ground) { last_valid_pos = collision.pos(); }
if (should_scroll) Level->focusScroll(collision.center());
return moving; }
//in the level class void draw(dvec2 offset) override { for (const auto& obj: objects) {
obj->draw(scroll);
} }
//the player draw function, most of the other object draw functions are very similar //to this, I severely doubt it has anything to do with the animations
void draw(const dvec2 offset) override { sprite::drawShadow({collision.center().x-offset.x-1, collision.y+collision.h-offset.y}, collision.w/2.5f, 0.8f*collision.h); DrawAnimation(*current_animation, collision.pos()-offset-dvec2{5, 25}); } < /code> Я пробовал округлить свиток, округление позиции игроков, округление всего и в основном все, что связано с округлением, я пробовал, с различным успехом и многими дополнительными проблемами, которые возникают с округлением (например, массовым медленным движением, взволнованным игроком, странным поведением движения и т. Д.)#include "raylib.h" #include #include #include
} } [/code] должен иметь возможность видеть джиттер, когда игрок движется по диагонали и как иначе это может быть немного размытым, но в целом довольно хорошо