📄 camera_shake.lua
字号:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------- file: camera_shake.lua-- brief: Camera shakes-- author: Dave Rodgers---- Copyright (C) 2007.-- Licensed under the terms of the GNU GPL, v2 or later.------------------------------------------------------------------------------------------------------------------------------------------------------------------function widget:GetInfo() return { name = "CameraShake", desc = "Camera shakes", author = "trepan", date = "Jun 15, 2007", license = "GNU GPL, v2 or later", layer = 0, enabled = false -- loaded by default? }end------------------------------------------------------------------------------------------------------------------------------------------------------------------ Automatically generated local definitionslocal spSetCameraOffset = Spring.SetCameraOffsetlocal spSetShockFrontFactors = Spring.SetShockFrontFactors----------------------------------------------------------------------------------------------------------------------------------------------------------------local exps = 0local shake = 0local powerScale = 200local decayFactor = 5local minArea = 32 -- weapon's area of effectlocal minPower = (0.02 / powerScale)local distAdj = 100----------------------------------------------------------------------------------------------------------------------------------------------------------------function widget:Initialize() -- required for ShockFront() call-ins -- (threshold uses the 1/d^2 power) spSetShockFrontFactors(minArea, minPower, distAdj)endfunction widget:Shutdown() spSetCameraOffset()endfunction widget:ShockFront(power, dx, dy, dz) exps = exps + 1 power = power * powerScale if (power > 10) then power = 10 end shake = shake + powerendlocal function birand(val) return val * (1.0 - (0.002 * math.random(1000)))endfunction widget:Update(dt) local t = widgetHandler:GetHourTimer() local pShake = shake * 0.1 local tShake = shake * 0.025 local px, py, pz, tx, ty, tz = birand(pShake), birand(pShake), birand(pShake), birand(tShake), birand(tShake) spSetCameraOffset(px, py, pz, tx, ty) local decay = (1 - (decayFactor * dt)) if (decay < 0) then decay = 0 end shake = shake * decayend----------------------------------------------------------------------------------------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -