Мультимедийная библиотека SFML разработка игр #7.2 Движение объектов
Вставка
- Опубліковано 7 вер 2024
- Разработка аркадной игры "Путь домой" на языке программирования С++ используя мультимедийную библиотеку SFML. Выпуск 2
Движение объектов. Имитация космического полёта.
Клонировать репозиторий:
github.com/cne...
Проект с анимацией
github.com/cne...
Телеграмм:
t.me/C_Verhovc...
Суперский ролик, исходя из других "недо-обучателей" ваш контент лучший, среди того чего пришлось наблюдать до того как наткнулся на вас!
1:07 Буква L перед текстом говорит о том, что текст передается в кодировке Unicode, иначе он будет передаваться в кодировке 1252 для западноевропейских языков, где русского языка нет.
Кроме привязки ко времени можно привязаться еще к фреймрейту. Если задан фремрейт, то скорость объектов можно определять исходя из него, например, делением заданной константы на частоту кадров. Если константа 120 и фреймрейт 120, то абсолютная скорость 1, а скорости всех объектов находятся умножением на коэффициенты заданные для каждого объекта. Я это так реализовал.
2:40 - Библиотека SFML прекрасно работает на 64битной архитектуре, что соответствует параметру x64
Она прекрасно работает с cmake и похрее на чем. Этож cmake.
У меня не загружается текстура космоса, что делать? (я все тексуры уже копировал на C:\IT\SFML-2.5.1-windows-vc15-64-bit)
Не понял в чём был прикол с возвратом кода 35 и потом снова возврата к 1
Норма!
Почему то картинку не видно код работает
После клонирования репозитория разместить распакованную библиотеку SFML на диске
C:\IT\SFML-2.5.1-windows-vc15-64-bit
@@user-ch1mt9eo8w разместил, все равно не появляются картинки, хотя иконка работает корректно
у меня тоже самое
Прошу пояснить, зачем 2-ой бэкграунд, и что за проверка pos.x < -1280, и зачем нужен clock.restart?
Второй бэкграунд работает в паре с первым, двигается создавать иллюзию полёта, замещая фон звёздным небом. Если уходит в - 1280 перемещается на начальное положение. 1-2-1-2-1-..... вот таким образом попеременно.
@@user-ch1mt9eo8w спасибо
заканчиваеться картинка космоса(
Выполните цикличность одна меняет другую
7:31 Не увидел, где обновляется time.
8:59 увидел. Думаю, это было нужно написать с самого начала.
Зачем window переименовал в win? В чём удобство?
так меньше печатать
звучит так себе 🙂
А нормально что у меня работает на базе конфигурации x64, и выдает ошибки когда ставлю х86?
Да это нормально, так как данный вариант библиотеки SFML предназначен только для 64х разрядных систем.
@@user-ch1mt9eo8w спасибо
код работает, но картинок нет. в чем я ошибаюсь?
После клонирования репозитория разместить распакованную библиотеку SFML на диске
C:\IT\SFML-2.5.1-windows-vc15-64-bit
Не работает загрузка текстури. Сборка х64, 2.6.1
Поток 0x1b5c завершился с кодом 4 (0x4).
#include
using namespace sf;
int main()
{
// Створення вікна Windows
RenderWindow win(VideoMode(1280, 720), "Група домой");
Image icon;
if (!icon.loadFromFile("images/icon.png"))
{
return 1; // Отсутствует иконка приложения
}
win.setIcon(32, 32, icon.getPixelsPtr());
// Космос
Image imgSpace;
if (!imgSpace.loadFromFile("images/kosmos.png"))
{
return 3; // Отсутствует изображение космоса
}
Texture textureSpace;
if (!textureSpace.loadFromImage(imgSpace))
{
return 4; // Не вдалося створити текстуру з зображення
}
RectangleShape gamingBackground(Vector2f(1280, 720));
gamingBackground.setTexture(&textureSpace);
while (win.isOpen())
{
Event event;
while (win.pollEvent(event))
{
if (event.type == Event::Closed)
win.close();
}
win.clear();
win.draw(gamingBackground);
win.display();
}
return 0;
}
Доброго времени суток. Попробуйте использовать версию sfml 2.5 и загрузить репозиторий согласно инструкции в githab
@@user-ch1mt9eo8w я экспериментально понял, что оригинальная картинка 1280 на 720 загружается ибо return 1 отсутствует, а вот текстура не загружает это ретуон с другим кодом ошибки. Экспериментально уменьшил картинку на 36,68% и текстура ее отобразила, дальше понял что картинку можно программно утешать в размера и передать в текстуру, а ее в спрайт. Последний маштабируем до оригинального размера.
Почему так не понял. Мне не очень нравить когда window.draw может текстуру,спрайт,фигуру принять параметром, а вот изображение отказаться.