lua - Collision not working on the ceiling -
all collisions working except "ceiling" missing here?
local screengroup = self.view jetspritesheet = sprite.newspritesheet("helicopters.png", 97, 55) jetsprites = sprite.newspriteset(jetspritesheet, 1, 4) sprite.add(jetsprites, "jets", 1, 8, 600, 0) jet = sprite.newsprite(jetsprites) jet.x = -80 jet.y = 350 jet:prepare("jets") jet:play() jet.collided = false jet.name = "jetplayer" physics.addbody(jet, "dynamic", {density=.1, bounce=0.1, friction=.2, radius=10, filter=playercollisionfilter } ) jet.gravityscale = 0 jetintro = transition.to(jet,{time=2000, x=150, oncomplete=jetready}) screengroup:insert(jet) ceiling = display.newimage("invisibletile.png") ceiling.name = "ceiling" ceiling:setreferencepoint(display.bottomleftreferencepoint) ceiling.x = 0 ceiling.y = 0 physics.addbody(ceiling, "static", {density=.1, bounce=0.1, friction=.2,} ) screengroup:insert(ceiling) local function oncollision(event) if event.phase == "began" , gameisactive == true local obj1 = event.object1; local obj2 = event.object2; if obj1.name == "jetplayer" if obj2.name == "bcloud1" minlife() elseif obj2.name == "bcloud2" pontsmin10() elseif obj2.name == "bcloud3" pontsmin20() elseif obj2.name == "gcloud1" pontsplus50() elseif obj2.name == "ceiling" explode() elseif obj2.name == "thefloor" explode() end end end end runtime:addeventlistener( "collision", oncollision )
just replace following line:
physics.addbody(app, "dynamic", {density=.1, bounce=0.1, friction=.2, radius=10, filter=playercollisionfilter } )
as below, , check again:
physics.addbody(app, "dynamic", {density=.1, bounce=0.1, friction=.2,filter=playercollisionfilter } )
i not aware of behavior of corona. here object radius (jetplayer
) choosen obj2
. so, either may remove radius, if not needed, or change function as:
if(obj1.name == "jetplayer" or obj2.name == "jetplayer")then if(obj1.name == "ceiling" or obj2.name == "ceiling")then explode() end end
keep coding..........:)
Comments
Post a Comment