There's no reason to discuss the same thing twice... unless you give more info. Let's discuss gotoposition, as I've been testing that.
VVVVVV's "screen" is 320x240, counting the amplified pixels (because the default is running with 2x resolution). With what I described before andn the fact that

is 10 pixels wide, you can calculate the values for x for teleeporting

to the right or left edge of the screen (both showing all of

). x=-7 for left edge and x=303 for right edge. Higher/lower values either show part of

on the edge of the screen, or teleport

to the screen to the right/left. That's right.

However, if the screen has horizontal warping or the level has only 1 column, then

will always be teleported to the same screen. Example: gotoposition(320,y) will teleport

to the
left edge of the screen while gotoposition(-20,y) will teleport

to the
right edge of the screen.
This doesn't work with warp lines. In fact, there's a glitch related to it and the warp line glitch (if don't want to read about it, skip to the bold text below). Create a level with 1 line of rooms and more than 1 room. Put warp lines on the right side of the room in which the command is triggered. Do not put warp line on the room to the left. Create a script with the necessary commands and the main command, which is gotoposition(-10,0).

Will stay in the same room, appearing on the left only showing part of his body. When he touches the lower edge of the screen, he will appear (on the top) on the right edge of the room to the left, showing only part of his body.
This means you don't need the gotoroom command, unless you think that counting the distance in rooms b between the 2 rooms, multiplying it by 320 and add or subtract something to set

's position in the room is too hard.
I still haven't tested y and z (don't forget about z, which makes

flipped or not, according to Toaster).
EDIT: Oh, and is it a good idea to talk about int. scr. in the wiki? Of course I'll mention that it's a glitch and it's use wasn't intended.