RazorNd

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

Просмотр 15 сообщений - с 16 по 30 (из 46 всего)
  • Автор
    Сообщения
  • в ответ на: GamE bY XduBHaosX [НАЗВАНИЕ ИГРЫ] #3346
    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Тебе нужно засекать время которое проходит между рендерингом изображения. Умножая это время на скорость ты получаешь расстояние пройденное персонажем между двумя кадрами.

    в ответ на: Плавная смена фона, работа с видео #3254
    +2
    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Они пишут там sfe, потому что это пространство имен библиотеки sfeMovie, основанной на SFML. Данная библиотека позволяет проигрывать видео. Вот сслыка на ее официальный сайт и github

    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Редактор зачем то оборачивает ссылки в коде из за чего команда с git корявится правильно вот так:
    git clone https://github.com/SFML/SFML.git SFML

    в ответ на: урок 22 #3246
    +2
    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Alex, если у тебя ругается вот на такого типа строки: std::vector<sf::Rect<int>>, и ты используешь не с++11, то я знаю что у тебя за ошибка.
    Нужно писать вот так: std::vector<sf::Rect<int> >, то есть ставить пробел между закрывающимися угловыми скобками.

    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Скачиваешь:

    • CMake
    • Git
    • Android SDK
    • Android NDK
    • Apache Ant

    Делаешь так чтобы из командной строки/терминала  до этого всего можно было достучаться. В случае с windows прописываешь в переменную окружения PATH пути до следующих директорий:

    • [Path to CMake]/bin
    • [Path to Git]/bin
    • [Path to SDK]/tools
    • [Path to SDK]/platform-tools
    • [Path to NDK]
    • [Path to ANT]/bin

    В случае с linux тоже можно прописать, но в большинстве случаев не имеет значение поскольку все ставиться в /usr/bin и так доступно в консоли (думаю линуксойдам вообще не стоит объяснять ибо они и так все понимают, без моих корявых объяснений)

    Дальше открываем терминал переходим в папочку где не жалко гадить и делаем

    Для тех кто не знаком с git, данной командой мы клонировали репозиторий с SFML себе на компьютер в папочку SFML.

    Дальше нам нужно собрать библиотеку SFML для компиляторов android. Для удобства в директории (папочке ^_^)  SFML создадим поддиректорию builds. В linux это происходило бы вот так:

    Как это делается в windows,  я уже если честно не помню, но кажется точно также.

    Собственно, если внимательно присмотреться то я создал не только директорию builds, но еще и armeabi. Сделано это потому что в данный момент существует несколько основных платформ на которых работает android: arm, mips, x86 и т.д. Под этот зверинец существует несколько компиляторов android, свой для каждой платформы. Соответственно и библиотеку нужно собирать для всех этих платформ. Но в качестве тестовой сборки сделаем только для одной самой распространенной.

    Дальше нужно сгенерировать make файлы для этого воспользуемся утилитой cmake со следующими параметрами:

    Если генерация прошла успешно… Кого я обманываю, конечно она скорее всего закончилась не удачно. Ну что же здесь я могу только посоветовать внимательно читать вывод cmake и ставить необходимые зависимости. Если что то не получается, то ответ скорее всего найдется в гугле.

    Если генерация наконец то прошла успешно – поздравляю можете приступать к сборке.

    Для ускорения сборки можно воспользоваться многоядерностью: добавьте параметр -j и число ядер процессора + 1. У меня

    Если вы используете visual studia, то у вас нет утилиты make. Ее аналог в visul studia кажется nmake (никогда не был приверженцем visual studia)

    После окончания сборки в директории lib будет собранная библиотека.

    Ибо уже поздно, а мне завтра вставать на работу и вообще уже очень лениво, то продолжение следует… Если конечно, кто то вообще сможет разобраться в моих пояснениях и дойти до этого этапа =D

    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Heisenberg, если что я собрал пример, который дается для android и на этом мой запал как то по угас. Уж больно заморочено в андроиде все их файлы манифеста, активити и прочей лабуды.

    в ответ на: Взаимодействие объектов #3240
    +2
    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Sinsinmin, здравствуй.

    Я использовал алгоритм А* для нахождения оптимального решения для игры в обобщенные пятнашки. Не думаю, что тебе это чем то поможет, но вот ссылка: github.com/RazorNd/BarleyBreak

    Кстати, твои картинки не отражают сути этих алгоритмов. Используя эти алгоритмы мы находим самый короткий путь или один из самых коротких путей, если есть два пути с одинаковым расстоянием. Так что найденный путь будет или одинаковым или равным по расстоянию.

    в ответ на: Передача обьекта класса по сети #3197
    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    tyman, давали бы уж тогда сразу ссылку на конкретную статью

    Павел, сделали бы вы стили для ссылок отличающимся от основного текста сообщения.

    в ответ на: Передача обьекта класса по сети #3195
    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    mypmyp, в данном случае следует поступать точно также как и в случае, если мы хотим передавать в STL потоки свои классы, а именно нужно перегрузить операторы помещения и изъятия из потока данных (На самом деле скорее оператор побитового сдвига, но кто мы такие чтобы спорить с создателями STL? =D)

    И так что нам нужно чтобы все это приготовить?

    Ну что же начнем с класса который мы собираемся передавать в пакет. В качестве подопытного возьмем какой нибудь простенький класс

    Дальше самое вкусное: перегрузим для него наши операторы:

    Вся магия до не возможности проста: мы просто поочередно запихиваем все поля класса в пакет, поскольку перегрузка данной функции для отдельных полей класса у нас есть (в нашем случае для int). В случае если ваш класс содержит другие классы, то нужно перегрузить данные методы и для этих классов.
    Распаковка пакета происходит точно также, как и упаковка за исключением смены оператора левого побитового сдвига на правый. © Кэп

    Что же и осталось последнее – это посмотреть как это все будет использоваться.

    Как видно использование ни чем не отличается от стандартных типов данных.

    P.s.: спасибо, что терпели очередной выпуск программной кулинарии от RazorNd

    в ответ на: Ряд вопросов #3162
    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Пользуясь UDP не забывайте проверять пакеты на максимально возможный размер MaxDatagramSize

    в ответ на: Ряд вопросов #3146
    +2
    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    mypmyp, не посмотрел, что вы UDP сокеты используете. Тогда все еще проще, перейдите в не блокирующий режим udpSocket.setBlocking(false);

    в ответ на: Ряд вопросов #3144
    +1
    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    mypmyp, в данном случае тебе нужно использовать sf::SocketSelector. Добавляешь в него сокеты, а затем проверяешь методом isReady, если возвращают true => в сокет была записана информация. Вот пример из документации:

     

    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Шаблонный класс вектора std::vector должен хранить указатели на TItesm, в противном случае у тебя происходит копирование объекта в результате чего все поля не базового класса усекаются.

    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    Подожди, опиши все действия, которые ты вообще совершал. Попробуем установить проблему, чтобы люди столкнувшиеся с подобной проблемой меньше мучилась.

    RazorNd
    RazorNd
    Участник
    Сообщений:46

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

    Репутация:38

    clang 3.5. А какую версию ты скачал SFML? Случайно не 64-битную?

Просмотр 15 сообщений - с 16 по 30 (из 46 всего)