SFML и C++ Уроки \ Разработка игр › Форумы › Логика игр › Некоторые вопросы при создании игры. › Ответ в теме: Некоторые вопросы при создании игры.
Массштаб: а вы смотрели в класс View? Там же есть такие нужные тебе методы setSize и zoom(Насчёт последнего: он просто делает рескайлнг относительно текущего Size и похоже не сохраняет своих результатов)
С краем ствола всё легко: Для начала делаем вектор длинной половины спрайта пушки и поворрачиваем его на угол поворота ствола. Позже берём вектор находящийся по центру спрайта пушки и прибавляем к нему первый – задача выполнена
C++
1 2 3 4 5 6 7 8 9 10 |
const float mPi = 3.14159265f; const float mRad = mPi / 180.f; Vector2f vectorRotate(Vector2f& vec, const double deg) { double theta = deg * mRad; auto cs = cos(theta); auto sn = sin(theta); Vector2f p = vec; return vec = Vector2f(cs * p.x - sn * p.y, sn * p.x + cs * p.y); } |
Ну и полёт снаряда: просто сделай некую переменную в классе пули которая будет вычитатся каждый игровой тик и при достижении условия var <= 0 пуля будет удалена из массива.