new fps counter
This commit is contained in:
parent
fcac1abef1
commit
e3a5ab0c42
|
@ -8,7 +8,7 @@ function DebugUI()
|
||||||
love.graphics.print(light.pos.x,light.pos.x,light.pos.y+40)
|
love.graphics.print(light.pos.x,light.pos.x,light.pos.y+40)
|
||||||
end
|
end
|
||||||
|
|
||||||
love.graphics.print("time: "..fps_total..", fps: "..fps_draw..", frametime: "..math.floor(current_dt* 1000).."ms", 10*textScale, 0*textScale, 0, textScale)
|
love.graphics.print("fps: "..fps_current, 10*textScale, 0*textScale, 0, textScale)
|
||||||
love.graphics.print(--[["CPUtime: "..checkCPUTime("total")..", CPU: "..(math.floor(checkCPUTime("get")*10000)/100).."%,]] "memoryUsage: "..memoryUsage.."kB", 10*textScale, 20*textScale, 0, textScale)
|
love.graphics.print(--[["CPUtime: "..checkCPUTime("total")..", CPU: "..(math.floor(checkCPUTime("get")*10000)/100).."%,]] "memoryUsage: "..memoryUsage.."kB", 10*textScale, 20*textScale, 0, textScale)
|
||||||
|
|
||||||
love.graphics.setColor(1,1,1)
|
love.graphics.setColor(1,1,1)
|
||||||
|
|
|
@ -220,7 +220,8 @@ function Player:DoPhysics()
|
||||||
if self.isHooked then
|
if self.isHooked then
|
||||||
self.move_x = 0
|
self.move_x = 0
|
||||||
local hook = Vector(self.pos.x, self.pos.y, self.hookAnchor.x, self.hookAnchor.y)
|
local hook = Vector(self.pos.x, self.pos.y, self.hookAnchor.x, self.hookAnchor.y)
|
||||||
if GetVectorValue(hook) > self.hookDistance then
|
local dist = math.min(GetVectorValue(hook), self.hookDistance)
|
||||||
|
|
||||||
local hook_angle = GetAngleFromVector(hook[1],hook[2])-math.rad(180)
|
local hook_angle = GetAngleFromVector(hook[1],hook[2])-math.rad(180)
|
||||||
|
|
||||||
if Keybind:CheckDown(Keybind.move.right) then
|
if Keybind:CheckDown(Keybind.move.right) then
|
||||||
|
@ -229,6 +230,7 @@ function Player:DoPhysics()
|
||||||
|
|
||||||
if Keybind:CheckDown(Keybind.move.left) then
|
if Keybind:CheckDown(Keybind.move.left) then
|
||||||
hook_angle = hook_angle + self.hookSwingSpeed
|
hook_angle = hook_angle + self.hookSwingSpeed
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local particle_data = {
|
local particle_data = {
|
||||||
|
@ -242,14 +244,13 @@ function Player:DoPhysics()
|
||||||
}
|
}
|
||||||
Particle:New(self.pos.x,self.pos.y,particle_data)
|
Particle:New(self.pos.x,self.pos.y,particle_data)
|
||||||
|
|
||||||
local pos_x = self.hookAnchor.x + self.hookDistance * math.cos(hook_angle)
|
local pos_x = self.hookAnchor.x + dist * math.cos(hook_angle)
|
||||||
local pos_y = self.hookAnchor.y + self.hookDistance * math.sin(hook_angle)
|
local pos_y = self.hookAnchor.y + dist * math.sin(hook_angle)
|
||||||
self.vel.x = self.vel.x + pos_x - self.pos.x
|
self.vel.x = self.vel.x + pos_x - self.pos.x
|
||||||
self.vel.y = self.vel.y + pos_y - self.pos.y
|
self.vel.y = self.vel.y + pos_y - self.pos.y
|
||||||
self.pos.x = pos_x
|
self.pos.x = pos_x
|
||||||
self.pos.y = pos_y
|
self.pos.y = pos_y
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
if self.canFall then
|
if self.canFall then
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
Queue = {}
|
||||||
|
|
||||||
|
function Queue:New()
|
||||||
|
local o = {head = nil, tail = nil}
|
||||||
|
|
||||||
|
setmetatable(o, self)
|
||||||
|
self.__index = self
|
||||||
|
return o
|
||||||
|
end
|
||||||
|
|
||||||
|
function Queue:Enqueue(item)
|
||||||
|
local elem = {item = item}
|
||||||
|
if self.head == nil then
|
||||||
|
self.head = elem
|
||||||
|
self.tail = elem
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
elem.next = self.head
|
||||||
|
elem.next.prev = elem
|
||||||
|
self.head = elem
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
function Queue:Empty()
|
||||||
|
return self.tail == nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function Queue:Dequeue()
|
||||||
|
if self:Empty() then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
local newtail = self.tail.prev
|
||||||
|
local item = self.tail.item
|
||||||
|
if newtail then
|
||||||
|
newtail.next = nil
|
||||||
|
end
|
||||||
|
self.tail = newtail
|
||||||
|
return item
|
||||||
|
end
|
||||||
|
|
||||||
|
local tq1 = Queue:New()
|
||||||
|
tq1:Enqueue(5)
|
||||||
|
assert(tq1.head.item == 5)
|
||||||
|
assert(tq1:Dequeue() == 5)
|
||||||
|
|
||||||
|
-- queue that keeps a rolling tally of its arguments
|
||||||
|
AvgQueue = {}
|
||||||
|
|
||||||
|
function AvgQueue:New(n, initial)
|
||||||
|
local o = {}
|
||||||
|
|
||||||
|
o.n = n
|
||||||
|
o.queue = Queue:New()
|
||||||
|
o.avg = initial
|
||||||
|
|
||||||
|
|
||||||
|
local x = initial / n
|
||||||
|
for _ = 1,n do
|
||||||
|
o.queue:Enqueue(x)
|
||||||
|
end
|
||||||
|
|
||||||
|
setmetatable(o, self)
|
||||||
|
self.__index = self
|
||||||
|
return o
|
||||||
|
end
|
||||||
|
|
||||||
|
function AvgQueue:Push(item)
|
||||||
|
local x = item/self.n
|
||||||
|
self.avg = self.avg + x - self.queue:Dequeue()
|
||||||
|
self.queue:Enqueue(x)
|
||||||
|
return self.avg
|
||||||
|
end
|
|
@ -18,6 +18,7 @@ require "code/level"
|
||||||
require "code/camera"
|
require "code/camera"
|
||||||
require "code/animation"
|
require "code/animation"
|
||||||
require "code/audio"
|
require "code/audio"
|
||||||
|
require "code/queue"
|
||||||
|
|
||||||
-- objects
|
-- objects
|
||||||
require "code/entity"
|
require "code/entity"
|
||||||
|
|
18
main.lua
18
main.lua
|
@ -10,10 +10,7 @@ function love.load()
|
||||||
editor_mode = false
|
editor_mode = false
|
||||||
|
|
||||||
textScale = 1
|
textScale = 1
|
||||||
fps_count = 0
|
|
||||||
fps_second = 0
|
|
||||||
fps_draw = 0
|
|
||||||
fps_total = 0
|
|
||||||
|
|
||||||
love.graphics.setColor(1,1,1)
|
love.graphics.setColor(1,1,1)
|
||||||
love.keyboard.setKeyRepeat(true)
|
love.keyboard.setKeyRepeat(true)
|
||||||
|
@ -28,6 +25,9 @@ function love.load()
|
||||||
|
|
||||||
require "code/require"
|
require "code/require"
|
||||||
|
|
||||||
|
fps_history = AvgQueue:New(30,60)
|
||||||
|
|
||||||
|
|
||||||
logPrint(loveInitLog)
|
logPrint(loveInitLog)
|
||||||
loveInitLog = nil
|
loveInitLog = nil
|
||||||
|
|
||||||
|
@ -65,14 +65,8 @@ function love.update(dt)
|
||||||
-- audio update
|
-- audio update
|
||||||
love.audio.update()
|
love.audio.update()
|
||||||
-- fps counter
|
-- fps counter
|
||||||
if fps_second >= 1 then
|
fps_current = fps_history:Push(1/dt)
|
||||||
fps_second = fps_second - 1
|
|
||||||
fps_draw = fps_count
|
|
||||||
fps_count = 0
|
|
||||||
fps_total = fps_total + 1
|
|
||||||
end
|
|
||||||
fps_second = fps_second + dt
|
|
||||||
fps_count = fps_count + 1
|
|
||||||
current_dt = dt
|
current_dt = dt
|
||||||
|
|
||||||
if DemoRecording or DemoPlayback then Demo:Step() end
|
if DemoRecording or DemoPlayback then Demo:Step() end
|
||||||
|
|
Loading…
Reference in New Issue