Суббота, 20 Апреля 2024, 05:05

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » Нохчи [677]
Результаты поиска
НохчиДата: Понедельник, 20 Мая 2013, 21:15 | Сообщение # 61 | Тема: 2D ВЕКТОРЩИК
заслуженный участник
Сейчас нет на сайте
А стимпанк корабль и корабль в изометрии это тоже вектор?

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Понедельник, 20 Мая 2013, 12:09 | Сообщение # 62 | Тема: Сборка мусора(С++)
заслуженный участник
Сейчас нет на сайте
Archido, спасибо.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Понедельник, 20 Мая 2013, 08:55 | Сообщение # 63 | Тема: Сборка мусора(С++)
заслуженный участник
Сейчас нет на сайте
Archido, да, weak бы идеально подошел. Но weak можно создать только и shared_ptr.

UPD
Или имеется ввиду при первом запросе ресурса создать shared_ptr, создать из него weak, сохранить weak и вернуть shared, а при последующих запросах делать weak.lock()?


Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Понедельник, 20 Мая 2013, 09:46
НохчиДата: Воскресенье, 19 Мая 2013, 23:26 | Сообщение # 64 | Тема: Сборка мусора(С++)
заслуженный участник
Сейчас нет на сайте
Движок сторонний. Поэтому менеджер все-равно должен вертать ресурс известного движку типа.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Воскресенье, 19 Мая 2013, 20:14 | Сообщение # 65 | Тема: Сборка мусора(С++)
заслуженный участник
Сейчас нет на сайте
Всем доброго времени суток.
Потребовалось написать менеджер ресурсов, работающий по следующему принципу:
Информация обо всех используемых в программе ресурсах хранится во внешнем файле, разумеется грузить их все сразу смысле нет - различные ресурсы(тесктуры/музыка/шрифты) используются на разных этапах работы программы. К тому же, после отработки очередного этапа множество ресурсов надолгое время становятся ненужными. Соотвественно нужно
a)загружать ресурс при первом запросе со стороны какого-нибудь объекта
b)выгружать, когда ни один объект больше ресурсом не пользуется
Со-вторым пунктом сложности. Нужно каким-то образом узнать, что все ссылки на ресурс потеряны. Конечно же в голову пришли умные указатели с подсчетом ссылок. Но как это грамотно реализовать не знаю. Вижу два варианта:
1)Менеджер хранит внутри себя shared_ptr на ресурс, который возвращается при запросе ресурса(соответственно увеличивается счетчик ссылок). Когда какой-либо объект запросивший ресурс уничтожается, уничтожается и его экземпляр shared_ptr, и счетчик ссылок уменьшается. Соответственно, когда все объекты пользовавшиеся ресурсом будут удалены, счетчик ссылок будет равен 1(shared_ptr из самого менеджера). Если бы можно было заставить объект удаляться при счетчик равному 1, а не 0, было бы прекрасно. Но в нашем случае придется через какие-то промежутки времени вручную вызывать метод сборки мусора и проверять
Код
if(ptr->use_counter() == 1) delete ptr;

А это лишняя куча кода и вообще костыль.

2)Мы все так же возвращаем объектами требующим ресурс shared_ptr на него. Но в данном случае внути самого менеджера этот указатель не храним, вместо этого используется своя схема подсчета ссылок на ресурс. Таким образом при удалении каждого объекта, который запрашивал ресурс, будет вызван функтор удаления ресурса, внутри которого мы проверяем наш самопальный счетчик и если он равен нулю, удаляем ресурс. Код демоснтрирующий это на пастебин

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

struct ResTexture
{
  Texture texture;
  unsigned int use_count;
};

struct ResSound
{
  Sound sound;
  unsigned int use_count;
};

struct ResFont
{
  Font font;
  unsigned int use_count;
};

В общем, глаз замылился уже. Кажется, что какие-то очевидные вещи упускаю.

У кого какие мысли?


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Вторник, 14 Мая 2013, 22:17 | Сообщение # 66 | Тема: Считывание данных из фаила
заслуженный участник
Сейчас нет на сайте
Ставим указатель на конец файла - fseek;
Получаем размер файла в байтах - ftell
Ставим указатель на начало файла - fseek
Читает весь файл сразу - fread


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Четверг, 09 Мая 2013, 23:26 | Сообщение # 67 | Тема: Подскажите эмулятор
заслуженный участник
Сейчас нет на сайте
Цитата (mef1sto)
Есть симуляторы иос

Если есть симулятор(эмулятор?) иос, то арм эмулировать вообще не проблема.


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Четверг, 09 Мая 2013, 23:06 | Сообщение # 68 | Тема: SFML
заслуженный участник
Сейчас нет на сайте
Thor, коли сам не можешь.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Четверг, 09 Мая 2013, 13:41 | Сообщение # 69 | Тема: The Era of Lords [Глобальная пошаговая стратегия]
заслуженный участник
Сейчас нет на сайте
LORD_VALROY, респектище тебе. Я фанат таких игр. Нет ли в планах выложить исходники? Было бы интересено поглядеть на пару вещей.

Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Четверг, 09 Мая 2013, 13:55
НохчиДата: Четверг, 09 Мая 2013, 01:28 | Сообщение # 70 | Тема: SFML
заслуженный участник
Сейчас нет на сайте
sprite.move(1,1) заставит передвинуть на 1 пиксель вправо и вниз относительно текущих координат. Ты, видимо, вызываешь ее в цикле, поэтому и двигается спрайт у тебя бесконечно. Смотри справку по move и setPosition.

Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Четверг, 09 Мая 2013, 01:28
НохчиДата: Суббота, 04 Мая 2013, 19:17 | Сообщение # 71 | Тема: SFML
заслуженный участник
Сейчас нет на сайте
В realese-сборке должны быть подключены релизные либы, в debug-дебажные.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Пятница, 03 Мая 2013, 23:59 | Сообщение # 72 | Тема: SFML
заслуженный участник
Сейчас нет на сайте
Как минимум Draw без скобок надо передавать. RenderFunc(Draw)

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Пятница, 03 Мая 2013, 17:41 | Сообщение # 73 | Тема: Программы для создания программ
заслуженный участник
Сейчас нет на сайте
Undead, ты имеешь ввиду первый вариант daun`a, тоскать с собой компилятор и линкер?
daun, Archido, allxumuk, спасибо. Над этой инфой надо как следует подумать.


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Пятница, 03 Мая 2013, 12:28 | Сообщение # 74 | Тема: Программы для создания программ
заслуженный участник
Сейчас нет на сайте
Всем доброго времени суток.
Интересует принцип работы различных конструкторов, в которых методом drag&drop собирается программа, а затем выплевается исполняемый файл, зачастую под разные платформы. Как вообще такое реализуется? Программа описывается на каком-либо языке, а затем компилируется компилятором, который тащит с собой конструктор?
Спасибо smile


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Вторник, 30 Апреля 2013, 21:52 | Сообщение # 75 | Тема: Почему в С++ нет массивов?
заслуженный участник
Сейчас нет на сайте
Цитата (King_Of_Games)
Да паскаль более логичней и правильней чем ваш с++

Поддерживаю. Бросай этот С++ и возвращайся к нормально Паскалю.


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Среда, 17 Апреля 2013, 15:33 | Сообщение # 76 | Тема: Переход на новый язык программирования!
заслуженный участник
Сейчас нет на сайте
Цитата (zodiak)
Ну и как аргумент, 80 % существующего софта под винду сейчас написано на .NET.

Откуда такие цифры? Много и часто приходится ковырять различные программы, на .NET не так много написано ИМХО. Я бы сказал ~20%, но никак не 80%. Это имхо, мой опыт конечно не показатель.


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Понедельник, 15 Апреля 2013, 19:44 | Сообщение # 77 | Тема: Декомпилятор
заслуженный участник
Сейчас нет на сайте
Можно дизасмить. Но тут нужен серьезный навык, которого у вас конечно же нет.

Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Понедельник, 15 Апреля 2013, 19:44
НохчиДата: Воскресенье, 14 Апреля 2013, 12:10 | Сообщение # 78 | Тема: [2D]-закрой апельсин-[логическая]
заслуженный участник
Сейчас нет на сайте
Посмотрел демку. Забавно biggrin
Ничего укрывать не надо, просто взять один кубик и держать его как щит ))


Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Четверг, 11 Апреля 2013, 01:00 | Сообщение # 79 | Тема: Вопрос-Ответ (C++)
заслуженный участник
Сейчас нет на сайте
Попробуй удалить *.ncb файл. Это заставит intellisense заново проанализировать весь код. Иногда помогает.

Многие вопросы по Windows отпадут, если посмотреть тут
НохчиДата: Пятница, 05 Апреля 2013, 19:52 | Сообщение # 80 | Тема: Сайт не пашет.=(
заслуженный участник
Сейчас нет на сайте
SkyBox, пикчи уже давно не доставляют, жалкие подражатели ))

Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Пятница, 05 Апреля 2013, 20:09
Форум игроделов » Записи участника » Нохчи [677]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг