Созданные ответы форума
-
АвторСообщения
-
Почти на 100% уверен что проблема тут в setOrigin, и находится она в классе анимаций. Поищи строку в классе анимаций у себя:
sprite.setOrigin(…, …);
Если найдешь ее – удали, и должно все заработать, разумеется если оставишь w и h = anim.getW() и anim.getH() соответственно.
Да, разумеется можно, хотя не совсем понятно, что именно ты хочешь. Если, например, речь идет о рамке с полоской здоровья и манны, то ты можешь привязать их координаты к координатам камеры. Аналогично можно сделать и с объектами карты, и вообще с чем захочешь.
Твоя самая главная ошибка, что ты копируешь и не смотришь что копируешь. Твоя ошибка находится тут:
C++123456if (key["L"]){dir = 1;if (STATE != duck) dx = -0.1; // если мы сели, то мы не передвигаемсяif (STATE != stay) STATE = walk; //ОШИБКА! (если мы находились в состоянии stay,то переходим в состояние walk)}Измени условие в ошибочной строке на: if (STATE == stay) state = walk;
Сейчас у тебя получается что игрок должен уже не стоять чтобы состояние изменилось на walk. А поскольку ты из стоячего положения идешь, то ты STATE не меняешь он все время остается stay, и ты никак не можешь его переключить на walk.
Ну а вообще у тебя слишком сложная задача состояний, есть много возможностей где-то ошибиться в ней. Можно сделать меньше строчек и менее забагованой.
Решение зашифровать, конечно неплохое… но я недавно копался в файлах разных игр из стима, и не нашел в них ничего похожего на файлы, хранящие сохраненные мною игры, даже зашифрованные. Т.е. получается эти файлы сохранения где-то спрятаны. Хочется также сделать, чем я хуже…
sfml-graphics-d-2.dll у тебя не хватает судя по всему. Добавь ее в папку дебаг.
Нашел проблему, из-за того что анимация не лупнутая, в последнем кадре бралось неправильное h и из-за этого глюки возникали. Странно только почему они не всегда были видны…
Хотя наверно я какую-то глупость написал. Как программа может раз в кучу циклов пропускать какую-то конкретную строчку кода, а все остальные разы не пропускать ее, и причем только эту… бред. Но все равно, проблема странная, может кто сталкивался с чем-то подобным.
В общем самый лучший вариант, в самом начале кода прописать 1 строку:
C++1#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")И всё, больше абсолютно ничего не надо делать, консоли не будет.
А где арендовать можно, хостинги на которых сайты арендуют могут подойти? Или надо где-то еще искать? Мне впринципе не нужен очень мощный сервер.
Кстати, может на будущее посоветуете, как лучше разместить сервер игры? Может можно как-то за недорого арендовать игровой сервер для сервера игры, по аналогии с хостингами для сайта? Хочется не только с друзьями играть, но и выложить куда-нибудь игру, а свой комп даже с внешним ip использовать не вариант.
Да, точно, у меня внутренний, значит проблема в этом. Спасибо.)
динамический
Вроде исправил эти случайные баги (по крайней мере за большое количество тестовых игр не один не случился).
Проблему решил следующим образом:
1) Перед всеми подозрительными участками кода (где это не критично) поставил socket.setBlocking(true); (раньше было фолс).
2) После всех подозрительных участков кода поставил socket.setBlocking(false); т.к. для остальных участков иначе создавались проблемы иногда.
Там действительно терялась иногда часть данных именно при получении их клиентом (на сервере все нормально было).
Там несколько сотен кода суммарно на сервере и клиенте, которые отвечают за саму игру, и в которых проскальзывают редкие баги. Поэтому думаю скидывать подозрительный код не стоит… хотелось бы узнать из-за чего может быть потеря данных (кроме проблем с провайдером). И почему это происходит настолько редко. Я сегодня весь день тестил, сыграл наверно игр 40+, и такие баги случились всего пару раз.
П.С.
Все пакеты, после работы с ними я чищу, и память на сервере не захламляю (локальные переменные удаляю после работы с ними).
04.05.2016 в 09:40 в ответ на: Откомпилированная релизная версия не работает на других компах #3714+1Проблему решил откомпилировав релизную версию в visual studio 2010, до этого компилировал в 2015-й.
-
АвторСообщения