Page 1 of 1

noCollide events

PostPosted: Wed Sep 30, 2009 3:34 am
by j2graves
I want an event that takes place the instant the player is no longer colliding with another actor.

for example, he lands on a moving actor, and the changeparent action causes him to follow the platform. what I want, is something like, the instant he's no longer colliding with the platform, it changes parent back to (none)

example:
collision> top side> platform
changeparent (platform)

noCollide> top side> platform
changeparent (none)

Re: noCollide events

PostPosted: Wed Sep 30, 2009 5:40 am
by skydereign
Are you not talking about the collision finish event? Collision Finish is an event triggered when an actor stops colliding with a certain actor. Most of the time you can get away with using collision finish, if you can't, you can either put the check in draw, or set a system that determines how many actors are colliding, through collide any actor, and collide finish with any actor. I can explain in more detail if what this is what you want, as there is already a collision finish.

Re: noCollide events

PostPosted: Wed Sep 30, 2009 9:55 pm
by j2graves
it doesn't work =P

the main actor followed the platform for a second, then the platform slid from under it, and then it followed it again, it slid from under it, and so on. it seems that 'collision finish' takes place even if the actor is STILL colliding!

Re: noCollide events

PostPosted: Wed Oct 07, 2009 12:43 am
by jimmynewguy
there is collision free ex.

if(collisionfree)
{
}

i think it is

Re: noCollide events

PostPosted: Wed Oct 07, 2009 12:46 am
by DST
Collision finish had issues in the older versions of ge, but in 1.3.9, it works like it should.

If you are using any kind of physical response, though, that knocks the player out of the platform but repeats, then collisionfinish will be triggered before you want it to.

Re: noCollide events

PostPosted: Wed Oct 07, 2009 12:50 pm
by Kalladdolf
If you're doing what DST just said, use a sensor which is a child of the main player and place it beneath the player. Put the CollisionFinish event on it.