MicroSDA

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

Просмотр 15 сообщений - с 31 по 45 (из 64 всего)
  • Автор
    Сообщения
  • в ответ на: Проблемы при релизной сборке #753
    +2
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Ешё можно и разрядность перепутать! Смотри чтоб sfml библиотека совпадала с разрядностью твоей программы если х86 то х32, если х64 то собственно х64. Я на этом застрял при первом знакомстве с sfml.

    в ответ на: Контейнеры в классе #752
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Как я понял для отрисовки итератор должен представлять собой силку на объект. Компиль мне об этом говорит прямо, что метод draw() требует силку. По поводу выхода итератора за приделы я так и не чего толкового не нашел.

    в ответ на: Проблемы при релизной сборке #750
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Смотри  чтоб все файлы были на английском и путь к ним не содержал русских букв. Из за этого могут быть конфликты. По поводу dll компиль прямо говорит что нету dll, кинь все dll в папку с проектом и если ты на другом компе то в настройках проекта поменяй путь к папкам lib и папке include.  Проверь какие либы включены, если дебаг то должный быть с припиской -d. Также проверь сборку проекта, статик либы он тебе собирает или динамические то есть dll.

    в ответ на: Контейнеры в классе #738
    +1
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Переименуй свой класс он с чем то конфликтует. Даже без отрисовки мне выдает :Expression: list iterator not dereferencable. Гугл дал результат о том что итератор выходит за рамки массива. Сам с этим сталкивался.

    Причина: невозможно преобразовать “sf::CircleShape *” в “const sf::Drawable &”
    Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно.

    Надеюсь кто нибудь даст ответ ). Самому интересно как это решить.

    в ответ на: Контейнеры в классе #737
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Попробуй по отдельности, сначала без (*it)->draw( window );  потом без window.draw(*it); 

    И напиши свою ошибку, что компилятор говорит.

    в ответ на: Различные окна в проекте игры. #735
    +1
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    В принципе ты возможно делаешь также. Если ты хочешь закрыть окно меню и при это не закрыть основное окно игры то создай новое окно и новый обработчик для него (RenderWindow windowPlay. итд…) и закрывай уже его.

    Создай цикл внутри цикла:

    while(window.isOpen)

    {

    //Тут обработчик твоего меню

     

    while(window.isOpen)

    {

    //Тут игра

    if(Keyboard::isKeypressed(Keyboard::Esc){ break;// вылетаем из основного цикла в тот что выше, то есть там где меню }

    }

    }

    Не пойму зачем тебе отдельные окна (Рендить новое окно все же ресурсо емко)

    У меня была игра в которой я так реализовывал меню и прыгал по циклам в зависимости от того что я делал.

     

    в ответ на: Различные окна в проекте игры. #734
    +1
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Создай класс Гейм меню. В нем реализуй меню. Создай индекс выбора относительно которого ты и будешь запускать те или иные вещи. В общем цикле спрашивай с каким индексом ты вышел из класса меню и грузи то что тебе нужно . При нажатии Esc заходи опят в класс и там выбирай то что тебе надо. Рисуй меню внутри класса пусть он принимает силку на хендл окна &window. Пусть твой главный метод  в классе меню выгляди так.

    private:
    sf::Image image;
    sf::Texture texture;
    sf::Sprite sprite;
    int index = 0;
    итд…

    public:
    int MenuUpdate(RenderWIndow &window)
    {
    while (window.isOpen)
    {

    if (Keyboard::isKeyPressed(Keyboard::Up){index –; while (keyboard::isKeyPressed(Keyboard::Up){//Для паузы! можешь по своему это реализовать.//Цикл пустой.}}
    if (Keyboard::isKeyPressed(Keyboard::Down){index ++;while (keyboard::isKeyPressed(Keyboard::Up){//Для паузы! можешь по своему это реализовать.//Цикл пустой.}}
    if (index < 0){ index = 0;}
    if (index > MaxElementMenu///Максимальное количество пунктов меню ){index = MaxElementMenu;}

    if(index == чему тебя надо)
    //Тут рисуй свое меню относительно индекса// я к примеру крашу элементы меню в разный цвет. К примеру выбранное в красный а все остальное в белый.

    if(Keyboard::isKeyPressed(Keyboard::Return){return index;//выходим с нужным индексом }

    //И как вышли уже на основе индекса делаем то что надо. То ли заходим в новое меню то ли чтонить ещё.
    }

    }

    Надеюсь помог.

    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    По нажатию левой кнопки сохраняем позиции курсора мыши (x1,y1), пока нажата кнопка мыши (допустим левая) рисуем абстрактный  прямоугольник относительно изменения положения курсора(x2,y2) от (x1,y1)-получаем прямоугольник (x1,y1,x2,y2). Проверяем столкновения наших объектов с этим прямоугольником, если столкнулись кладем силку на него куда нибудь(или в динамический массив или можно положить в std::<vector>), кладем аккуратно (чтоб не было копий), по окончанию должна буловская переменная (true если выделили, false если нет  ). Ну и в конце получаем размер массива, относительно этого запускаем цикл в котором и будем взаимодействовать с выделенными объектами. Как то так

    в ответ на: Взаимодействие объектов #718
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Если их останавливать то я думаю  они будут ходить рывками. Но я попробую

    в ответ на: Еденичное нажатие клавиши #715
    +2
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    //name -это std::string;
    if (Keyboard::isKeyPressed(Keyboard::BackSpace))
    {
    if (!name.empty())//если не пустая строка
    {
    name.erase(name.end() – 1);//в конец строки и минус 1 знак
    }

    }

    в ответ на: Взаимодействие объектов #713
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Не. Их то телепортирует то просто не чего происходит. Пример перемещения брал у тебя из урока о создании врага. Двигаю их не setPosition(); а move, все работает отлично. Решил взять это за вектор скорости :

    x += 0.1*timee*(xT – xM) / TargetDistance;
    y += 0.1*timee*(yT – yM) / TargetDistance;

    Потом    move(x,y);

    Возникла идея по типу как тут :http://monkey-x.ru/knowledge/articles/12-fizicheskie-dvizhki-dlya-chainikov

    но пока что знаний у меня для этого не хватает.

    Чувствую что придется учить матрицы итд….(

    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Был бы проект в Visual studio яб точно сказал тебе что не так.

    Смущает вот этa запись:

    window.draw(pScore.text);
    window.draw(pHealth.text);

    Попробуй так :

    window.draw(pScore);
    window.draw(pHealth);

    в ответ на: Пример реализации SFML Network #702
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    В скорости передачи и обработки пакетов. Я убрал 10 миллисекунд из кода, но по ощущениям как будто сервер в китае а я где нибудь в польше )

    в ответ на: Пример реализации SFML Network #699
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Я тут нафлудил )) за ранее извиняюсь. Но по чему такая задержка ?

    в ответ на: Пример реализации SFML Network #698
    MicroSDA
    MicroSDA
    Участник
    Сообщений:64

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

    Репутация:22

    Это у меня проблемы с подключением библиотеки sfml. Очень странные проблемы, не хочет не в какую подключаться . Видимо это новые приколы от Visual Studio 15 RC , а так все работает, + автору ) (компильнул через Visual Studio 13 )

Просмотр 15 сообщений - с 31 по 45 (из 64 всего)