SFML и C++ Уроки \ Разработка игр › Форумы › SFML System, Window и другие вопросы › Проблема с центром камеры
Помечено: Viev
В этой теме 2 ответа, 2 участника, последнее обновление Defong 6 года/лет назад.
-
АвторСообщения
-
Здравствуйте!
Сразу предупреждаю, программированием я занимаюсь всего три месяца, так-что строго не судите)
У меня возникла проблема при создание платформера “https://pp.vk.me/c615721/v615721435/bb33/4R00GGIEphI.jpg”!
Я создаю индикатор здоровья на – nX -nY от позиции главного персонажа, так-как камера привязана к нему, вроде бы всё как надо, но из-за неудачной текстуры GetOrigin моего персонажа постоянно меняется, допустим когда бежит вправо его Origin на 2 пикселя больше чем когда он бежит влево, или во время прыжка его Y больше чем в позиции Stand, короче говоря из-за этого всего индикатор здоровья постоянно дергается (я уже молчу про меню в самое игре, очень тяжело из-за этого отследить координаты по Y.
Возможно я что-то делаю не правильно, и возможно я могу это всё исправить в фотошопе, но мне кажется что это не решение проблемы и в будущем я с этим еще столкнусь…
Вопрос: Можно ли вывести спрайт на экран не зависимо от координат текущей камеры и позиции персонажа, а именно в h/2 w/2 позиции самого окна который создает SFML (допустим при нажатии на ESC вылазит меню).
P.S – Так же попрошу объяснить немного доступней и желательно без классов, я их пока-что не проходил. Хотя как конструктор использую пока-что структуры
Если я правильно понял вы хотите чтобы полоска HP стабильно находилась в левом верхнем углу окна ? Если да то вот пример кода:
C++1HPbar.setPosition(view.getCenter().x - 333, view.getCenter().y - 271);Полоску нужо привязать относительно центра камеры сцены ,а а не относительно персонажа.
Чтобы отрисовать спрайт в независимости от персонажа, камеры сцены просто укажите нужные координаты.
Например Спрайте.setPosition(300,400); (координаты 0,0 находяться в левом верхнем углу карты ).
Большое спасибо!) Проблема решена!
-
АвторСообщения
Для ответа в этой теме необходимо авторизоваться.