Добавяне на сблъсъци на обекти в слоя сблъсъци

В момента моят герой използва слой за сблъсък с pixel-Perfect. Добавих някои обекти като "врати" или "Платформи" в моята игра, но моят герой преминава през тях.

Мисля, че бих могъл да модифицирам слоя на сблъсъка всеки Update() с нещо като "сливане". Сливане на слоя за сблъсък с всеки обект, предполагам, но не знам как да го направя...

[редактирано] Q1: как да обединим някои Texture2D в едно?

Благодаря за четенето, надявам се да ме насочите.


person Sharpnel    schedule 15.10.2012    source източник
comment
Все още няма отговор, ако не съм достатъчно ясен, просто ми кажете :x   -  person Sharpnel    schedule 16.10.2012


Отговори (2)


Можете да постигнете това с помощта на RenderTargets. Ето свързан въпрос за това как да ги използвате.

По принцип можете да начертаете всичките си спрайтове за сблъсък към целта за рендиране, като направите една текстура от множество. Можете да направите това на всеки кадър, ако вашият слой за сблъсък се променя често.

Надявам се това да помогне!

Редактиране: Ето Статия на MSDN за RenderTargets

Още редакции: Като алтернатива можете да проверите своя сблъсък на пиксел на всеки от обектите, вместо да ги обедините всички в един. Въпреки това ще трябва да покажете някакъв код, за да получите помощ за това.

person Msonic    schedule 17.10.2012
comment

Тъй като използвам eclipse и просто настройвам dropwizard сървър. В командния ред написах java -jar target/hello-world-0.0.1-SNAPSHOT.jar server hello-world.yml и работи. И все пак, когато правя промяна в моя eclipse файл, като промяна на yml файла например, той не се актуализира. Трябва да crtl+c и да пусна отново това, което съм написал по-горе. Въпросът ми е има ли по-бърз начин за тестване, така че да се актуализира всеки път, когато променя нещо или просто трябва да се занимавам с тестването. Благодаря.

- person Sharpnel; 18.10.2012
comment
След няколко минути разбрах, че трябва да използвам MergedTexture2D в началото на Update(). Но мога да използвам само RenderTarget в метода Draw() :x Така че не мога да използвам откриването на сблъсък на моя герой върху него. Има ли различен начин да се разреши сливането на Texture2D в Update()? - person Sharpnel; 18.10.2012
comment
Можете или да предадете spritebatch на вашия update метод (но не го препоръчвам, мисля, че е объркващо да има извиквания за изтегляне по време на актуализация), или можете да запазите rendertarget в променлива и да го анализирате по време на next< /i> update повикване. Ще закъснеете с около 1/60 секунда, но мисля, че едва ли ще се забележи. - person Msonic; 18.10.2012

Можете да обедините Texture2D чрез методите .SetData и .GetData

Внимавайте обаче с методите, тъй като те наистина изяждат кадрите.

person vinzBad    schedule 17.10.2012
comment
Ще редактирам поста си, защото истинският въпрос е: как да обединим някои Texture2D в едно. - person Sharpnel; 17.10.2012
comment
Тази техника може да е страхотна, но ще бъде доста трудна с моя код, защото различните Texture2D, които използвам, нямат същия размер. Thx все пак! - person Sharpnel; 18.10.2012
comment
бихте ли могли да покажете как в момента е внедрена вашата система за сблъсък? - person vinzBad; 18.10.2012