整理主循环代码,略微提升性能
This commit is contained in:
@@ -45,10 +45,13 @@ THEME= require"Zframework.theme"
|
|||||||
local ms,kb=love.mouse,love.keyboard
|
local ms,kb=love.mouse,love.keyboard
|
||||||
|
|
||||||
local gc=love.graphics
|
local gc=love.graphics
|
||||||
local gc_push,gc_pop=gc.push,gc.pop
|
local gc_push,gc_pop,gc_clear,gc_origin=gc.push,gc.pop,gc.clear,gc.origin
|
||||||
local gc_discard,gc_present=gc.discard,gc.present
|
local gc_replaceTransform,gc_present,gc_discard=gc.replaceTransform,gc.present,gc.discard
|
||||||
local gc_setColor,gc_draw,gc_rectangle=gc.setColor,gc.draw,gc.rectangle
|
local gc_setColor,gc_setLineWidth=gc.setColor,gc.setLineWidth
|
||||||
local gc_print=gc.print
|
local gc_draw,gc_line=gc.draw,gc.line
|
||||||
|
local gc_rectangle=gc.rectangle
|
||||||
|
local gc_print,gc_printf=gc.print,gc.printf
|
||||||
|
|
||||||
local setFont,mStr=setFont,mStr
|
local setFont,mStr=setFont,mStr
|
||||||
|
|
||||||
local int,rnd,abs=math.floor,math.random,math.abs
|
local int,rnd,abs=math.floor,math.random,math.abs
|
||||||
@@ -74,15 +77,17 @@ local batteryImg=DOGC{31,20,
|
|||||||
local infoCanvas=gc.newCanvas(108,27)
|
local infoCanvas=gc.newCanvas(108,27)
|
||||||
local function updatePowerInfo()
|
local function updatePowerInfo()
|
||||||
local state,pow=love.system.getPowerInfo()
|
local state,pow=love.system.getPowerInfo()
|
||||||
gc.setCanvas(infoCanvas)gc_push('transform')gc.origin()
|
gc.setCanvas(infoCanvas)
|
||||||
gc.clear(0,0,0,.25)
|
gc_push('transform')
|
||||||
|
gc_origin()
|
||||||
|
gc_clear(0,0,0,.25)
|
||||||
if state~='unknown'then
|
if state~='unknown'then
|
||||||
gc.setLineWidth(4)
|
gc_setLineWidth(4)
|
||||||
local charging=state=='charging'
|
local charging=state=='charging'
|
||||||
if state=='nobattery'then
|
if state=='nobattery'then
|
||||||
gc_setColor(1,1,1)
|
gc_setColor(1,1,1)
|
||||||
gc.setLineWidth(2)
|
gc_setLineWidth(2)
|
||||||
gc.line(74,SCR.safeX+5,100,22)
|
gc_line(74,SCR.safeX+5,100,22)
|
||||||
elseif pow then
|
elseif pow then
|
||||||
if charging then gc_setColor(0,1,0)
|
if charging then gc_setColor(0,1,0)
|
||||||
elseif pow>50 then gc_setColor(1,1,1)
|
elseif pow>50 then gc_setColor(1,1,1)
|
||||||
@@ -106,7 +111,8 @@ local function updatePowerInfo()
|
|||||||
end
|
end
|
||||||
setFont(25)
|
setFont(25)
|
||||||
gc_print(os.date("%H:%M"),3,-5)
|
gc_print(os.date("%H:%M"),3,-5)
|
||||||
gc_pop()gc.setCanvas()
|
gc_pop()
|
||||||
|
gc.setCanvas()
|
||||||
end
|
end
|
||||||
-------------------------------------------------------------
|
-------------------------------------------------------------
|
||||||
local lastX,lastY=0,0--Last click pos
|
local lastX,lastY=0,0--Last click pos
|
||||||
@@ -430,14 +436,14 @@ function love.errorhandler(msg)
|
|||||||
SCR.resize(a,b)
|
SCR.resize(a,b)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
gc.clear(.3,.5,.9)
|
gc_clear(.3,.5,.9)
|
||||||
gc_push('transform')
|
gc_push('transform')
|
||||||
gc.replaceTransform(xOy)
|
gc_replaceTransform(xOy)
|
||||||
setFont(100)gc_print(":(",100,0,0,1.2)
|
setFont(100)gc_print(":(",100,0,0,1.2)
|
||||||
setFont(40)gc.printf(errorMsg,100,160,SCR.w0-100)
|
setFont(40)gc_printf(errorMsg,100,160,SCR.w0-100)
|
||||||
setFont(20)
|
setFont(20)
|
||||||
gc_print(SYSTEM.."-"..VERSION.string.." scene:"..(SCN and SCN.cur or"NULL"),100,660)
|
gc_print(SYSTEM.."-"..VERSION.string.." scene:"..(SCN and SCN.cur or"NULL"),100,660)
|
||||||
gc.printf(err[1],100,360,1260-100)
|
gc_printf(err[1],100,360,1260-100)
|
||||||
gc_print("TRACEBACK",100,450)
|
gc_print("TRACEBACK",100,450)
|
||||||
for i=4,#err-2 do
|
for i=4,#err-2 do
|
||||||
gc_print(err[i],100,400+20*i)
|
gc_print(err[i],100,400+20*i)
|
||||||
@@ -557,9 +563,7 @@ function love.run()
|
|||||||
--Draw background
|
--Draw background
|
||||||
BG.draw()
|
BG.draw()
|
||||||
|
|
||||||
gc_push('transform')
|
gc.replaceTransform(xOy)
|
||||||
gc.replaceTransform(xOy)
|
|
||||||
|
|
||||||
--Draw scene contents
|
--Draw scene contents
|
||||||
if SCN.draw then SCN.draw()end
|
if SCN.draw then SCN.draw()end
|
||||||
|
|
||||||
@@ -583,78 +587,76 @@ function love.run()
|
|||||||
end
|
end
|
||||||
SYSFX.draw()
|
SYSFX.draw()
|
||||||
TEXT.draw()
|
TEXT.draw()
|
||||||
gc_pop()
|
gc.origin()
|
||||||
|
--Draw power info.
|
||||||
--Draw power info.
|
if SETTING.powerInfo then
|
||||||
if SETTING.powerInfo then
|
gc_setColor(1,1,1)
|
||||||
gc_setColor(1,1,1)
|
gc_draw(infoCanvas,SCR.safeX,0,0,SCR.k)
|
||||||
gc_draw(infoCanvas,SCR.safeX,0,0,SCR.k)
|
|
||||||
end
|
|
||||||
|
|
||||||
--Draw scene swapping animation
|
|
||||||
if SCN.swapping then
|
|
||||||
gc_setColor(1,1,1)
|
|
||||||
_=SCN.stat
|
|
||||||
_.draw(_.time)
|
|
||||||
end
|
|
||||||
|
|
||||||
--Draw Logs
|
|
||||||
LOG.draw()
|
|
||||||
|
|
||||||
--Draw FPS
|
|
||||||
setFont(15)
|
|
||||||
_=SCR.h
|
|
||||||
gc_setColor(1,1,1)
|
|
||||||
gc_print(FPS(),SCR.safeX+5,_-20)
|
|
||||||
|
|
||||||
--Debug info.
|
|
||||||
if devMode then
|
|
||||||
--Left-down infos
|
|
||||||
gc_setColor(devColor[devMode])
|
|
||||||
gc_print("MEM "..gcinfo(),SCR.safeX+5,_-40)
|
|
||||||
gc_print("Lines "..FREEROW.getCount(),SCR.safeX+5,_-60)
|
|
||||||
gc_print("Cursor "..int(mx+.5).." "..int(my+.5),SCR.safeX+5,_-80)
|
|
||||||
gc_print("Voices "..VOC.getQueueCount(),SCR.safeX+5,_-100)
|
|
||||||
gc_print("Tasks "..TASK.getCount(),SCR.safeX+5,_-120)
|
|
||||||
|
|
||||||
--Update & draw frame time
|
|
||||||
ins(frameTimeList,1,dt)rem(frameTimeList,126)
|
|
||||||
gc_setColor(1,1,1,.3)
|
|
||||||
for i=1,#frameTimeList do
|
|
||||||
gc_rectangle('fill',150+2*i,_-20,2,-frameTimeList[i]*4000)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--Websocket status
|
--Draw scene swapping animation
|
||||||
gc_push('transform')
|
if SCN.swapping then
|
||||||
gc.translate(SCR.w,SCR.h)
|
gc_setColor(1,1,1)
|
||||||
gc.scale(SCR.k)
|
_=SCN.stat
|
||||||
for i=1,5 do
|
_.draw(_.time)
|
||||||
local status=WS.status(WSnames[i])
|
end
|
||||||
gc_setColor(WScolor[i])
|
|
||||||
gc_rectangle('fill',0,20*i-100,-80,-20)
|
--Draw Logs
|
||||||
if status=='dead'then
|
LOG.draw()
|
||||||
gc_setColor(1,1,1)
|
|
||||||
gc_draw(ws_deadImg,-20,20*i-120)
|
--Draw FPS
|
||||||
elseif status=='connecting'then
|
setFont(15)
|
||||||
gc_setColor(1,1,1,.5+.3*sin(time*6.26))
|
_=SCR.h
|
||||||
gc_draw(ws_connectingImg,-20,20*i-120)
|
gc_setColor(1,1,1)
|
||||||
elseif status=='running'then
|
gc_print(FPS(),SCR.safeX+5,_-20)
|
||||||
gc_setColor(1,1,1)
|
|
||||||
gc_draw(ws_runningImg,-20,20*i-120)
|
--Debug info.
|
||||||
|
if devMode then
|
||||||
|
--Left-down infos
|
||||||
|
gc_setColor(devColor[devMode])
|
||||||
|
gc_print("MEM "..gcinfo(),SCR.safeX+5,_-40)
|
||||||
|
gc_print("Lines "..FREEROW.getCount(),SCR.safeX+5,_-60)
|
||||||
|
gc_print("Cursor "..int(mx+.5).." "..int(my+.5),SCR.safeX+5,_-80)
|
||||||
|
gc_print("Voices "..VOC.getQueueCount(),SCR.safeX+5,_-100)
|
||||||
|
gc_print("Tasks "..TASK.getCount(),SCR.safeX+5,_-120)
|
||||||
|
|
||||||
|
--Update & draw frame time
|
||||||
|
ins(frameTimeList,1,dt)rem(frameTimeList,126)
|
||||||
|
gc_setColor(1,1,1,.3)
|
||||||
|
for i=1,#frameTimeList do
|
||||||
|
gc_rectangle('fill',150+2*i,_-20,2,-frameTimeList[i]*4000)
|
||||||
end
|
end
|
||||||
local t1,t2,t3=WS.getTimers(WSnames[i])
|
|
||||||
gc_setColor(1,1,1,t1)gc_rectangle('fill',-60,20*i-100,-20,-20)
|
|
||||||
gc_setColor(0,1,0,t2)gc_rectangle('fill',-40,20*i-100,-20,-20)
|
|
||||||
gc_setColor(1,0,0,t3)gc_rectangle('fill',-20,20*i-100,-20,-20)
|
|
||||||
end
|
|
||||||
gc_pop()
|
|
||||||
|
|
||||||
--Slow devmode
|
--Websocket status
|
||||||
if devMode==3 then WAIT(.1)
|
gc_push('transform')
|
||||||
elseif devMode==4 then WAIT(.5)
|
gc.translate(SCR.w,SCR.h)
|
||||||
end
|
gc.scale(SCR.k)
|
||||||
end
|
for i=1,5 do
|
||||||
|
local status=WS.status(WSnames[i])
|
||||||
|
gc_setColor(WScolor[i])
|
||||||
|
gc_rectangle('fill',0,20*i-100,-80,-20)
|
||||||
|
if status=='dead'then
|
||||||
|
gc_setColor(1,1,1)
|
||||||
|
gc_draw(ws_deadImg,-20,20*i-120)
|
||||||
|
elseif status=='connecting'then
|
||||||
|
gc_setColor(1,1,1,.5+.3*sin(time*6.26))
|
||||||
|
gc_draw(ws_connectingImg,-20,20*i-120)
|
||||||
|
elseif status=='running'then
|
||||||
|
gc_setColor(1,1,1)
|
||||||
|
gc_draw(ws_runningImg,-20,20*i-120)
|
||||||
|
end
|
||||||
|
local t1,t2,t3=WS.getTimers(WSnames[i])
|
||||||
|
gc_setColor(1,1,1,t1)gc_rectangle('fill',-60,20*i-100,-20,-20)
|
||||||
|
gc_setColor(0,1,0,t2)gc_rectangle('fill',-40,20*i-100,-20,-20)
|
||||||
|
gc_setColor(1,0,0,t3)gc_rectangle('fill',-20,20*i-100,-20,-20)
|
||||||
|
end
|
||||||
|
gc_pop()
|
||||||
|
|
||||||
|
--Slow devmode
|
||||||
|
if devMode==3 then WAIT(.1)
|
||||||
|
elseif devMode==4 then WAIT(.5)
|
||||||
|
end
|
||||||
|
end
|
||||||
gc_present()
|
gc_present()
|
||||||
|
|
||||||
--SPEED UPUPUP!
|
--SPEED UPUPUP!
|
||||||
|
|||||||
@@ -658,7 +658,7 @@ function draw.norm(P)
|
|||||||
|
|
||||||
--Draw boarders
|
--Draw boarders
|
||||||
gc_setColor(P.frameColor)
|
gc_setColor(P.frameColor)
|
||||||
gc.draw(playerBoarders,-17,-12)
|
gc_draw(playerBoarders,-17,-12)
|
||||||
|
|
||||||
--Draw target selecting pad
|
--Draw target selecting pad
|
||||||
if GAME.modeEnv.royaleMode then
|
if GAME.modeEnv.royaleMode then
|
||||||
|
|||||||
Reference in New Issue
Block a user