Форум программистов, компьютерный форум CyberForum.ru

Подкиньте идею - C++

Восстановить пароль Регистрация
 
 
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
25.11.2013, 20:46     Подкиньте идею #1
Здравствуйте. Пишу потихоньку свой фреймворк для разработки игр. В главном цикле связанной список игровых обьектов обрабатывается: логика, коллизия, взаемодейтсвие и отрисовка. Но я хочу задать своим объектам приоритеты для взаемодействия и отрисовки, то бишь объект с найбольшим приоритетом отрисовки рисуется первый и тд. Но в каждой итерации главного цикла как то не хорошо сортировать список за приоритетами по пару раз. Подскажите как быть.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
25.11.2013, 20:50     Подкиньте идею #2
А с какой целью расставлять приоритеты? В работе с графикой всё равно двойная буферизация спасает.
Но, если уж так угодно, как вариант делать анализ производительности. Если производительность падает, то отсортировать по приоритету и откинуть лишние объекты со списка прорисовки.
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
25.11.2013, 20:50     Подкиньте идею #3
Используй priority_queue =)
newbie666
Заблокирован
25.11.2013, 20:52     Подкиньте идею #4
Цитата Сообщение от Hunter13ua Посмотреть сообщение
В работе с графикой всё равно двойная буферизация спасает.
спасает деф / стенсил буффера

Добавлено через 1 минуту
Цитата Сообщение от anubis1768 Посмотреть сообщение
Но я хочу задать своим объектам приоритеты для взаемодействия и отрисовки, то бишь объект с найбольшим приоритетом отрисовки рисуется первый и тд.
так никто не делает, это не верно
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
25.11.2013, 20:57  [ТС]     Подкиньте идею #5
Цитата Сообщение от Hunter13ua Посмотреть сообщение
В работе с графикой всё равно двойная буферизация спасает.
При чем здесь двойная буферизация? Вот у меня два спрайта в списке с1 и с2. с1 нарисуется первым, потому что я его(для примера) в список затолкну первым. Но я хочу чтобы с2 рисовался первым.

Не по теме:

Думать надо что пишешь


monolit, извини, на вечер уже башка квадратная, с cpusplus ни фига не понял. То есть при каждом добавлении элемента все элементы сортируются? То есть, те же яйца, только в профиль получается.

Добавлено через 54 секунды
Цитата Сообщение от newbie666 Посмотреть сообщение
это не верно
Как же тогда верно? Подскажите
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
25.11.2013, 20:59     Подкиньте идею #6
Ну так я и спросил: зачем это вам нужно? С помощью двойной буферизации вывод на экран будет одновременным, не зависимо от того, кто первым был подан на отрисовку.
Цитата Сообщение от newbie666 Посмотреть сообщение
деф
Что за деф буфер ? Не узнаю по-названию.
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
25.11.2013, 21:02  [ТС]     Подкиньте идею #7
Цитата Сообщение от Hunter13ua Посмотреть сообщение
одновременным
хорошо, если еще не поняли, растолкую до конца. Как Вы думаете, если у с1 и с2 одинаковые координаты, вывод будет одновременным? Или один накладется на другой?
newbie666
Заблокирован
25.11.2013, 21:02     Подкиньте идею #8
Цитата Сообщение от Hunter13ua Посмотреть сообщение
Что за деф буфер ? Не узнаю по-названию.
http://ru.wikipedia.org/wiki/Z-%D0%B...86%D0%B8%D1%8F

Цитата Сообщение от anubis1768 Посмотреть сообщение
Как же тогда верно? Подскажите
я говорил про 3Д графику, в 2Д конечно идёт очередь и слои
McRubic
2 / 2 / 0
Регистрация: 18.07.2013
Сообщений: 15
25.11.2013, 21:03     Подкиньте идею #9
А никто за денюшку сейчас не может в скайпе помочь написать код? лёгенький для опытного программера!!!!
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
25.11.2013, 21:06     Подкиньте идею #10
Воот. Это я и спрашивал. Да, я не о том говорил. Это надо сортировать по глубине, а не приоритету. Собственно stencil buffer, о котором newbie666 уже написал, и будет решением.

Не по теме:

Непривычные названия для меня - вот и не сразу понял.

anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
25.11.2013, 21:07  [ТС]     Подкиньте идею #11
Цитата Сообщение от newbie666 Посмотреть сообщение
2Д конечно идёт очередь и слои
То есть моя идея костильная или вполне сойдет?
newbie666
25.11.2013, 21:07
  #12

Не по теме:

Цитата Сообщение от McRubic Посмотреть сообщение
А никто за денюшку сейчас не может в скайпе помочь написать код?
я после работы ща без задних ног (понедельнеГ же - день тяжкий) - лично мне впадлу ща напрягаться

anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
25.11.2013, 21:08  [ТС]     Подкиньте идею #13
Hunter13ua, Одна проблема: я работаю с 2д
newbie666
Заблокирован
25.11.2013, 21:10     Подкиньте идею #14
Цитата Сообщение от anubis1768 Посмотреть сообщение
обрабатывается: логика, коллизия, взаемодейтсвие и отрисовка
какая к чертям коллизия и взаимодействие между BMP картинками в 2D ? У тебя ж спрайты вроде
2Д графика заранее распределяется по слоям, например фон, главный герой, его автомат, его ... и тд Зачем во время игры что - то сортировать ?
Hunter13ua
46 / 46 / 5
Регистрация: 25.10.2011
Сообщений: 183
25.11.2013, 21:11     Подкиньте идею #15
С 2д даже проще. Если хотите избавиться от сортировки: введите лишнюю переменную Z. И при добавлении в очередь прорисовки - пусть анализирует в какое место очередь ставить объект именно по этой переменной.
newbie666
Заблокирован
25.11.2013, 21:13     Подкиньте идею #16
или у тебя игра типа червячков http://free-tracker.net/uploads/post...b48189bef.jpeg
где можно 2Д землю как бы разрушать, по которой черви и ползают
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
25.11.2013, 21:16  [ТС]     Подкиньте идею #17
newbie666, Вы наверное меня не поняли. Вообще. Давайте все сначала. Вот есть класс который описывает игровой объект. Он может рисоваться. Если два объекта столкнулись, например пуля и игрок, значит игрок убит или пуля взорвалась. Правильно? Уже есть какое-то взаемодействие и логика. Ну и конечно коллизию надо тоже проверять. Так вот, к чему я веду. Если вместо пули пусть будет ракета. Будет взрыв. А вот взрыв закроет спрайт игрока, потому что он добавляется позже в список. А я так не хочу. Я хочу, чтобы нарисовался взрыв а потом игрок
newbie666
Заблокирован
25.11.2013, 21:20     Подкиньте идею #18
Цитата Сообщение от anubis1768 Посмотреть сообщение
А вот взрыв закроет спрайт игрока, потому что он добавляется позже в список. А я так не хочу.
странная логика, взрыв наоборот должен быть спереди...
А в чём проблема то? Как и предлагалось выше, задайте каждому объекту координату Z, и рисуйте их в порядке убывания например....
McRubic
2 / 2 / 0
Регистрация: 18.07.2013
Сообщений: 15
25.11.2013, 21:22     Подкиньте идею #19
Цитата Сообщение от newbie666 Посмотреть сообщение

Не по теме:


я после работы ща без задних ног (понедельнеГ же - день тяжкий) - лично мне впадлу ща напрягаться

Очень жаль, ну отдыхай братишь мб ещё ктонибудь откликнится) код лёгкий но не для меня. Нам дали методичку на паскале ничего не обьясняют. Сказали пишите ... печаль беда я уже 4 лабы всей группе сделал эту не могу(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2013, 21:25     Подкиньте идею
Еще ссылки по теме:

Подкиньте рандомно задачки C++
Подкиньте задачку C++
Пожалуйста, подкиньте идею для проекта C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
25.11.2013, 21:25  [ТС]     Подкиньте идею #20
Цитата Сообщение от newbie666 Посмотреть сообщение
странная логика, взрыв наоборот должен быть спереди...
Это просто пример.
Цитата Сообщение от newbie666 Посмотреть сообщение
А в чём проблема то? Как и предлагалось выше, задайте каждому объекту координату Z, и рисуйте их в порядке убывания например....
Идея такая же, как у меня была, просто я мутно пояснил. Но все равно спасибо
Yandex
Объявления
25.11.2013, 21:25     Подкиньте идею
Ответ Создать тему
Опции темы

Текущее время: 11:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru