123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- Namespace mojo3d
- Class FlyBehaviour Extends Behaviour
-
- Method New( entity:Entity )
-
- Super.New( entity )
- End
-
- Property Speed:Float()
-
- Return _speed
-
- Setter( speed:Float )
-
- _speed=speed
- End
-
- Property RotSpeed:Float()
-
- Return _rspeed
-
- Setter( rspeed:Float )
-
- _rspeed=rspeed
- End
-
- Method OnUpdate( elapsed:Float ) Override
-
- Local rspeed:=_rspeed * 60.0 * elapsed
-
- Local entity:=Entity
-
- Local view:=App.ActiveWindow
-
- If Keyboard.KeyDown( Key.Up )
- entity.RotateX( rspeed )
- Else If Keyboard.KeyDown( Key.Down )
- entity.RotateX( -rspeed )
- Endif
-
- If Keyboard.KeyDown( Key.Left )
- entity.RotateY( rspeed,True )
- Else If Keyboard.KeyDown( Key.Right )
- entity.RotateY( -rspeed,True )
- Endif
-
- If Keyboard.KeyDown( Key.A )
- entity.MoveZ( _speed * 60 * elapsed )
- Else If Keyboard.KeyDown( Key.Z )
- entity.MoveZ( -_speed * 60 * elapsed )
- Endif
-
- If Mouse.ButtonDown( MouseButton.Left )
- If Mouse.X<view.Width/3
- entity.RotateY( rspeed,True )
- Else If Mouse.X>view.Width/3*2
- entity.RotateY( -rspeed,True )
- Else
- entity.Move( New Vec3f( 0,0,_speed * 60 * elapsed ) )
- Endif
- Endif
-
- End
-
- Private
-
- Field _speed:Float=.1
- Field _rspeed:Float=3.0
-
- End
|