home *** CD-ROM | disk | FTP | other *** search
/ 3D Game Programming All in One / 3D Game Programming All in One Disc.iso / 3D2E / demo / server / scripts / camera.cs < prev    next >
Encoding:
Text File  |  2005-11-23  |  2.3 KB  |  81 lines

  1. //-----------------------------------------------------------------------------
  2. // Torque Game Engine 
  3. // Copyright (C) GarageGames.com, Inc.
  4. //-----------------------------------------------------------------------------
  5.  
  6. // Global movement speed that affects all cameras.  This should be moved
  7. // into the camera datablock.
  8. $Camera::movementSpeed = 40;
  9.  
  10. //-----------------------------------------------------------------------------
  11. // Define a datablock class to use for our observer camera
  12. //-----------------------------------------------------------------------------
  13.  
  14. datablock CameraData(Observer)
  15. {
  16.    mode = "Observer";
  17. };
  18.  
  19.  
  20. //-----------------------------------------------------------------------------
  21.  
  22. function Observer::onTrigger(%this,%obj,%trigger,%state)
  23. {
  24.    // state = 0 means that a trigger key was released
  25.    if (%state == 0)
  26.       return;
  27.  
  28.    // Default player triggers: 0=fire 1=altFire 2=jump
  29.    %client = %obj.getControllingClient();
  30.    switch$ (%obj.mode)
  31.    {
  32.       case "Observer":
  33.          // Do something interesting.
  34.  
  35.       case "Corpse":
  36.          // Viewing dead corpse, so we probably want to respawn.
  37.          %client.spawnPlayer();
  38.  
  39.          // Set the camera back into observer mode, since in
  40.          // debug mode we like to switch to it.
  41.          %this.setMode(%obj,"Observer");
  42.    }
  43. }
  44.  
  45. function Observer::setMode(%this,%obj,%mode,%arg1,%arg2,%arg3)
  46. {
  47.    switch$ (%mode)
  48.    {
  49.       case "Observer":
  50.          // Let the player fly around
  51.          %obj.setFlyMode();
  52.  
  53.       case "Corpse":
  54.          // Lock the camera down in orbit around the corpse,
  55.          // which should be arg1
  56.          %transform = %arg1.getTransform();
  57.          %obj.setOrbitMode(%arg1, %transform, 0.5, 4.5, 4.5);
  58.  
  59.    }
  60.    %obj.mode = %mode;
  61. }
  62.  
  63.  
  64. //-----------------------------------------------------------------------------
  65. // Camera methods
  66. //-----------------------------------------------------------------------------
  67.  
  68. //-----------------------------------------------------------------------------
  69.  
  70. function Camera::onAdd(%this,%obj)
  71. {
  72.    // Default start mode
  73.    %this.setMode(%this.mode);
  74. }
  75.  
  76. function Camera::setMode(%this,%mode,%arg1,%arg2,%arg3)
  77. {
  78.    // Punt this one over to our datablock
  79.    %this.getDatablock().setMode(%this,%mode,%arg1,%arg2,%arg3);
  80. }
  81.