120 lines
2.7 KiB
Lua
120 lines
2.7 KiB
Lua
function love.update(dt)
|
|
--[[
|
|
if players then
|
|
for k,v in pairs(players[1])do
|
|
if rawget(_G,k)then print(k)end
|
|
end
|
|
end--check player data flew(debugging)
|
|
]]
|
|
for i=#BGblock,1,-1 do
|
|
BGblock[i].y=BGblock[i].y+BGblock[i].v
|
|
if BGblock[i].y>720 then rem(BGblock,i)end
|
|
end
|
|
BGblock.ct=BGblock.ct-1
|
|
if BGblock.ct==0 then
|
|
ins(BGblock,getNewBlock())
|
|
BGblock.ct=rnd(20,30)
|
|
end
|
|
--Background blocks update
|
|
|
|
if sceneSwaping then
|
|
sceneSwaping.time=sceneSwaping.time-1
|
|
if sceneSwaping.time==sceneSwaping.mid then
|
|
for i=1,#Buttons[scene]do
|
|
Buttons[scene][i].alpha=0
|
|
end--Reset buttons' state
|
|
game[sceneSwaping.tar]()
|
|
Buttons.sel=nil
|
|
elseif sceneSwaping.time==0 then
|
|
sceneSwaping=nil
|
|
end
|
|
elseif Tmr[scene]then
|
|
Tmr[scene](dt)
|
|
end
|
|
--scene swapping & Timer
|
|
end
|
|
function love.receiveData(id,data)
|
|
return nil
|
|
end
|
|
function love.draw()
|
|
Pnt.BG[curBG]()
|
|
gc.setColor(1,1,1,.3)
|
|
for n=1,#BGblock do
|
|
local b,img=BGblock[n].b,blockSkin[BGblock[n].bn]
|
|
local size=BGblock[n].size
|
|
for i=1,#b do for j=1,#b[1]do
|
|
if b[i][j]>0 then
|
|
gc.draw(img,BGblock[n].x+(j-1)*30*size,BGblock[n].y+(i-1)*30*size,nil,size)
|
|
end
|
|
end end--Block
|
|
end
|
|
if Pnt[scene]then Pnt[scene]()end
|
|
setFont(40)
|
|
drawButton()
|
|
if mouseShow and not touching then
|
|
gc.setColor(1,1,1)
|
|
gc.draw(mouseIcon,mx,my,nil,nil,nil,10,10)
|
|
end
|
|
if sceneSwaping then sceneSwaping.draw()end
|
|
|
|
gc.setColor(0,0,0)
|
|
if screenM>0 then
|
|
gc.rectangle("fill",0,0,1280,-screenM)
|
|
gc.rectangle("fill",0,720,1280,screenM)
|
|
end--Draw black side
|
|
|
|
numFont(20)gc.setColor(1,1,1)
|
|
gc.print(tm.getFPS(),0,700)
|
|
gc.print(gcinfo(),0,680)
|
|
--if gcinfo()>500 then collectgarbage()end
|
|
end
|
|
function love.resize(x,y)
|
|
screenK=1280/gc.getWidth()
|
|
screenM=(gc.getHeight()*16/9-gc.getWidth())/2
|
|
gc.origin()
|
|
gc.scale(1/screenK,1/screenK)
|
|
gc.translate(0,screenM)
|
|
end
|
|
function love.run()
|
|
local frameT=Timer()
|
|
tm.step()
|
|
love.resize(nil,gc.getHeight())
|
|
game.load()--System scene Launch
|
|
math.randomseed(os.time()*626)--true A-lthour's ID!
|
|
return function()
|
|
love.event.pump()
|
|
for name,a,b,c,d,e,f in love.event.poll()do
|
|
if name=="quit"then return 0 end
|
|
love.handlers[name](a,b,c,d,e,f)
|
|
end
|
|
if focus then
|
|
tm.step()
|
|
-- love.receiveData(id,data)
|
|
love.update(tm.getDelta())
|
|
gc.clear()
|
|
love.draw()
|
|
gc.present()
|
|
if not wd.hasFocus()then
|
|
focus=false
|
|
ms.setVisible(true)
|
|
if bgmPlaying then bgm[bgmPlaying]:pause()end
|
|
if scene=="play"then
|
|
for i=1,#players[1].keyPressing do
|
|
if players[1].keyPressing[i]then
|
|
releaseKey(i)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
else
|
|
tm.sleep(.1)
|
|
if wd.hasFocus()then
|
|
focus=true
|
|
ms.setVisible(false)
|
|
if bgmPlaying then bgm[bgmPlaying]:play()end
|
|
end
|
|
end
|
|
while Timer()-frameT<1/60 do end
|
|
frameT=Timer()
|
|
end
|
|
end |