⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camera_ctrl.lua

📁 这是整套横扫千军3D版游戏的源码
💻 LUA
字号:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------  file:    camera_ctrl.lua--  brief:   --  author:  Dave Rodgers----  Copyright (C) 2007.--  Licensed under the terms of the GNU GPL, v2 or later.------------------------------------------------------------------------------------------------------------------------------------------------------------------function widget:GetInfo()  return {    name      = "CameraControl",    desc      = "Low level access to camera parameters",    author    = "trepan",    date      = "Mar 21, 2007",    license   = "GNU GPL, v2 or later",    layer     = 1,     --  after the normal widgets    enabled   = false  --  loaded by default?  }end--------------------------------------------------------------------------------------------------------------------------------------------------------------------  NOTES:----    The GetCameraState() table is supposed to be opaque.   :-)------------------------------------------------------------------------------------------------------------------------------------------------------------------local function GetCamereTable()  local cs = Spring.GetCameraState()  if (cs == nil) then    return nil  end  local ct = {    px = 2, py = 3, pz = 4  --  available to all modes, and 1 is 'num'  }    if (cs.name == 'ov') then    -- Overview    ct.fullName = "Overview"  elseif ((cs.name == 'fps') or (cs.name == 'rot')) then   -- FPS and Rotating    if (cs.name == 'fps') then      ct.fullName = "First Person Shooter (FPS)"    else      ct.fullName = "Rotatable Camera"    end    ct.dx        = 5    ct.dy        = 6    ct.dz        = 7    ct.rx        = 8    ct.ry        = 9    ct.rz        = 10    ct.oldHeight = 11  elseif (cs.name == 'ta') then    -- Total Annihilation    ct.fullName = "Total Annihilation Overhead Camera"    ct.dx      = 5    ct.dy      = 6    ct.dz      = 7    ct.height  = 8    ct.zscale  = 9    ct.flipped = 10  elseif (cs.name == 'tw') then    -- Total War     ct.fullName = "Total War Camera"    ct.rx = 5    ct.ry = 6    ct.rz = 7  elseif (cs.name == 'free') then  -- Free Camera    ct.fullName = "Free Camera"    ct.dx          = 5    ct.dy          = 6    ct.dz          = 7    ct.rx          = 8    ct.ry          = 9    ct.rz          = 10    ct.fov         = 11    ct.gndOffset   = 12    ct.gravity     = 13    ct.slide       = 14    ct.scrollSpeed = 15    ct.tiltSpeed   = 16    ct.velTime     = 17    ct.avelTime    = 18    ct.autoTilt    = 19    ct.goForward   = 20    ct.invertAlt   = 21    ct.gndLock     = 22    ct.vx          = 23    ct.vy          = 24    ct.vz          = 25    ct.avx         = 26    ct.avy         = 27    ct.avz         = 28  end  return ct, csend--------------------------------------------------------------------------------local function CamCtrl(cmd, line, words)  local wc = #words  local ct, cs = GetCamereTable()  if (ct == nil) then    Spring.Echo("Couldn't get the camera state")    return true  end  if (wc == 0) then  --  print the parameters names    Spring.Echo(ct.fullName .. " Parameters:")    local array = {}    for k,v in pairs(ct) do      if (type(v) == "number") then        table.insert(array, k)      end    end    table.sort(array)    Spring.Echo(table.concat(array, " "))  elseif (wc == 1) then  --  print a parameters value    Spring.Echo(ct.fullName)    local param = ct[words[1]]    if ((param == nil) or (type(param) ~= 'number')) then      Spring.Echo("  bad parameter name: " .. words[1])      return true    end    Spring.Echo("  " .. words[1] .. " = " .. tostring(cs[param]))  elseif (wc >= 2) then  --  set a parameters value    Spring.Echo(ct.fullName)    local param = ct[words[1]]    if ((param == nil) or (type(param) ~= 'number')) then      Spring.Echo("  bad parameter name: " .. words[1])      return true    end    local value = tonumber(words[2])    if (value == nil) then      Spring.Echo("  bad value: " .. words[2])      return true    end    cs[param] = tonumber(value)    local camTime = 0    if (wc >= 3) then  --  specified transition time?      camTime = tonumber(words[3])      if (camTime == nil) then        Spring.Echo("  bad camTime: " .. words[3])        return true      end    end    Spring.SetCameraState(cs, camTime)    Spring.Echo("  set " .. words[1] .. " to " .. value)  end  return trueendfunction widget:Initialize()  widgetHandler:AddAction("cam", CamCtrl)end--------------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -