It looks amazing but I think at the moment it's being let down by the sniper effect. It just looks so amateur having a grey Paint-sprite slapped on there.
So just because I'm nice I made this sniper effect:
function SetupSniperSight( aObjectNumber, bObjectNumber, ImageNumber, CameraNumber, Exposure, Quality )
dim Sniper#( 3 )
Sniper#( 0 ) = aObjectNumber
Sniper#( 1 ) = ImageNumber
Sniper#( 2 ) = CameraNumber
Sniper#( 3 ) = bObjectNumber
load object "Sniper.x", Sniper#( 0 )
set object light Sniper#( 0 ), 0
load image "Black.bmp", 10000
load object "Sniper.x", Sniper#( 3 )
texture object Sniper#( 3 ), 10000
color object Sniper#( 3 ), 0
ghost object on Sniper#( 3 ), 1
delete image 10000
if Exposure = 1 then set object light Sniper#( 3 ), 0
if Quality = 0 then Pixels = 8
if Quality = 1 then Pixels = 16
if Quality = 2 then Pixels = 32
make camera Sniper#( 2 )
set camera to image Sniper#( 2 ), Sniper#( 1 ), Pixels, Pixels
color backdrop 1, 128
endfunction
function UpdateSniperSight()
texture object Sniper#( 0 ), Sniper#( 1 )
xCamera# = camera position x()
yCamera# = camera position y()
zCamera# = camera position z()
xAngle# = camera angle x()
yAngle# = camera angle y()
position camera Sniper#( 2 ), xCamera#, yCamera#, zCamera#
rotate camera Sniper#( 2 ), xAngle#, yAngle#, 0
position object Sniper#( 0 ), xCamera#, yCamera#, zCamera#
rotate object Sniper#( 0 ), xAngle#, yAngle#, 0
move object Sniper#( 0 ), 0.5
position object Sniper#( 3 ), xCamera#, yCamera#, zCamera#
rotate object Sniper#( 3 ), xAngle#, yAngle#, 0
move object Sniper#( 3 ), 0.49
xScreen# = screen width()
yScreen# = screen height()
Left = 0.2625 * xScreen#
Top = 0.2833 * yScreen#
Right = 0.7375 * xScreen#
Bottom = 0.7167 * yScreen#
ink rgb( 255, 255, 255 ), 0
box Left - 2, Top - 2, Left + 2, Bottom + 2
box Left - 2, Top - 2, Right + 2, Top + 2
box Left - 2, Bottom - 2, Right + 2, Bottom + 2
box Right - 2, Top - 2, Right + 2, Bottom + 2
xCentre# = xScreen# / 2
yCentre# = yScreen# / 2
circle xCentre#, yCentre#, 1
line xCentre#, yCentre# - 4, xCentre#, yCentre# - 10
line xCentre#, yCentre# + 4, xCentre#, yCentre# + 10
line xCentre# - 4, yCentre#, xCentre# - 10, yCentre#
line xCentre# + 4, yCentre#, xCentre# + 10, yCentre#
endfunction
SetupSniperEffect( Object Num 1, Object Num 2, Image Num, Camera Num, Exposure, Quality )
All the numbers just need to be empty.
Exposure ........ 0 - Normal, 1 - Over Exposed
Quality ......... 0, 1, 2 - Varying quality. I like 0.
Call
UpdateSniperEffect() just before you sync.
Here's some screenies:
It's really quick - shouldn't hit your FPS at all.
Don't worry if you don't want to use it.
You need the media attached (<1kb)