KindRedSand

Созданные ответы форума

Просмотр 7 сообщений - с 76 по 82 (из 82 всего)
  • Автор
    Сообщения
  • в ответ на: Меню игры #4564

    KindRedSand
    Участник
    Сообщений:82

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

    Репутация:30

    На вскидку код написан верно. Неплохо попутно и скидывать ошибки которые отлавливает IDE. Убедись что resourcePath+”название файла” ведут именно к картинке.
    Ну и вобще может пригодятся мои наработки:
    C++ ResourceManager.h Все подписи на анг ибо doxygen вобще не дружит с русским
    C++ ResorceManager.cpp

    C# IAssestHandler Перенесённая на C# версия


    KindRedSand
    Участник
    Сообщений:82

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

    Репутация:30

    Ну в хидере всегда висит обьявление, в cpp реализация. Если тебе нужно хранить в классе какой либо другой класс или передовать его в метод используй forward declaration(Т.е. сразу после include выписать используемые классы но header содержащий этот класс подключить в cpp файле!)

    Если работаешь из студии можешь использовать быстрые действия для генерации cpp файла.
    Ну и на досуге стоит почитать это, да и любую другую литературу по плюсам. Хотя по сути я плюсы изучал по аналогии с тобой, вот только сам вопросы не кидал на форумы, а учился на чужих ошибках :)

    в ответ на: Вид камеры и GUI #4560

    KindRedSand
    Участник
    Сообщений:82

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

    Репутация:30

    //Некропостинг но
    При изменении размера окна getDefaultView будет давать нам в распоряжение рястянутое/сплюснутое изображение GUI (т.к. возвращаеться View созданный при инициализации, я полагаю).
    Что бы с этим не сталкиватся когда начал переписывать свой движок на шарп в Main loop’е выделил отдельный метод ля отрисовки GUI который не должен смещаться.

    Ну а отлавливать изменение размера окна нужно в window.pollEvent(event);

     


    KindRedSand
    Участник
    Сообщений:82

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

    Репутация:30

    Можешь использовать глобальные или статические переменные.
    Для глобальной переменной:
    В main.cpp или где-то ещё определяешь int *имя*; Где нужно получить к ней доступ: extern int *имя*;
    Если нужен доступ к методу делаеться аналогично void foo(int Num) {} И где нужно получить доступ: extern void foo(int Num);
    Кстати, если предполагаеться что переменная в вызове метода может быть не переданна(void foo2(int Num = 0, String str = “”)) то значение по умолчанию должно указываться в extern void foo2(int Num = 0, String str = “”); а не в реализации.
    Статические просто определяются как static и обращение идёт как Class::переменная/метод.
    А вобще лучше сделать класс или структуру которые будут содержать в себе эти вещи и пихнуть их реализацию в .cpp

    в ответ на: Вопросс про время #4557

    KindRedSand
    Участник
    Сообщений:82

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

    Репутация:30

    Добавить bool поверх этого дела….

    в ответ на: Торможение #4556

    KindRedSand
    Участник
    Сообщений:82

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

    Репутация:30

    По факту не использовать cout для сброса всего. Используйте sf::Text для дебага информации обновляемой каждый цикл(Кстати, надеюсь цикл не имеет шаг равный частоте кадров). В cout в основном выводят информацию о ошибках либо о критических моментах программы, которые не должны возника каждый цикл. Ну и к “Чем больше пуль тем больше лагов”. Они просто картинки или выгружаються в физический движок? (Самописный/box2d) Если случай с box2d убедись что ты не создаёшь пули 5×5 метров размером (ибо измерения в box2d производится не в пикселях SFML).


    KindRedSand
    Участник
    Сообщений:82

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

    Репутация:30

    Я всё же не очень понял твою задумку. Если ты хочешь отдельно плавающее окно – используй второй RenderWindow в главном цикле. Если же ты хочешь всё распологать в одном окне – используй несколько View в каждом указываея viewport и делая отрисовку в окне с использованием каждого View.
    Учти что тут задаётся множитель от 0 до 1 относительно размера окна.
    Кнопочки на sf::Text особо проблем сделать не должно предоставить(text.getGlobalBounds().contain(Vector2f(Позиция курсора))).

Просмотр 7 сообщений - с 76 по 82 (из 82 всего)