Corona Sdk ищет проблему (столкновение платформ)

Я использую предварительное столкновение, чтобы мой игрок прошел через платформу, как это

local function PhysicsPreCo(self,event)
    local Type = event.other.Type
    local PlayerY = self.y
    local PlatY = event.other.y

    if Type == "Platform" then
      if PlayerY -8  > PlatY then event.contact.isEnabled = false ; print("H") end
    end
end 

Итак, пока здесь все работает, мой игрок проходит через платформу правильно, но иногда, когда я прыгаю перед платформой слишком рано, мой игрок ударяется о левую сторону платформы, чтобы пройти.

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

Любая помощь будет оценена большое спасибо :)

!


person Johnny Joe    schedule 28.06.2014    source источник
comment
Ни у кого уже не было такой проблемы?   -  person Johnny Joe    schedule 30.06.2014
comment
Можете ли вы правильно объяснить свой вопрос с изображением?   -  person Krishna Raj Salim    schedule 01.07.2014
comment
Я не могу вставлять картинки, мне не хватает репутации.. Что ты не понял? Проблема в том, что event.contact не происходит, я думаю, может быть, я не могу изменить свою привязку моего игрока, я не знаю почему, но это работает для моего объекта, даже так   -  person Johnny Joe    schedule 03.07.2014
comment
Вы уверены, что ваше условие: if(PlayerY -8 › PlatY)then верно в этот раз? Также проверьте эффекты столкновения в отладочном/гибридном режиме, написав физику.setDrawMode(отладка) или physics.setDrawMode(гибрид).   -  person Krishna Raj Salim    schedule 09.07.2014
comment
Нет, это для этого, на самом деле я не могу найти идеальное число, чтобы сказать: когда мой игрок находится за платформой, тогда event.contact.isEnabled = false, чтобы мой игрок мог пройти, а когда он сверху event.contact.isEnabled = true, поэтому мой игрок не может пройти В основном мой игрок проходит через платформу без проблем, но иногда event.contact.isEnabled = false не вызывается, потому что мой номер не идеален, возможно, отсутствует 0,1 или меньше, поэтому мой игрок попадает в сторону платформы и ошибка в моей игре! Если вы понимаете, о чем я ? Большое спасибо за ваше время и ваш ответ Krs   -  person Johnny Joe    schedule 09.07.2014


Ответы (1)


Вот учебник для столкновений, включая односторонние столкновения. http://coronalabs.com/blog/2012/11/27/introduction-physics-event-contact/

Есть готовый проект, демонстрирующий все в работе https://www.dropbox.com/s/4rbltonmrp5xwri/PhysicsContact.zip

Чтобы запустить приведенный выше код, вам нужно добавить

graphicsCompatibility = 1

в разделе содержимого config.lua-s.

person iBad    schedule 15.08.2014