Может тебе сойдёт покачивание пушки а-ля Half Life 2?

Graphics3D 1280,1024,32,1
SetBuffer BackBuffer()
Global CameraPivot=CreatePivot()
Global Camera=CreateCamera(CameraPivot):CameraRange Camera,.0001,20
;Ñîçäà¸ì ïóøêó
Global Weapon=CreateCube(Camera)
ScaleEntity Weapon,.05,.05,1
PositionEntity Weapon,.5,-.5,0
;Ñîçäà¸ì ïóøêó
Global Cube=CreateCube()
PositionEntity Cube,0,0,10
Global WeaponSpeedX#
Global WeaponSpeedY#
Global WeaponWobbleEdgeX#=.2
Global WeaponWobbleEdgeY#=.2
Global WeaponSpeedFactor#=5
Global WeaponPositionX#=.5
Global WeaponPositionY#=-.5
PositionEntity Weapon,WeaponPositionX#,WeaponPositionY#,0
While Not KeyHit(1)
Local MXS#=MouseXSpeed()*.05
Local MYS#=MouseYSpeed()*.05
TurnEntity CameraPivot,0,-MXS#,0
TurnEntity Camera,MYS#,0,0
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
MoveEntity Weapon,-MXS#*.01,MYS#*.01,0
Local WeaponX#=EntityX#(Weapon)
Local WeaponY#=EntityY#(Weapon)
If WeaponX#>WeaponPositionX#+WeaponWobbleEdgeX# MoveEntity Weapon,(WeaponPositionX#+WeaponWobbleEdgeX#)-WeaponX#,0,0
If WeaponX#<WeaponPositionX#-WeaponWobbleEdgeX# MoveEntity Weapon,(WeaponPositionX#-WeaponWobbleEdgeX#)-WeaponX#,0,0
If WeaponY#>WeaponPositionY#+WeaponWobbleEdgeY# MoveEntity Weapon,0,(WeaponPositionY#+WeaponWobbleEdgeY#)-WeaponY#,0
If WeaponY#<WeaponPositionY#-WeaponWobbleEdgeY# MoveEntity Weapon,0,(WeaponPositionY#-WeaponWobbleEdgeY#)-WeaponY#,0
WeaponSpeedX#=(WeaponPositionX#-WeaponX#)/WeaponSpeedFactor#
WeaponSpeedY#=(WeaponPositionY#-WeaponY#)/WeaponSpeedFactor#
MoveEntity Weapon,WeaponSpeedX#,WeaponSpeedY#,0
UpdateWorld
RenderWorld
Flip
Wend
End