Развитие игровой вспышки
Текущее время: Пт ноя 16, 2018 2:45 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Появление звука вместе с объектами, как реализовать ?
СообщениеДобавлено: Пн фев 13, 2012 11:36 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пт июл 01, 2011 8:28 am
Сообщений: 1407
Откуда: Удмуртия
Сайт: http://pornowarrior.com
возник такой вопрос. Делаю платформер. игрок может перемещаться вверх, вниз, вправо влево. Игровой экран 640*480, размер карты 1600*1600.
Как проще всего реализовать, чтоб звуки объектов появлялись только тогда, когда объект на экране? К примеру, электрический контакт гдето на стене искрит. Нужно что этот звук был слышен только когда этот контакт на экране.

Неужто, тупо перебирать все "звучащие" объекты на карте в каждом кадре и проверять не пересекаются-ли они с прямоугольником видимой области ? Может кто уже сталкивался с этой проблемой и не стоит изобретать велосипед ?


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Появление звука вместе с объектами, как реализовать ?
СообщениеДобавлено: Вт фев 14, 2012 3:03 am 
Не в сети
Аватар пользователя

Зарегистрирован: Ср янв 18, 2012 11:12 pm
Сообщений: 125
Sublustris писал(а):
Неужто, тупо перебирать все "звучащие" объекты на карте в каждом кадре и проверять не пересекаются-ли они с прямоугольником видимой области ?

По-моему, это и есть самый простой и очевидный способ. Просто перед проигрыванием звука проверяешь, попадает ли он в координаты экрана и если да, то проигрываешь.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Появление звука вместе с объектами, как реализовать ?
СообщениеДобавлено: Вт фев 14, 2012 4:54 am 
Не в сети
Аватар пользователя

Зарегистрирован: Ср сен 29, 2010 11:52 pm
Сообщений: 2705
Откуда: Одесса
Sublustris писал(а):
Неужто, тупо перебирать все "звучащие" объекты на карте в каждом кадре и проверять не пересекаются-ли они с прямоугольником видимой области ?

Просто ради интереса, в качестве разминки для ума: хотя бы предположи способ, который окажется проще этого или не будет в конечном счете сводиться к этому. Хоть стой, хоть падай порой с таких вопросов.

И к слову: пробел ставится после знаков препинания, а не перед ними.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Появление звука вместе с объектами, как реализовать ?
СообщениеДобавлено: Вт фев 14, 2012 7:57 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пт июл 30, 2010 1:23 pm
Сообщений: 1561
Откуда: Казань
Medals: 1
3 place FGD3 (1)
Можно разбить площадь сцены на квадраты и распределить по ним звуки, тогда определять какие звуки будут звучать будет быстрее.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Появление звука вместе с объектами, как реализовать ?
СообщениеДобавлено: Вт фев 14, 2012 8:44 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пн окт 12, 2009 5:31 pm
Сообщений: 1951
Откуда: Honduraz
zebestov писал(а):
Sublustris писал(а):
Неужто, тупо перебирать все "звучащие" объекты на карте в каждом кадре и проверять не пересекаются-ли они с прямоугольником видимой области ?

Просто ради интереса, в качестве разминки для ума: хотя бы предположи способ, который окажется проще этого или не будет в конечном счете сводиться к этому. Хоть стой, хоть падай порой с таких вопросов.

И к слову: пробел ставится после знаков препинания, а не перед ними.

1. При перемещении, т.е. только когда объекты среды могут попасть в кадр или пропасть из кадра, проверяем их на то попадут они в кадр или пропадут из него.
2.1. Для тех, которые попадут, запускаем процедуры генерации их звуков.
2.2. Для тех, которые пропадают, прерываем их звуковые циклы-процедуры. Для чего соотв надо хранить ссылки на них.

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

Хоть стой, хоть падай порой с таких ответов - учись студент! :Р
зы: знаю, знаю, но хочется ввернуть именно эту фразу :)
ззы: вот вам и патерны. думать надо учится, а не паттерны зубрить - это я по поводу http://flashgameblogs.ru/blog/896.html#comment23521


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Появление звука вместе с объектами, как реализовать ?
СообщениеДобавлено: Вт фев 14, 2012 9:22 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср сен 29, 2010 11:52 pm
Сообщений: 2705
Откуда: Одесса
puzzlesea писал(а):
Хоть стой, хоть падай порой с таких ответов - учись студент! :Р

Что-то ты невнимательно прочитал цитату "Неужто, тупо перебирать все "звучащие" объекты на карте в каждом кадре и проверять не пересекаются-ли они с прямоугольником видимой области ?" и не уследил, как не придумал ничего, что ей противоречит.

Слабовато :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Появление звука вместе с объектами, как реализовать ?
СообщениеДобавлено: Вт фев 14, 2012 9:34 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пн окт 12, 2009 5:31 pm
Сообщений: 1951
Откуда: Honduraz
где в моем алгоритме надо перебирать "звучащие объекты в каждом кадре"?
если герой стоит их вообще не надо перебирать, исключая инициализацию, но она только один раз, а не каждый кадр.
сдается мне что слабовато въехать в предложенный мною алгоритм :Р


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Появление звука вместе с объектами, как реализовать ?
СообщениеДобавлено: Вт фев 14, 2012 9:46 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср сен 29, 2010 11:52 pm
Сообщений: 2705
Откуда: Одесса
puzzlesea писал(а):
где в моем алгоритме надо перебирать "звучащие объекты в каждом кадре"?

