Я пришёл почти к тому же самому. Только я взял как за шаблон определённый размер(например 800, 600), потом получал размеры окна и получал коэффициент соотношения размеров к шаблону. Позицию умножал на этот коэффициент. И масштабировал тоже. Только иногда изображения растягивалось не очень приятно. FinderX - Android Аркада
Назрел такой вопрос, как в играх делают так, что в зависимости от размера окна все спрайты маштабируются, отображаются в нормальном качестве, и на своих местах? FinderX - Android Аркада
Сообщение отредактировал goldsphere - Суббота, 19 Октября 2013, 07:53
следовательно после него не нужно делать Iterator++ , т.к. тогда ты будешь скакать через одного.
тут вот какая фишка. Если не так, то у меня будет обрабатываться один и тот же элемент пока старый не удалится. То есть он должен пройти по всему вектору и если надо удалить.
Этот код для пуль из scroll shooter. Но он не работает. При этом элементы удаляются через один(я пробовал на тестовых примерах). С вектором ещё более не понятней. В чём ошибка, и как мне сделать нормальную реализацию стрельбы?
Вообще, если я просто закидываю длл из sfeMovie в папку с ехе, то он выдаёт исключение. Сейчас я закинул длл из shared туда же(там кстати либ нет, они только в dev), при этом некоторые пришлось с заменой копировать, он при запуске говорит, что Порядковый номер 49 не найден в библиотеке DLL swcale-2.dll. Пробовал подключать Dev версию. Выдавал исключение bad_alloc. Путь к файлу точно правильный.
Как установить эту библиотеку на visual c++? Просто подключая хедеры и либы не выходит. На сайте написано, что нужно ещё FFmpeg, но на сайте FFmpeg три разные версии, какую мне нужно и как их ставить я не знаю. Если кто пользовался - помогите. Ещё он требует чтобы dll sfml находились в папке с экзешником, что тоже не очень кошерно. Ну и заодно вопрос. Ставил SFML на Code::Blocks. Устанавливал всё как на сайте, но самый простой код не работает. После запуска пишет - "Завершение программы SFML, Windows ищет способ решения проблемы". Что с ним не так? Буду рад помощи. sfeMovie FFmpeg
TideS, ну, для более плавного передвижения. в int допустим передвижение самое медленное 1(не считая ноль). А во float или double можно дробные значения.
Добавлено (10.08.2013, 15:10) --------------------------------------------- Archido, я уже решил проблему. Я сделал не вектор, а динамический массив. Потом просто перегрузил функцию AddToInventory, для каждого предмета и делал в ней ItemArray[_index] = new тип предмета. И в деструкторе инвентаря удалял занятые ячейки. FinderX - Android Аркада
Сообщение отредактировал goldsphere - Суббота, 10 Августа 2013, 15:10
Так деструктору неизвестен pi. ------------------------------------- Появился у меня вариант идентифицировать предметы по ID, и вместо vector<Item*> vi; хранить просто динамический массив int *ArrayID. Но тогда Класс инвентаря должен иметь доступ к объектам классов предметов. FinderX - Android Аркада
Сообщение отредактировал goldsphere - Четверг, 01 Августа 2013, 18:36
Здравствуйте. У меня возник вопрос при реализации инвентаря. Есть несколько классов предметов Weapon, Potion, Clothe. Все они наследуются от Item. Класс инвентаря содержит vector<Item*> vi; функции добавление, очистки определённой ячейки. В мэйне определены объекты всех классов.
void Inventory::AddToInventory(Item i, int _number, int _index) { i.Add(_number); i.SetIndex(_index); if(ItemCount < sizeOfInventory) { Item* pi = new Тип подкласса; vi[_index] = π ItemCount++; } else cout<<"Inventory is full\n"; }
но как потом очищать память. Как это можно сделать? Может я вообще неправильно подошёл к этому вопросу. На всякий случай выложу исходники, если заметите ещё что-то неправильное, говорите.
Сообщение отредактировал goldsphere - Четверг, 01 Августа 2013, 18:00
Snuux, А зачем её покупать? Купи электронную книжку и загрузи, дешевле будет. Тем более у этой книги очень ограниченный тираж. FinderX - Android Аркада