SFML и C++ Уроки \ Разработка игр › Форумы › Логика игр › Некоторые вопросы при создании игры. › Ответ в теме: Некоторые вопросы при создании игры.
Тогда я привёл метод поворота вектора. Учти что поворот производится вокруг вектора [0, 0] так что не забудь вычесть из вращаемого вектора точку вращения.
Про блоки: я имел в виду что текстукри одинаковых размеров и имеют Origin Point по середине этого “кубика”.
То что ты изменяешь текстурку для подгона – плохая затея. Делай подгон позиции башни под танк (Всё тот же приведённый мною метод в помощь – вращение даст тебе круг. Ну а где центр этого круга надеюсь рассказывать не нужно)
И зачем ты делаешь лишний шаг с Image -> Texture? Ты собираешься прямо в игре как либо перерисовывать пиксели на текстурке? Если нет то используцй сразу Texture минуя Image (Учитывая что мы работаем с C++ память лишней не будет).
Ну и в чём проблема с нужным направлением? На сайте был же уже тутор как заставить картинку поворачиваться в сторону курсора и перемещатся при зажатии кнопки. Метод который даст тебе возможность получить угол между двумя векторами. Если нужно получить угол относительно системы кординат то в качестве первого аргумента передай Vector2f(1, 0)
1 2 3 4 |
float getAngle(Vector2f start, Vector2f end) { return atan2((start - end).y, (start - end).x) * 180 / 3.14159265; } |
Ну и можешь из этого получить угол поворота башни и снаряда передав в первом аргументе центр башни и второго – позицию мыши с применённым оффсетом View(Верхний левый угол поля зрения)