flybehaviour.monkey2 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. Namespace mojo3d
  2. Class FlyBehaviour Extends Behaviour
  3. Method New( entity:Entity )
  4. Super.New( entity )
  5. End
  6. Property Speed:Float()
  7. Return _speed
  8. Setter( speed:Float )
  9. _speed=speed
  10. End
  11. Property RotSpeed:Float()
  12. Return _rspeed
  13. Setter( rspeed:Float )
  14. _rspeed=rspeed
  15. End
  16. Method OnUpdate( elapsed:Float ) Override
  17. Local rspeed:=_rspeed * 60.0 * elapsed
  18. Local entity:=Entity
  19. Local view:=App.ActiveWindow
  20. If Keyboard.KeyDown( Key.Up )
  21. entity.RotateX( rspeed )
  22. Else If Keyboard.KeyDown( Key.Down )
  23. entity.RotateX( -rspeed )
  24. Endif
  25. If Keyboard.KeyDown( Key.Left )
  26. entity.RotateY( rspeed,True )
  27. Else If Keyboard.KeyDown( Key.Right )
  28. entity.RotateY( -rspeed,True )
  29. Endif
  30. If Keyboard.KeyDown( Key.A )
  31. entity.MoveZ( _speed * 60 * elapsed )
  32. Else If Keyboard.KeyDown( Key.Z )
  33. entity.MoveZ( -_speed * 60 * elapsed )
  34. Endif
  35. If Mouse.ButtonDown( MouseButton.Left )
  36. If Mouse.X<view.Width/3
  37. entity.RotateY( rspeed,True )
  38. Else If Mouse.X>view.Width/3*2
  39. entity.RotateY( -rspeed,True )
  40. Else
  41. entity.Move( New Vec3f( 0,0,_speed * 60 * elapsed ) )
  42. Endif
  43. Endif
  44. End
  45. Private
  46. Field _speed:Float=.1
  47. Field _rspeed:Float=3.0
  48. End