Por ejemplo: tengo una pelota que rebota por toda la room pero quiero que no se pueda salir de la room

Al objeto ''pelota'' le tengo lo siguiente:
[Intersec boundary]
x=xprevious
y=yprevious


Pero lo que hace es que cuando intente salir de la room se quede parado.

Pero yo lo que quiero es que rebote en vez de quedarse parado.

Supongo que usas speed para mover la pelota

En STEP

if x>=room_width hspeed*=-1
if x<=0 hspeed*=-1
if y<=0 vspeed*=-1
if y>=room_height vspeed*=-1

Hay que cambiar la dirección horizontal o vertical en el evento boundary, te dejo un ejemplo

Los sabios se equivocan y aprenden de ello, los tontos solo se equivocan.