2013-12-24 2 views
0

У меня есть много объектов A (от 40 до 50), которые не должны сталкиваться друг с другом и другим объектом B, который должен вместо этого сталкиваться с A.Сохранение сбоев с фильтрами времени вычислений

Есть ли способ для экономить вычислительное время и ресурсы и все еще выполнить это?

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

Спасибо, Джон! –

ответ

0

Согласно документации Corona, ответ утвердительный: http://docs.coronalabs.com/guide/physics/collisionDetection/index.html#filtering

Казалось бы, вы можете определить фильтры, как:

local redCollisionFilter = { categoryBits = 2, maskBits = 5 } 
-- red collides with (4 and 1) only 

local blueCollisionFilter = { categoryBits = 4, maskBits = 7 } 
-- blue collides with (4, 2 and 1) only 

Обратите внимание, что я не проверял, но должно работать на основе документация

+0

Спасибо, Алекс, я уже знал это, но действительно ли это экономит вычислительное время? –

+0

Я предполагаю, что ваши объекты будут «динамическими» телами. В этом случае у вас нет другого варианта, кроме маскировки. Если производительность не соответствует ожиданиям, вы можете попробовать несколько конфигураций, чтобы уменьшить количество вычислений. Например: physical.setContinuous (false); phys.setPositionIterations (4); Physics.setVelocityIterations (2); и т. д. –

+0

Federico, я не знаю, сохранит ли это время вычислений. Я думаю, что даже если вы его протестируете, производительность может измениться в более позднем выпуске. Если вам нужно, чтобы он был как можно быстрее (в отличие от достаточно быстрого), я считаю, что корона говорит, что не использует физический движок: http://www.coronalabs.com/blog/2013/07/23/tutorial-non -physics столкновения обнаружения / – Alex

Смежные вопросы