Как сделать 2d мир?

Объясните, как работает прогружаемость объектов.

Я гуглил, но нечего не нашел.

Нужно, чтобы игрок двигался по карте,
и объекты, которые хранятся в таком виде: derevo = {y: 100; x: 334},
ЧТОБЫ они динамично отрисовывались, в зависимости от того, на какую клавишу перемещения нажал игрок.
  • Вопрос задан
  • 402 просмотра
Пригласить эксперта
Ответы на вопрос 2
askhat
@askhat
Full Stack Developer
Как-то так (управление wasd)
Ответ написан
dollar
@dollar
На чёткий вопрос - чёткий ответ.
На экране просто рисуются все объекты, которые попадают на экран (а не находятся за его пределами). У каждого объекта есть координаты, поэтому программно легко проверить, попадает ли объект на экран или находится за границей экрана.

Обычно в играх принята такая схема, что все объекты рисуются заново каждый тик. А тиков в секунду может быть очень много (это то, что называется FPS - frames per second). Так что если что-то меняется в игровом мире, то сразу же меняется и картинка визуально.

Кнопки перемещения же просто меняют координаты. Они напрямую не связаны с отображением. Но косвенно они приводят к эффекту, что объект (главный персонаж) как бы движется. Только координаты меняются не плавно, а дискретно - каждый кадр новые координаты. Просто глазу незаметны "прыжки" на 1-2 пикселя и он округляет это и считает непрерывным движением.

Получается, что один программный код отвечает за изменение координат, в зависимости от нажатия клавиш. А другой программный код считывает эти координаты, чтобы нарисовать кадр. Общее у них - лишь область памяти с координатами, но один пишет в неё, а другой - читает. В остальном их не нужно смешивать, и стоит рассматривать и кодить отдельно друг от друга.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы