KindRedSand

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

Просмотр 15 сообщений - с 1 по 15 (из 82 всего)
  • Автор
    Сообщения

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

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

    Репутация:30

    А вам знакомо определение Port Forwarding? У хоста должно быть правильное перенаправление портов, отсутсвие строгого NAT и в принципе открытый целевой порт. В первую очередь вам нужно проеврить это. Проверить доступность можно через сервис 2ip.
    Моё объяснение будет всё же неправильным, но для понимания картины думаю сойдёт.
    При TCP подключении устанавливается Point to Point соединение, в котором происходит вещание между 2 клиентами. Один ожидает подключение – второй производит дозвон. Когда оба устройства находят друг друга они начинаю с определённой переодичностью посылать между собой Ping Pong запроы(Жив ли собеседник или нет). При каждой отправке данных от одного клиента ко второму посылается последовательность байтов в синхронном режиме (Т.е. чтение 0 и 1 с определённой переодичностью о которых устройства скажем так договариваются сами.) и по окончании передачи части байтов клиент вещающий переходит в режим чтения ожидая ответа от того кто принимал. Если ответ положительный -> идёт следующая порция байтов, если ошибка -> последовательность передаётся заного.

    в ответ на: Проблема с кодом! #4953

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

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

    Репутация:30

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

    в ответ на: ввод переменных из файла #4948

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

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

    Репутация:30

    Собственно файл буфферизируется единожды при первом обращении к файлу. Дальше все считывается из строки.
    Здесь запись конечно не сортируется как ключ – значение, но никто не мешает тебе пропустить весь буффер через регулярные выражения (Regex) получив std::map<std::string, std::string>, проходится по нему итерациеq и присваивать значение если ключ совпадает с искомым. Это уже не твои проблемы если юзверь поковырялся и нагадил в конфигах поставив заместо числа строку, так что смело конвертируй где нужно число через функции std::stoi, std::stof.

    в ответ на: ввод переменных из файла #4946

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

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

    Репутация:30

    Ну на скорую руку могу только предоставить менеджер локализации написаный много времени назад, но новая студия вроде как спокойно “съела” код, для твоих целей он в принципе подойдёт :)
    Но если тебе нужна только загрузка с файла тебе понадобится только этот кусок кода где localeBuffer будет полностью вмещать содержимое файла. И да, не забывай о том что потребуется приведение к типам из строки к числу – для этого есть std::stoi, std::stof, std::stod, std::stol, std::stoul и т.д. Перевод перевод делай желательно sf::String::toWideString() ибо мы работаем с юникодом при использовании строки sfml

     

     

     

    в ответ на: Текст #4944

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

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

    Репутация:30

    Объясню оратора выше. В аргумент функции или метода по умолчанию мы передаём копию объекта, т.е. как правильно заметил makish под шрифт выделяется лишняя память которая удаляется при выходе из конструктора. Как по мне особо смысла передавать sf::Font даже через ссылку не совсем целесообразно. Лучше конечно сделать статичный загрузчик ресурсов который всегда будет иметь и передавать лишь 1 копию каждого ресурса, но ты можешь сделать шрифт и как глобальную переменную (Или статичную, принадлежащуюю какому-либо классу. Тогда вызов будет происходить как MyClass:MyFont). Если нужно получить доступ к тексту в другом .h .cpp файле с методом глобальной переменной то прописываешь где надо

    Со статичным членом класса – указываем где надо наш хидер и получам доступ к классу::переменной
    Так же лаги могет происходить из за: Кол-во объектов в поле отрисовки, Кол-во объектов в очереди обновления, Кол-во объектов проверяют друг с другом столкновения.
    Если хочешь можешь обращатся ко мне через дискорд https://discord.gg/MC3zMHn . На сайт я не особо часто захожу, но всегда могу помочь в дискорде

    в ответ на: Вертикальные белые полосы #4936
    +1

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

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

    Репутация:30

    Правильно, ибо SFML производит отрисовку “По пиксельно” в отношении ОКНА и НЕ применяет сглаживание по умолчанию. Для активации сглаживания в конструктор окна надо передавать sf::ContextSettings с заданым значением зглаживани (Antialiasing).

    в ответ на: Взаимодействие двух списков #4931

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

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

    Репутация:30

    Как понимать соприкосновение указателей? Посколько оба итератора принадлежат разным спискам они никогда не будут равны друг другу (Т.е. они не смогут указывать на общий массив в куче). Если ты хочешь просто удлять объект из вектора если Зомби задевает огонь то проверяй пересечение обоих через вложеный цикл

    Выйдет примерно такая конструкция. IDE с плюсами под рукой сейчас нет что бы проверить названия методов.
    А, и да, не пугайся конструкции auto it1 = enemyArray.begin(); Тип auto зарезервирован языком как автоматически определяемый тип на момент сборки объекта, следственно компьютер сам поймёт что от него тут требуют если полю сразу было передано значение. Единственный недостаток auto (var в C# и вроде Java) в том что он ухудшает читаемость кода человеком, но в циклах вполне себе используем.

    в ответ на: Время SFML #4922

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

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

    Репутация:30

    FPS никак не связан со временем. Время используется что бы несмортя на то, сколько времени бы не заняла обработка цикла объекты находились в момент времени там, где предполагается. То, что тут показывают умножать время и перемещение – всё же абсурд и влечёт за собой последствия, но зато позволяет отбрасывать объект в точку где он должен находится в данный момент времени.


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

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

    Репутация:30

    На шарпе это выглядит примерно так

     


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

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

    Репутация:30

    При помощи ивента нажатия клавиши (sf::Event::KeyPressed).
    Вы же в Keyboard::isKeyPressed(Keyboard::Key) передаёте аргумент Keyboard::Key который так же получаете при перехвате sf::Event::KeyPressed

    Здесь hookedKey  и будет олицетворять назначеную клавишу

    в ответ на: Элементы списка #4919

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

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

    Репутация:30

    Собственно, а почему тут выставляется глобальная позиция? Каждый объект должен хранить свою позицию, а не пользоватся одной глобальной

    в ответ на: установить размер окна #4903
    +1

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

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

    Репутация:30

    Собственно, а в чём проблема?
    Есть же метод в классе окна window->setSize(Vector2u(800, 600));


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

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

    Репутация:30

    Хм, тогда вот
    https://discord.gg/jTpSQBn


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

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

    Репутация:30

    Лучше пишите мне через этот сервер дискорда: https://discord.gg/55Zud5 Можно прямо из браузера работать
    Вам просто нужно указывать всё без поворотов самой изометрии (Т.е. просчёт коллизии должен быть в обычной плоскости, а уже рендер – в изометрии)

    в ответ на: мой клон марио #4896

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

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

    Репутация:30

    Хм, и далеко не все сегмены загружены на гитхаб. Используй GitHub Desktop – не придётся загружать файлы через браузер/ Git Bush

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