Algorithm for Direction Change upon Collision

Ender Nafi Elekcioglu endernafi at gmail.com
Fri Nov 8 22:07:58 CET 2013


Scott, you’re the man :)

Interestingly, my collision code was exactly same as yours 
{I mean the intersect() section, swapping the directions and all},
EXCEPT 
that teeny, tiny line of *exit repeat* :))

It solved the whole thing.

I mean, almost...
There are some little glitches but nothing which can’t be handled.
Occasionally some pucks can escape off the screen boundaries
and again occasionally some pucks overlap each other.
Yet, after a while they release from themselves.

Performance is pretty good, too.
I could go up to 32 huge pucks at a 28 fps speed.
More than 32 pucks, refresh rate drops significantly.
But I need just ~20 particles and they will be tiny.

I still need to improve it by implementing Jim’s, Mark’s and Bernd’s suggestions.
There will be small sprite animations, thus I need efficiency and optimization.


Anyways, thank you very much.


-> one more thing:
Do you think falling back to C++, writing some code snippets for performance driven sections, could help this kinda situations?
Passing the locs to a dedicated C++ collision detector external and getting the result, maybe?
Although on a second thought, the intersect() itself is written in C++, right?
So, what are the odds that I can write more efficient / faster code than RunRev team?
Perhaps, this last question deserves a separate thread; still I wanna hear your { plural :) } thoughts…


Kindest Regards,

~ Ender Nafi


More information about the use-livecode mailing list