Очень беспомощно выглядит попытка апеллировать к такому несущественному нюансу, как подмена события смены кадров, событием смещения поля ;)
puzzlesea писал(а):
сдается мне что слабовато въехать в предложенный мною алгоритм :Р

Не пойму, с чего ты это взял? "Твой" алгоритм даже ТС, сомневающийся в реализации, предложил в самом начале обсуждения :P


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Появление звука вместе с объектами, как реализовать ?
СообщениеДобавлено: Вт фев 14, 2012 10:44 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пн окт 12, 2009 5:31 pm
Сообщений: 1951
Откуда: Honduraz
Цитата:
"Твой" алгоритм даже ТС, сомневающийся в реализации, предложил в самом начале обсуждения

объясню еще раз. для любителей игровых циклов и свичей.
предложено было:
Цитата:
перебирать все "звучащие" объекты на карте в каждом кадре и проверять не пересекаются-ли они с прямоугольником видимой области

это значит:
каждый кадр (30 раз в секунду или какой там ФПС задан у автора) чекаются все объекты, которые могут звучать, по всей карте.

я предлагаю:
чекать только объекты, попадающие и выпадающие из области видимости при перемещении. т.е. не все звучащие в карте, а те, которые расположены в пределах смещения. Прим.: сместились на 2 тайла влево чекаем на выход 2хвысота тайлов справа и на вход 2хвысота тайлов слева.
оптимизация 1: чекается не вся карта, а только области попадающие и выпадающие.
оптимизация 2: чекается только при движении. эффективность зависит от способа перемещения. т.е. если высота фиксирована, то при вертикальных перемещениях вообще чекать не надо; если перемещение по комнатам, то чекается вообще раз при инициализации комнаты, при входе в нее, хотя это не тот случай - по вопросу ТС не выходит, что это рогалик или противоположно раннер, когда смещение постоянно и действительно происходит каждый кадр. Так что кто тут беспомощно и к чему апеллирует еще надо подумать.
оптимизация 3: объекты в кадре, не выпадающие при перемещении чекать не надо вообще. Это я так написал на всякий случай, вдруг не понятно, что это вытекает из п.1. Ну и для калькуляции - ТС то предлагает все объекты чекать, причем каждый кадр.

Я не вижу сходства с алгоритмом ТС, кроме одного действия - проверки звучащих объектов. Все тело алгоритма другое. В моем алгоритме проверяется не вся карта и не каждый кадр, поскольку это не раннер. И даже при центрированном перемещении мой алгоритм будет оптимальнее и даже во 2м пункте в концах карты, когда смещения больше нет. - Он оптимальнее в разы (ну это от размеров карты зависит еще).

Ах. Да. Блин, чтоже это я туплю то. Ты ж писал про проще:
Цитата:
способ, который окажется проще этого
А я как-то на вопрос ТС отвечаю - чтоб не тупо было и оптимально. А проще да - тупо каждый кадр все карту пробегать.
А вот на:
Цитата:
будет в конечном счете сводиться к этому
уж звиняйтэ, алэ я не предлагаю чекать объекты на пересечение в областью видимости камеры - я предлагаю тупо брать тайлы, которые расчитываются исходя из перемещения героя и тупо в появляющихся включать звук, а в исчезающих его выключать - никакой проверки на пересечение самого объекта с камерой делать не надо. увы.
Но вот конечно, если карта не тайловая, а типа наляпаная на бокс2Д, где объекты не в тайлах, а в произвольных координатах, там конечно надо все объекты пробегать, или в начале побить все на тайлы, что и предложил xewelus, но идею не развил до подробных объяснений. Или хеш по координатам, или хоть и на бокс2Д, но карту тайловую делать - тогда можно будет оптимизировать по моему алгоритму.
Вот это фейл ТС - в вопросе нет достаточно данных. Надо бы тип карты и тип перемешения указать.

@zebestov
Вобщем я понял, что вам бокс2д съел моск, а платформеры то они обычно тайловые, я как-то про бокс2д и не подумал сразу - тоже сфейлил. Однако, способ оптимизации есть и тут, я выше написал. Так что все равно язык показывать - моя привелегия, чем я и воспользуюсь незамедлительно - и так :Р и так :P , как делать координатный хеш, думаю объяснять не надо.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Появление звука вместе с объектами, как реализовать ?
СообщениеДобавлено: Вт фев 14, 2012 11:29 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Ср сен 29, 2010 11:52 pm
Сообщений: 2705
Откуда: Одесса
Цитата:
уж звиняйтэ, алэ я не предлагаю чекать объекты на пересечение в областью видимости камеры - я предлагаю тупо брать тайлы, которые расчитываются исходя из перемещения героя и тупо в появляющихся включать звук, а в исчезающих его выключать - никакой проверки на пересечение самого объекта с камерой делать не надо. увы.

"Это замечательно, Кэти!" ©
Только как это все поможет ТС, который хотел совсем другого:
Цитата:
Как проще всего реализовать, чтоб звуки объектов появлялись только тогда, когда объект на экране?

И да! Я боксом2д никогда даже не интересовался, не то, чтобы мозг свой ему скармливать :P


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB