является центром камеры, вы можете просто избавиться от двух линий, изменяющих координаты камеры, так как вы все еще хотите, чтобы она указывала на один и тот же центр. Это по крайней мере исправит положение зума. Чтобы исправить дрожание камеры, нам понадобится больше информации о контексте (как вы на самом деле используете камеру, какую программу и т. Д.)

с я масштабирую вот так:

float zoom = 1.1f;
camera.y *= zoom;
camera.x *= zoom;
tileSize *= zoom;

Но это кажется действительно неуклюжим, и я, конечно, делаю что-то не так: я хочу, чтобы он увеличил карту тайла относительно центра экрана, но он просто увеличивает исходную точку и немного встряхивает камеру. Не тот зум, который я хотел.

Я бы предпочел действительно простой ответ.

Заранее спасибо и извините, если это дубликат.

РЕДАКТИРОВАТЬ: Вот как я рисую карту:

for (int x = 0; x < map.size(); x++) {
        for (int y = 0; y < map.at(x).size(); y++) {
            DrawRect(x * round(tileSize) - camera.x, y * round(tileSize) - camera.y, round(tileSize), round(tileSize), WHITE);
        }
}

Ответы на вопрос(0)

Ваш ответ на вопрос