SFML и C++ Уроки \ Разработка игр › Форумы › SFML System, Window и другие вопросы › Оптимизация › Ответ в теме: Оптимизация
В общем, сделал по своему, но за идею огромное спасибо. Не сделал так как вы предложили, только из за того что не опытен и не очень знаю, как это правильно написать. Но суть понял.
Итак, если кому то понадобится, вот мой код реализации прорисовки карты, только “в” камере вида:
C++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Vector2f center = window.getView().getCenter(); Vector2f size = window.getView().getSize(); // проход по массиву мапы for (int i = (center.y - size.y / 2) / 128; i <= (center.y + size.y / 2) / 128; i++) for (int j = (center.x - size.x / 2) / 128; j <= (center.x + size.x / 2) / 128; j++) // все делю на 128, потому что цикл должен проходить по клеткам карты (т.е. массива), а не по пикселям // а текстура для каждой клетки у меня как раз 128 пикселей { if (map[i][j] == 0) spriteMap.setTextureRect(IntRect(0, 0, 128, 128)); // присвоение текстуры spriteMap.setPosition(j * 128, i * 128); window.draw(spriteMap); } |