Here's an example using SET CAMERA TO IMAGE:
Rem Project: Camera Switch
Rem ***** Main Source File *****
set display mode 800,600,32,1
sync on
sync rate 0
autocam off
`Create an array to hold the camera images.
DIM CamIMG(1)
`Set the camera image numbers.
CamIMG(0)=1
CamIMG(1)=2
`Make another camera
make camera 1
`Set camera 0 and camera 1 to an image for use with sprites later.
set camera to image 0,CamIMG(0),screen width(),screen height()
set camera to image 1,CamIMG(1),screen width(),screen height()
`Color the backgrounds of the cameras blue and red.
color backdrop 0,rgb(0,0,155)
color backdrop 1,rgb(155,0,0)
`Make a cube
make object cube 1,10
`Position the two cameras at different locations
position camera 0,0,0,-100
position camera 1,0,100,-50
point camera 1,0,0,0
`Calculate the proper aspect ratio.
Aspect#=screen width()*1.0/screen height()*1.0 `Camera aspect ratio = width of screen / height of screen. I'm multiplying by 1.0 to make sure that the result comes out as a float value and not an integer.
`Set the main camera to camera 0 and the small camera to camera 1 to start. This will just get changed with that spacekey() line though.
MainCam=0
SmallCam=1
do
`Rotate the cube
turn object right 1,2
`Put the main camera in perspective so things don't look stretched
set camera aspect MainCam,Aspect#
`Draw a sprite with the main camera's image across the entire screen.
sprite 1,0,0,CamIMG(MainCam)
size sprite 1,screen width(),screen height()
set sprite 1,1,0
paste sprite 1,0,0
`Put the small camera in the top right corner in perspective
set camera aspect SmallCam,1.0 `1.0 = 256/256. (256=width and 256=height, so width/height=256/256=1.0)
`Draw a sprite with the small camera's image in the top right corner of the screen in a 256x256 area.
sprite 1,0,0,CamIMG(SmallCam)
size sprite 1,256,256
paste sprite 1,screen width()-256,0
`Hide sprite 1, we won't need it until next loop.
hide sprite 1
`Allow camera switching with SPACE. This is AFTER the SPRITE commands because the sprite commands paste last loop's stuff on the screen. This is because we haven't called sync yet in this loop.
`If we changed the camera before the sprite command, the sprtie commands would paste the right cameras but it would still have the image from last loop. This means that the aspect ratios would be wrong, and the image would be stretched briefly.
if spacekey()=1 then MainCam=1 : SmallCam=0 : else : MainCam=0 : SmallCam=1
`On-screen text
text 0,0,"Hold SPACE to see camera 1 as the main camera instead of camera 0."
`Update
sync
loop
Heck, doing it that way you could even add motion blur if you wanted to
Guns, cinematics, stealth, items and more!