Why not just roll your own wrap code?
I did exactly that. Set up a compare:
ship x greater than 1024 > set ship x to 0.
ship x less than 0 > set ship x to 1024.
Did the same for the y coordinates....
And I ended up with the exact same problem. Ship would hit the edge and then keep bouncing off.
So instead I did it by building in a 5 pixel margin a little off screen like so:
ship x greater than 1034 > set ship x to -5
ship x less than -10 > set ship x to 1029
Works like a charm now. Strange... Must have something to do with the sprites? The way they're drawn, they seem to read as being at less than y=0 and more than y=1024 simultaneously (or very nearly simultaneously, anyway.) So construct just keeps bouncing them back and forth to fast to register, turning the edge into a virtual wall... Does that make sense?
Anyway, thought I mention the work-around in case anyone else ever runs into this.
Also, thanks to Davioware -- I keep forgetting that sometimes I can just solve these problems with a few lines of code... I never think to do my own version if the behavior already exists. I always think that someone else programed the behavior the "right" way, and my version is just gonna screw it up somehow.