Alpha V0.7.22
This commit is contained in:
294
paint.lua
294
paint.lua
@@ -1,8 +1,12 @@
|
||||
local gc=love.graphics
|
||||
local mt=love.math
|
||||
local gmatch=string.gmatch
|
||||
local setFont=setFont
|
||||
local Timer=love.timer.getTime
|
||||
local int,abs,rnd,max,min,sin=math.floor,math.abs,math.random,math.max,math.min,math.sin
|
||||
local format=string.format
|
||||
|
||||
local Timer=love.timer.getTime
|
||||
local scr=scr
|
||||
local attackColor={
|
||||
{color.darkGrey,color.white},
|
||||
{color.grey,color.white},
|
||||
@@ -20,10 +24,11 @@ local frameColor={
|
||||
local modeLevelColor={
|
||||
EASY=color.cyan,
|
||||
NORMAL=color.green,
|
||||
["NORMAL+"]=color.darkGreen,
|
||||
HARD=color.magenta,
|
||||
["HARD+"]=color.darkMagenta,
|
||||
LUNATIC=color.red,
|
||||
["NORMAL+"]=color.darkGreen,
|
||||
["HARD+"]=color.darkMagenta,
|
||||
["LUNATIC+"]=color.darkRed,
|
||||
EXTRA=color.lightMagenta,
|
||||
ULTIMATE=color.lightYellow,
|
||||
|
||||
@@ -36,7 +41,7 @@ local modeLevelColor={
|
||||
["40L"]=color.green,
|
||||
["100L"]=color.orange,
|
||||
["400L"]=color.red,
|
||||
["1000L"]=color.darkRed,
|
||||
["1000L"]=color.lightGrey,
|
||||
}
|
||||
local dataOptL={"key","rotate","hold",nil,nil,nil,"send","recv","pend"}
|
||||
local function dataOpt(i)
|
||||
@@ -102,8 +107,9 @@ end
|
||||
FX={
|
||||
flash=0,--Black screen(frame)
|
||||
shake=0,--Screen shake(frame)
|
||||
beam={},--Attack beam
|
||||
attack={},--Attack beam
|
||||
badge={},--badge thrown
|
||||
|
||||
appear=function(t,a)
|
||||
setFont(t.font)
|
||||
gc.setColor(1,1,1,a)
|
||||
@@ -172,17 +178,17 @@ FX={
|
||||
end,
|
||||
}
|
||||
|
||||
function drawDial(x,y,speed)
|
||||
local function drawDial(x,y,speed)
|
||||
gc.setColor(1,1,1)
|
||||
mStr(int(speed),x,y-18)
|
||||
gc.draw(dialCircle,x,y,nil,nil,nil,32,32)
|
||||
gc.setColor(1,1,1,.6)
|
||||
gc.draw(dialNeedle,x,y,2.094+(speed<=175 and .02094*speed or 4.712-52.36/(speed-125)),nil,nil,5,4)
|
||||
end
|
||||
function drawPixel(y,x,id)
|
||||
local function drawPixel(y,x,id)
|
||||
gc.draw(blockSkin[id],30*x-30,600-30*y)
|
||||
end
|
||||
function drawAtkPointer(x,y)
|
||||
local function drawAtkPointer(x,y)
|
||||
local t=sin(Timer()*20)
|
||||
gc.setColor(.2,.7+t*.2,1,.6+t*.4)
|
||||
gc.circle("fill",x,y,25,6)
|
||||
@@ -191,19 +197,18 @@ function drawAtkPointer(x,y)
|
||||
gc.circle("line",x,y,30*(1+a),6)
|
||||
end
|
||||
|
||||
function VirtualkeyPreview()
|
||||
local function VirtualkeyPreview()
|
||||
for i=1,#virtualkey do
|
||||
local c=sel==i and .8 or 1
|
||||
gc.setColor(c,c,c,setting.virtualkeyAlpha*.2)
|
||||
gc.setColor(c,c,c,setting.virtualkeyAlpha*.1)
|
||||
local b=virtualkey[i]
|
||||
gc.setLineWidth(b[4]*.07)
|
||||
gc.circle("line",b[1],b[2],b[4]-5)
|
||||
if setting.virtualkeyIcon then gc.draw(virtualkeyIcon[i],b[1],b[2],nil,b[4]*.025,nil,18,18)end
|
||||
end
|
||||
end
|
||||
function drawVirtualkey()
|
||||
local a=setting.virtualkeyAlpha*.2
|
||||
local P=players[1]
|
||||
local function drawVirtualkey()
|
||||
local a=setting.virtualkeyAlpha*.1
|
||||
for i=1,#virtualkey do
|
||||
if i~=9 or modeEnv.Fkey then
|
||||
local p,b=virtualkeyDown[i],virtualkey[i]
|
||||
@@ -221,43 +226,48 @@ function drawVirtualkey()
|
||||
end
|
||||
end
|
||||
|
||||
Pnt={BG={}}
|
||||
function Pnt.BG.none()
|
||||
local scs={{1,2},nil,nil,nil,nil,{1.5,1.5},{0.5,2.5}}for i=2,5 do scs[i]=scs[1]end
|
||||
local matrixT={}for i=0,15 do matrixT[i]={}for j=0,8 do matrixT[i][j]=mt.noise(i,j)+2 end end
|
||||
local Pnt={}
|
||||
Pnt.BG={
|
||||
none=function()
|
||||
gc.clear(.15,.15,.15)
|
||||
end
|
||||
function Pnt.BG.grey()
|
||||
end,
|
||||
grey=function()
|
||||
gc.clear(.3,.3,.3)
|
||||
end
|
||||
function Pnt.BG.glow()
|
||||
end,
|
||||
lightGrey=function()
|
||||
gc.clear(.5,.5,.5)
|
||||
end,
|
||||
glow=function()
|
||||
local t=((sin(Timer()*.5)+sin(Timer()*.7)+sin(Timer()*.9+1)+sin(Timer()*1.5)+sin(Timer()*2+3))+5)*.05
|
||||
gc.clear(t,t,t)
|
||||
end
|
||||
function Pnt.BG.game1()
|
||||
end,
|
||||
game1=function()
|
||||
gc.setColor(1,1,1)
|
||||
gc.draw(background1,640,360,Timer()*.15,12,nil,64,64)
|
||||
end
|
||||
function Pnt.BG.game2()
|
||||
end,
|
||||
game2=function()
|
||||
gc.setColor(1,.5,.5)
|
||||
gc.draw(background1,640,360,Timer()*.2,12,nil,64,64)
|
||||
end
|
||||
function Pnt.BG.game3()
|
||||
end,
|
||||
game3=function()
|
||||
gc.setColor(.6,.6,1)
|
||||
gc.draw(background1,640,360,Timer()*.25,12,nil,64,64)
|
||||
end
|
||||
function Pnt.BG.game4()
|
||||
end,
|
||||
game4=function()
|
||||
gc.setColor(.1,.5,.5)
|
||||
local x=Timer()%4*320
|
||||
gc.draw(background2,x,0,nil,10)
|
||||
gc.draw(background2,x-1280,0,nil,10)
|
||||
end
|
||||
function Pnt.BG.game5()
|
||||
end,
|
||||
game5=function()
|
||||
local t=2.5-Timer()%20%6%2.5
|
||||
if t<.5 then gc.clear(t,t,t)
|
||||
else gc.clear(0,0,0)
|
||||
end
|
||||
end
|
||||
local scs={{1,2},nil,nil,nil,nil,{1.5,1.5},{0.5,2.5}}for i=2,5 do scs[i]=scs[1]end
|
||||
function Pnt.BG.game6()
|
||||
end,
|
||||
game6=function()
|
||||
local t=1.2-Timer()%10%3%1.2
|
||||
if t<.5 then gc.clear(t,t,t)
|
||||
else gc.clear(0,0,0)
|
||||
@@ -265,22 +275,21 @@ function Pnt.BG.game6()
|
||||
gc.setColor(.3,.3,.3)
|
||||
local r=7-int(Timer()*.5)%7
|
||||
gc.draw(mouseBlock[r],640,360,Timer()%3.1416*6,400,400,scs[r][2]-.5,#blocks[r][0]-scs[r][1]+.5)
|
||||
end
|
||||
function Pnt.BG.rgb()
|
||||
end,
|
||||
rgb=function()
|
||||
gc.clear(
|
||||
sin(Timer()*1.2)*.15+.5,
|
||||
sin(Timer()*1.5)*.15+.5,
|
||||
sin(Timer()*1.9)*.15+.5
|
||||
)
|
||||
end
|
||||
function Pnt.BG.strap()
|
||||
end,
|
||||
strap=function()
|
||||
gc.setColor(1,1,1)
|
||||
local x=Timer()%32*40
|
||||
gc.draw(background2,x,0,nil,10)
|
||||
gc.draw(background2,x-1280,0,nil,10)
|
||||
end
|
||||
local matrixT={}for i=0,15 do matrixT[i]={}for j=0,8 do matrixT[i][j]=mt.noise(i,j)+2 end end
|
||||
function Pnt.BG.matrix()
|
||||
end,
|
||||
matrix=function()
|
||||
gc.clear(.15,.15,.15)
|
||||
for i=0,15 do
|
||||
for j=0,8 do
|
||||
@@ -289,7 +298,8 @@ function Pnt.BG.matrix()
|
||||
gc.rectangle("fill",80*i,80*j,80,80)
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
function Pnt.load()
|
||||
gc.setLineWidth(4)
|
||||
@@ -322,12 +332,15 @@ function Pnt.main()
|
||||
gc.setColor(1,1,1)
|
||||
gc.draw(titleImage,280,30,nil,1.3)
|
||||
setFont(30)
|
||||
gc.print("Alpha V0.7.21",290,125)
|
||||
gc.print(gameVersion,290,125)
|
||||
gc.print(system,845,95)
|
||||
setFont(35)
|
||||
mStr(modeLevel[modeID[modeSel]][levelSel],160,180)
|
||||
mStr(text.modeName[modeSel],160,380)
|
||||
end
|
||||
function Pnt.mode()
|
||||
gc.setColor(1,1,1)
|
||||
gc.draw(titleImage,830,30)
|
||||
gc.draw(titleImage,810,30)
|
||||
setFont(40)
|
||||
gc.setColor(modeLevelColor[modeLevel[modeID[modeSel]][levelSel]]or color.white)
|
||||
mStr(modeLevel[modeID[modeSel]][levelSel],270,215)
|
||||
@@ -364,7 +377,7 @@ function Pnt.music()
|
||||
end
|
||||
function Pnt.custom()
|
||||
gc.setColor(1,1,1,.3+sin(Timer()*8)*.2)
|
||||
gc.rectangle("fill",25,95+40*optSel,465,40)
|
||||
gc.rectangle("fill",25,95+40*sel,465,40)
|
||||
gc.setColor(.8,.8,.8)gc.draw(drawableText.custom,20,20)
|
||||
gc.setColor(1,1,1)gc.draw(drawableText.custom,22,23)
|
||||
setFont(40)
|
||||
@@ -436,11 +449,9 @@ function Pnt.play()
|
||||
if j==P.clearing[h]and P.falling>-1 then
|
||||
h=h-1
|
||||
else
|
||||
for i=1,10 do
|
||||
if F[j][i]>0 then
|
||||
gc.draw(blockSkinmini[F[j][i]],6*i-6,120-6*j)
|
||||
end
|
||||
end
|
||||
for i=1,10 do if F[j][i]>0 then
|
||||
gc.draw(blockSkinmini[F[j][i]],6*i-6,120-6*j)
|
||||
end end
|
||||
end
|
||||
end--Field
|
||||
if P.alive then
|
||||
@@ -480,21 +491,22 @@ function Pnt.play()
|
||||
gc.setColor(1,1,1,.2)
|
||||
for x=1,9 do gc.line(30*x,-10,30*x,600)end
|
||||
for y=0,19 do
|
||||
y=30*y+P.fieldBeneath
|
||||
y=30*(y-int(P.fieldBeneath/30))+P.fieldBeneath
|
||||
gc.line(0,y,300,y)
|
||||
end
|
||||
if P.fieldBeneath>20 then
|
||||
gc.line(0,P.fieldBeneath-30,300,P.fieldBeneath-30)
|
||||
end
|
||||
end--Grid lines
|
||||
gc.translate(0,P.fieldBeneath)
|
||||
gc.setScissor(scr.x+P.absFieldX*scr.k,scr.y+P.absFieldY*scr.k,300*P.size*scr.k,610*P.size*scr.k)
|
||||
-- local dy=setting.smo and(P.y_img~=P.curY and min(P.dropDelay,8e98)/P.gameEnv.drop or min(P.lockDelay,8e98)/P.gameEnv.lock)^4*30 or 0
|
||||
local dy,stepY=0,setting.smo and (1-(P.falling/P.gameEnv.fall)^3)*30 or 0
|
||||
local h=#P.clearing
|
||||
for j=int(P.fieldBeneath/30+1),#P.field do
|
||||
if j==P.clearing[h]and P.falling>-1 then
|
||||
h=h-1
|
||||
dy=dy+stepY
|
||||
gc.translate(0,stepY)
|
||||
gc.setColor(1,1,1,P.falling/P.gameEnv.fall)
|
||||
gc.rectangle("fill",0,600-30*j,320,30)
|
||||
gc.rectangle("fill",0,600-30*j,320,30-stepY)
|
||||
else
|
||||
for i=1,10 do
|
||||
if P.field[j][i]>0 then
|
||||
@@ -504,6 +516,7 @@ function Pnt.play()
|
||||
end
|
||||
end
|
||||
end--Field
|
||||
gc.translate(0,-dy)
|
||||
for i=1,#P.shade do
|
||||
local S=P.shade[i]
|
||||
gc.setColor(1,1,1,S[1]*.12)
|
||||
@@ -522,6 +535,8 @@ function Pnt.play()
|
||||
end
|
||||
end end
|
||||
end--Ghost
|
||||
local dy=setting.smo and(P.y_img~=P.curY and min(P.dropDelay,8e98)/P.gameEnv.drop or min(P.lockDelay,8e98)/P.gameEnv.lock)^4*30 or 0
|
||||
gc.translate(0,-dy)
|
||||
if P.gameEnv.block then
|
||||
gc.setColor(1,1,1,P.lockDelay/P.gameEnv.lock)
|
||||
for i=1,P.r do for j=1,P.c do
|
||||
@@ -540,95 +555,102 @@ function Pnt.play()
|
||||
gc.setColor(1,1,1)
|
||||
local x=30*(P.curX+P.sc[2]-1)-30+15
|
||||
gc.draw(spinCenter,x,600-30*(P.curY+P.sc[1]-1)+15,nil,nil,nil,4,4)
|
||||
gc.translate(0,dy)
|
||||
gc.setColor(1,1,1,.5)
|
||||
gc.draw(spinCenter,x,600-30*(P.y_img+P.sc[1]-1)+15,nil,nil,nil,4,4)
|
||||
goto E
|
||||
end--Rotate center
|
||||
gc.translate(0,dy)
|
||||
end
|
||||
--Draw game field
|
||||
gc.setScissor()--In-playField mask
|
||||
::E::
|
||||
gc.setScissor()--In-playField things
|
||||
gc.setColor(1,1,1)
|
||||
gc.draw(PTC.dust[p])
|
||||
gc.translate(0,-P.fieldBeneath)
|
||||
gc.setLineWidth(3)
|
||||
gc.rectangle("line",-1,-11,302,612)--Draw boarder
|
||||
|
||||
gc.setLineWidth(2)
|
||||
gc.rectangle("line",301,0,16,601.5)--Draw atkBuffer boarder
|
||||
local h=0
|
||||
for i=1,#P.atkBuffer do
|
||||
local a=P.atkBuffer[i]
|
||||
local bar=a.amount*30
|
||||
if h+bar>600 then bar=600-h end
|
||||
if not a.sent then
|
||||
if a.time<20 then
|
||||
bar=bar*(20*a.time)^.5*.05
|
||||
--Appear
|
||||
end
|
||||
if a.countdown>0 then
|
||||
gc.setColor(attackColor[a.lv][1])
|
||||
gc.rectangle("fill",304,599-h,11,-bar+3)
|
||||
gc.setColor(attackColor[a.lv][2])
|
||||
gc.rectangle("fill",304,599-h+(-bar+3),11,-(-bar+3)*(1-a.countdown/a.cd0))
|
||||
--Timing
|
||||
gc.setBlendMode("replace","alphamultiply")--SPEED UPUP(?)
|
||||
gc.setLineWidth(2)
|
||||
gc.rectangle("line",-1,-11,302,612)--Draw boarder
|
||||
gc.rectangle("line",301,0,15,601)--Draw atkBuffer boarder
|
||||
local h=0
|
||||
for i=1,#P.atkBuffer do
|
||||
local A=P.atkBuffer[i]
|
||||
local bar=A.amount*30
|
||||
if h+bar>600 then bar=600-h end
|
||||
if not A.sent then
|
||||
if A.time<20 then
|
||||
bar=bar*(20*A.time)^.5*.05
|
||||
--Appear
|
||||
end
|
||||
if A.countdown>0 then
|
||||
gc.setColor(attackColor[A.lv][1])
|
||||
gc.rectangle("fill",303,599-h,11,-bar+3)
|
||||
gc.setColor(attackColor[A.lv][2])
|
||||
gc.rectangle("fill",303,599-h+(-bar+3),11,-(-bar+3)*(1-A.countdown/A.cd0))
|
||||
--Timing
|
||||
else
|
||||
local t=sin((Timer()-i)*30)*.5+.5
|
||||
local c1,c2=attackColor[A.lv][1],attackColor[A.lv][2]
|
||||
gc.setColor(c1[1]*t+c2[1]*(1-t),c1[2]*t+c2[2]*(1-t),c1[3]*t+c2[3]*(1-t))
|
||||
gc.rectangle("fill",303,599-h,11,-bar+3)
|
||||
--Warning
|
||||
end
|
||||
else
|
||||
local t=sin((Timer()-i)*30)*.5+.5
|
||||
local c1,c2=attackColor[a.lv][1],attackColor[a.lv][2]
|
||||
gc.setColor(c1[1]*t+c2[1]*(1-t),c1[2]*t+c2[2]*(1-t),c1[3]*t+c2[3]*(1-t))
|
||||
gc.rectangle("fill",304,599-h,11,-bar+3)
|
||||
--Warning
|
||||
gc.setColor(attackColor[A.lv][1])
|
||||
bar=bar*(20-A.time)*.05
|
||||
gc.rectangle("fill",303,599-h,11,-bar+2)
|
||||
--Disappear
|
||||
end
|
||||
else
|
||||
gc.setColor(attackColor[a.lv][1])
|
||||
bar=bar*(20-a.time)*.05
|
||||
gc.rectangle("fill",304,599-h,11,-bar+2)
|
||||
--Disappear
|
||||
h=h+bar
|
||||
end--Buffer line
|
||||
local a,b=P.b2b,P.b2b1 if a>b then a,b=b,a end
|
||||
gc.setColor(.8,1,.2)
|
||||
gc.rectangle("fill",-14,599,11,-b*.5)
|
||||
gc.setColor(P.b2b<40 and color.white or P.b2b<=1e3 and color.lightRed or color.lightBlue)
|
||||
gc.rectangle("fill",-14,599,11,-a*.5)
|
||||
if Timer()%1<.5 then
|
||||
gc.rectangle("fill",-15,b<40 and 578.5 or 98.5,13,3)
|
||||
end
|
||||
h=h+bar
|
||||
end--Buffer line
|
||||
local a,b=P.b2b,P.b2b1 if a>b then a,b=b,a end
|
||||
gc.setColor(.8,1,.2)
|
||||
gc.rectangle("fill",-15,599.5,11,-b*.5)
|
||||
gc.setColor(P.b2b<40 and color.white or P.b2b<=1e3 and color.lightRed or color.lightBlue)
|
||||
gc.rectangle("fill",-15,599.5,11,-a*.5)
|
||||
gc.setColor(1,1,1,.5+sin(Timer()*30)*.5)
|
||||
gc.rectangle("fill",-16,b<40 and 578.5 or 98.5,13,3)
|
||||
gc.setColor(1,1,1)
|
||||
gc.rectangle("line",-17,-3,16,604.5)--Draw b2b bar boarder
|
||||
--B2B indictator
|
||||
gc.translate(-P.fieldOffX,-P.fieldOffY)
|
||||
gc.setColor(1,1,1)
|
||||
gc.rectangle("line",-16,-3,15,604)--Draw b2b bar boarder
|
||||
--B2B indictator
|
||||
gc.translate(-P.fieldOffX,-P.fieldOffY)
|
||||
gc.setBlendMode("alpha")
|
||||
|
||||
if P.gameEnv.hold then
|
||||
gc.setColor(1,1,1)
|
||||
mDraw(drawableText.hold,-82,-10)
|
||||
if P.holded then gc.setColor(.6,.6,.6)end
|
||||
for i=1,#P.hold.bk do
|
||||
for j=1,#P.hold.bk[1] do
|
||||
if P.hold.bk[i][j]then
|
||||
drawPixel(i+17.5-#P.hold.bk*.5,j-2.7-#P.hold.bk[1]*.5,P.holded and 9 or P.hold.color)
|
||||
local B=P.hold.bk
|
||||
for j=1,#B[1]do
|
||||
if B[i][j]then
|
||||
drawPixel(i+17.5-#B*.5,j-2.7-#B[1]*.5,P.hold.color)
|
||||
end
|
||||
end
|
||||
end
|
||||
end--Hold
|
||||
gc.setColor(1,1,1)
|
||||
mDraw(drawableText.next,381,-10)
|
||||
local N=1
|
||||
::L::
|
||||
if N<=P.gameEnv.next and P.next[N]then
|
||||
local b,c=P.next[N].bk,P.next[N].color
|
||||
gc.setColor(1,1,1)
|
||||
for i=1,#b do for j=1,#b[1] do
|
||||
if b[i][j]then
|
||||
drawPixel(i+20-2.4*N-#b*.5,j+12.7-#b[1]*.5,c)
|
||||
end
|
||||
end end
|
||||
N=N+1
|
||||
if N<=P.gameEnv.next and P.next[N]then goto L end
|
||||
goto L
|
||||
end
|
||||
--Next
|
||||
gc.setColor(.8,.8,.8)
|
||||
gc.draw(drawableText.modeName,-135,-65)
|
||||
gc.draw(drawableText.levelName,437-drawableText.levelName:getWidth(),-65)
|
||||
gc.setColor(1,1,1)
|
||||
if frame<180 then
|
||||
local count=179-frame
|
||||
gc.push("transform")
|
||||
gc.translate(155,220)
|
||||
gc.setColor(1,1,1)
|
||||
setFont(100)
|
||||
if count%60>45 then gc.scale(1+(count%60-45)^2*.01,1)end
|
||||
mStr(int(count/60+1),0,0)
|
||||
@@ -637,19 +659,18 @@ function Pnt.play()
|
||||
for i=1,#P.bonus do
|
||||
P.bonus[i]:draw(min((30-abs(P.bonus[i].t-30))*.05,1)*(not P.bonus[i].inf and #P.field>(9-P.bonus[i].dy*.0333)and .7 or 1))
|
||||
end--Effects
|
||||
|
||||
gc.setColor(1,1,1)
|
||||
setFont(35)
|
||||
mStr(format("%.2f",P.stat.time),-82,520)--Draw time
|
||||
if mesDisp[curMode.id]then mesDisp[curMode.id]()end--Draw other message
|
||||
|
||||
setFont(30)
|
||||
gc.setColor(1,1,1)
|
||||
mStr(format("%.2f",P.stat.time),-82,518)--Time
|
||||
mStr(P.score1,-82,560)--Score
|
||||
gc.draw(drawableText.bpm,390,490)
|
||||
gc.draw(drawableText.kpm,350,583)
|
||||
setFont(30)
|
||||
drawDial(360,520,P.dropSpeed)
|
||||
drawDial(405,575,P.keySpeed)
|
||||
--Speed dials
|
||||
gc.setColor(1,1,1)
|
||||
if mesDisp[curMode.id]then mesDisp[curMode.id]()end--Other messages
|
||||
if modeEnv.royaleMode then
|
||||
if P.atkMode then
|
||||
gc.setColor(1,.8,0,P.swappingAtkMode*.02)
|
||||
@@ -661,17 +682,42 @@ function Pnt.play()
|
||||
gc.pop()
|
||||
end
|
||||
end--Draw players
|
||||
gc.setLineWidth(5)
|
||||
for i=1,#FX.attack do
|
||||
local A=FX.attack[i]
|
||||
gc.push("transform")
|
||||
local a=A.a
|
||||
if A.t<20 then
|
||||
gc.translate(A.x1,A.y1)
|
||||
a=a*A.t*.05
|
||||
elseif A.t<80 then
|
||||
local t=((A.t-20)*.016667)t=(3-2*t)*t*t
|
||||
gc.translate(A.x1*(1-t)+A.x2*t,A.y1*(1-t)+A.y2*t)
|
||||
else
|
||||
gc.translate(A.x2,A.y2)
|
||||
a=a*(5-A.t*.05)
|
||||
end
|
||||
gc.rotate(A.t*.1)
|
||||
gc.setColor(A.r,A.g,A.b,a*.5)
|
||||
gc.circle("line",0,0,A.rad,A.corner)
|
||||
gc.setColor(A.r,A.g,A.b,a)
|
||||
gc.circle("fill",0,0,A.rad,A.corner)
|
||||
gc.pop()
|
||||
end
|
||||
gc.setColor(1,1,1)
|
||||
gc.draw(PTC.attack[1])
|
||||
gc.draw(PTC.attack[2])
|
||||
gc.draw(PTC.attack[3])
|
||||
if setting.virtualkeySwitch then drawVirtualkey()end
|
||||
if modeEnv.royaleMode then
|
||||
for i=1,#FX.badge do
|
||||
local b=FX.badge[i]
|
||||
local t=b.t<10 and 0 or b.t<50 and .5+sin(1.5*(b.t/20-1.5))*.5 or 1
|
||||
gc.setColor(1,1,1,b.t<10 and b.t*.1 or b.t<50 and 1 or(60-b.t)*.1)
|
||||
gc.draw(badgeIcon,b[1]+(b[3]-b[1])*t,b[2]+(b[4]-b[2])*t,nil,nil,nil,14,14)
|
||||
if b.t<10 then
|
||||
gc.draw(badgeIcon,b[1]-14,b[2]-14)
|
||||
elseif b.t<50 then
|
||||
local t=((b.t-10)*.025)t=(3-2*t)*t*t
|
||||
gc.draw(badgeIcon,b[1]*(1-t)+b[3]*t-14,b[2]*(1-t)+b[4]*t-14)
|
||||
else
|
||||
gc.draw(badgeIcon,b[3]-14,b[4]-14)
|
||||
end
|
||||
end
|
||||
P=players[1]
|
||||
gc.setLineWidth(5)
|
||||
@@ -690,6 +736,8 @@ function Pnt.play()
|
||||
end
|
||||
end
|
||||
if restartCount>0 then
|
||||
gc.setColor(1,.7,.7,.5+restartCount*.02)
|
||||
gc.arc("fill",640,360,735,-1.5708,restartCount*0.3696-1.5708)
|
||||
gc.setColor(0,0,0,restartCount/17)
|
||||
gc.rectangle("fill",0,0,1280,720)
|
||||
end
|
||||
@@ -803,4 +851,14 @@ function Pnt.stat()
|
||||
gc.print(statOpt(i),720,30*i-5)
|
||||
end
|
||||
gc.draw(titleImage,260,600,.2+.07*sin(Timer()*3),nil,nil,212,35)
|
||||
end
|
||||
end
|
||||
function Pnt.history()
|
||||
gc.setColor(.2,.2,.2,.7)
|
||||
gc.rectangle("fill",150,35,980,530)
|
||||
gc.setColor(1,1,1)
|
||||
gc.setLineWidth(4)
|
||||
gc.rectangle("line",150,35,980,530)
|
||||
setFont(25)
|
||||
gc.print(updateLog[sel],160,40)
|
||||
end
|
||||
return Pnt
|
||||
Reference in New Issue
Block a user