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

Използвам pre-Collision, за да накарам моя Player да премине през платформата по този начин

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 е вярно този път? Също така проверете за ефектите на сблъсък в режим на отстраняване на грешки/хибриден режим, като напишете physics.setDrawMode(debug) или physics.setDrawMode(hybrid).   -  person Krishna Raj Salim    schedule 09.07.2014
comment
Не, това е за това, в действителност не мога да намеря идеалното число, което да кажа: Когато играчът ми е зад платформата, тогава event.contact.isEnabled = false, така че играчът ми да може да премине, и когато е отгоре event.contact.isEnabled = вярно, така че моят плейър не може да премине. Повечето ми плейър минават през платформата без проблем, но понякога event.contact.isEnabled = false не се обажда, защото номерът ми не е перфектен, може би липсва 0,1 или по-малко, така че моят плейър попада на страна на платформата и бъг в играта ми! Знаеш какво имам предвид ? Благодаря много за отделеното време и отговора Krs   -  person Johnny Joe    schedule 09.07.2014


Отговори (1)


Ето урок за сблъсъци, включително едностранични сблъсъци. http://coronalabs.com/blog/2012/11/27/introducing-physics-event-contact/

Има готов проект, който демонстрира всичко в работата https://www.dropbox.com/s/4rbltonmrp5xwri/PhysicsContact.zip

За да стартирате горния код, трябва да добавите

graphicsCompatibility = 1

в секцията със съдържание на config.lua-s.

person iBad    schedule 15.08.2014