Показать сообщение отдельно
Старый 11.11.2010, 21:58   #4
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений
(для 2,209 пользователей)
Ответ: Плавное вращение ствола)

Может тебе сойдёт покачивание пушки а-ля 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
(Offline)
 
Ответить с цитированием