Проблема с центром камеры

Помечено: 

В этой теме 2 ответа, 2 участника, последнее обновление  Defong 1 год, 4 мес. назад.

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Сообщения
  • #3810

    Defong
    Участник
    Сообщений:1

    Зарегистрирован:
    18.05.2016

    Репутация:0

    Здравствуйте!

    Сразу предупреждаю, программированием я занимаюсь всего три месяца, так-что строго не судите)

    У меня возникла проблема при создание платформера “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 – Так же попрошу объяснить немного доступней и желательно без классов, я их пока-что не проходил. Хотя как конструктор использую пока-что структуры

    #3813
    +1
    LastikPro
    LastikPro
    Участник
    Сообщений:93

    Зарегистрирован:
    09.07.2015

    Репутация:60

    Если я правильно понял вы хотите чтобы полоска HP стабильно находилась в левом верхнем углу окна ? Если да то вот пример кода:

    Полоску нужо привязать относительно центра камеры сцены ,а а не относительно персонажа.

    Чтобы отрисовать спрайт в независимости от персонажа, камеры сцены просто укажите нужные координаты.

    Например Спрайте.setPosition(300,400); (координаты 0,0 находяться в левом верхнем углу карты ).

    #3814

    Defong
    Участник
    Сообщений:1

    Зарегистрирован:
    18.05.2016

    Репутация:0

    Большое спасибо!) Проблема решена!

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)

Для ответа в этой теме необходимо авторизоваться.