forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Тряска в 2D шутере (http://forum.boolean.name/showthread.php?t=15810)

gforcer18 08.11.2011 13:50

Тряска в 2D шутере
 
2Д скролл шутер.

Как лучше реализовать эффект тряски, например когда игрок врезается в астероид.

1 - двигать Background
2 - двигать все объекты, а фон неподвижен
3 - двигать корабль игрока - сомневаюсь

Randomize 08.11.2011 14:01

Ответ: Тряска в 2D шутере
 
Двигать глобальную матрицу (viewport, origin, screen - без знания движка не могу употребить уместный термин)

FireOwl 08.11.2011 14:29

Ответ: Тряска в 2D шутере
 
Двигать камеру. (Т.е. все кроме GUI. Хотя можно и его тоже двигать, для пущего эффекта. И еще "помехи" визуализировать. Если астероид был большим.)

gforcer18 08.11.2011 15:35

Ответ: Тряска в 2D шутере
 
а как быть с фоном, лучше если он неподвижен ?

Amatsu 08.11.2011 15:40

Ответ: Тряска в 2D шутере
 
Вопрос связан с моим файтером?

moka 08.11.2011 15:49

Ответ: Тряска в 2D шутере
 
Как понимаю игра 2D. Вообще, gforcer18, научись поставлять вопрос, при этом снабжая читателя необходимой информацией.

Если в игре используется Parallax эффект для задних фонов, то соответственно двигать задний фон исходя из фактора смещения (все слои смещаются с разной степенью).
А вообще реализуй модель с наличием камеры, и отрисовывай всё с учётом позиции камеры, таким образом можно будет просто трясти (двигать чуток позицию камеры), и будет эффект того что всё двигается. Если задники будут позиционироваться с разным фактором (Параллакс), то будет должный эффект.

Вообще можно даже двигать только интерфейс, можно всё.
Видимо у тебя так всё криво сделано, что реализация такой простой задачки упирается в кучу нюансов твоей архитектуры отрисовки, что реализация того или иного будет весьма затруднительна. Поэтому ты побежал на форум спрашивать, заместо 5ти минутного теста с разными вариантами тряски.

shybovycha 08.11.2011 17:33

Ответ: Тряска в 2D шутере
 
Цитата:

Сообщение от MoKa (Сообщение 208861)
Видимо у тебя так всё криво сделано, что реализация такой простой задачки упирается в кучу нюансов твоей архитектуры отрисовки, что реализация того или иного будет весьма затруднительна. Поэтому ты побежал на форум спрашивать, заместо 5ти минутного теста с разными вариантами тряски.

Уважаемый, вы бы поспокойней реагировали - все мы с чего-то да начинаем ;)

moka 08.11.2011 17:35

Ответ: Тряска в 2D шутере
 
Цитата:

Сообщение от shybovycha (Сообщение 208894)
Уважаемый, вы бы поспокойней реагировали - все мы с чего-то да начинаем ;)

Реакция адекватная. Подобный текст, может навезти спрашивающего на мысль, что если бы у него была бы "камера", то было бы всё проще. И если было бы более модульно, снова - было бы проще.
Это так, на будущее, чтобы реализация была с учётом будущих потребностей. Тогда и подобного вопроса не встало бы. ;)

Randomize 09.11.2011 08:22

Ответ: Тряска в 2D шутере
 
Я считаю тряску нужно производить со всей сценой исключая игровой худ.
Не люблю когда трясутся показатели.

SBJoker 09.11.2011 10:44

Ответ: Тряска в 2D шутере
 
Если фон изображает очень далёкие предметы, небо, звездное небо, его трясти не надо. Не надо трясти HUD. Остальное трясти чем то наподобие:
Код:

SetOrigin( Rand(-5, 5), Rand(-5, 5) )
Можно смещение тряски выбирать в начале цикла, занести в две переменные.
Далее применять смещение после отрисовки неподвижного фона.
Перед отрисовкой HUD смещения установить в ноль.


Часовой пояс GMT +4, время: 07:34.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot