DOGC移入GC拓展模块,GC.DO添加dRPol(圆角正多边形)命令
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
local setColor=love.graphics.setColor
|
local gc=love.graphics
|
||||||
local printf=love.graphics.printf
|
local setColor=gc.setColor
|
||||||
local draw=love.graphics.draw
|
local printf=gc.printf
|
||||||
|
local draw=gc.draw
|
||||||
local GC={}
|
local GC={}
|
||||||
function GC.str(obj,x,y)printf(obj,x-626,y,1252,'center')end
|
function GC.str(obj,x,y)printf(obj,x-626,y,1252,'center')end
|
||||||
function GC.simpX(obj,x,y)draw(obj,x-obj:getWidth()*.5,y)end
|
function GC.simpX(obj,x,y)draw(obj,x-obj:getWidth()*.5,y)end
|
||||||
@@ -31,4 +32,105 @@ function GC.shadedPrint(str,x,y,mode,d,clr1,clr2)
|
|||||||
setColor(clr2 or COLOR.Z)
|
setColor(clr2 or COLOR.Z)
|
||||||
printf(str,x,y,w,mode)
|
printf(str,x,y,w,mode)
|
||||||
end
|
end
|
||||||
|
do--function GC.DO(L)
|
||||||
|
local cmds={
|
||||||
|
origin="origin",
|
||||||
|
move="translate",
|
||||||
|
scale="scale",
|
||||||
|
rotate="rotate",
|
||||||
|
shear="shear",
|
||||||
|
clear="clear",
|
||||||
|
|
||||||
|
setCL="setColor",
|
||||||
|
setCM="setColorMask",
|
||||||
|
setLW="setLineWidth",
|
||||||
|
setLS="setLineStyle",
|
||||||
|
setLJ="setLineJoin",
|
||||||
|
|
||||||
|
print="print",
|
||||||
|
setFT=setFont,
|
||||||
|
mText=GC.str,
|
||||||
|
mDraw=GC.draw,
|
||||||
|
mOutDraw=GC.outDraw,
|
||||||
|
|
||||||
|
draw="draw",
|
||||||
|
line="line",
|
||||||
|
fRect=function(...)gc.rectangle('fill',...)end,
|
||||||
|
dRect=function(...)gc.rectangle('line',...)end,
|
||||||
|
fCirc=function(...)gc.circle('fill',...)end,
|
||||||
|
dCirc=function(...)gc.circle('line',...)end,
|
||||||
|
fElps=function(...)gc.ellipse('fill',...)end,
|
||||||
|
dElps=function(...)gc.ellipse('line',...)end,
|
||||||
|
fPoly=function(...)gc.polygon('fill',...)end,
|
||||||
|
|
||||||
|
dPoly=function(...)gc.polygon('line',...)end,
|
||||||
|
dRPol=function(x,y,R,segments,r,phase)
|
||||||
|
local X,Y={},{}
|
||||||
|
local ang=phase or 0
|
||||||
|
local angStep=6.283185307179586/segments
|
||||||
|
for i=1,segments do
|
||||||
|
X[i]=x+R*math.cos(ang)
|
||||||
|
Y[i]=y+R*math.sin(ang)
|
||||||
|
ang=ang+angStep
|
||||||
|
end
|
||||||
|
X[segments+1]=x+R*math.cos(ang)
|
||||||
|
Y[segments+1]=y+R*math.sin(ang)
|
||||||
|
|
||||||
|
local halfAng=6.283185307179586/segments/2
|
||||||
|
local erasedLen=r*math.tan(halfAng)
|
||||||
|
for i=1,segments do
|
||||||
|
--Line
|
||||||
|
local x1,y1,x2,y2=X[i],Y[i],X[i+1],Y[i+1]
|
||||||
|
local dir=math.atan2(y2-y1,x2-x1)
|
||||||
|
gc.line(x1+erasedLen*math.cos(dir),y1+erasedLen*math.sin(dir),x2-erasedLen*math.cos(dir),y2-erasedLen*math.sin(dir))
|
||||||
|
|
||||||
|
--Arc
|
||||||
|
ang=ang+angStep
|
||||||
|
local R2=R-r/math.cos(halfAng)
|
||||||
|
local arcCX,arcCY=x+R2*math.cos(ang),y+R2*math.sin(ang)
|
||||||
|
gc.arc('line','open',arcCX,arcCY,r,ang-halfAng,ang+halfAng)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
|
||||||
|
dPie=function(...)gc.arc('line',...)end,
|
||||||
|
dArc=function(...)gc.arc('line','open',...)end,
|
||||||
|
dBow=function(...)gc.arc('line','closed',...)end,
|
||||||
|
fPie=function(...)gc.arc('fill',...)end,
|
||||||
|
fArc=function(...)gc.arc('fill','open',...)end,
|
||||||
|
fBow=function(...)gc.arc('fill','closed',...)end,
|
||||||
|
}
|
||||||
|
local sizeLimit=gc.getSystemLimits().texturesize
|
||||||
|
function GC.DO(L)
|
||||||
|
gc.push()
|
||||||
|
::REPEAT_tryAgain::
|
||||||
|
local success,canvas=pcall(gc.newCanvas,math.min(L[1],sizeLimit),math.min(L[2],sizeLimit))
|
||||||
|
if not success then
|
||||||
|
sizeLimit=math.floor(sizeLimit*.8)
|
||||||
|
goto REPEAT_tryAgain
|
||||||
|
end
|
||||||
|
gc.setCanvas(canvas)
|
||||||
|
gc.origin()
|
||||||
|
gc.setColor(1,1,1)
|
||||||
|
gc.setLineWidth(1)
|
||||||
|
for i=3,#L do
|
||||||
|
local cmd=L[i][1]
|
||||||
|
if type(cmd)=='boolean'and cmd then
|
||||||
|
table.remove(L[i],1)
|
||||||
|
cmd=L[i][1]
|
||||||
|
end
|
||||||
|
if type(cmd)=='string'then
|
||||||
|
local func=cmds[cmd]
|
||||||
|
if type(func)=='string'then func=gc[func]end
|
||||||
|
if func then
|
||||||
|
func(unpack(L[i],2))
|
||||||
|
else
|
||||||
|
error("No gc command: "..cmd)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
gc.setCanvas()
|
||||||
|
gc.pop()
|
||||||
|
return canvas
|
||||||
|
end
|
||||||
|
end
|
||||||
return GC
|
return GC
|
||||||
@@ -25,7 +25,6 @@ VIB= require'Zframework.vibrate'
|
|||||||
SFX= require'Zframework.sfx'
|
SFX= require'Zframework.sfx'
|
||||||
|
|
||||||
LIGHT= require'Zframework.light'
|
LIGHT= require'Zframework.light'
|
||||||
DOGC= require'Zframework.doGC'
|
|
||||||
BG= require'Zframework.background'
|
BG= require'Zframework.background'
|
||||||
WIDGET= require'Zframework.widget'
|
WIDGET= require'Zframework.widget'
|
||||||
TEXT= require'Zframework.text'
|
TEXT= require'Zframework.text'
|
||||||
@@ -66,7 +65,7 @@ joysticks={}
|
|||||||
|
|
||||||
local devMode
|
local devMode
|
||||||
|
|
||||||
local batteryImg=DOGC{31,20,
|
local batteryImg=GC.DO{31,20,
|
||||||
{'fRect',1,0,26,2},
|
{'fRect',1,0,26,2},
|
||||||
{'fRect',1,18,26,2},
|
{'fRect',1,18,26,2},
|
||||||
{'fRect',0,1,2,18},
|
{'fRect',0,1,2,18},
|
||||||
@@ -496,28 +495,28 @@ local wsBottomImage do
|
|||||||
ins(L,{'setCL',1,1,1,i*.005})
|
ins(L,{'setCL',1,1,1,i*.005})
|
||||||
ins(L,{'fRect',i,0,1,18})
|
ins(L,{'fRect',i,0,1,18})
|
||||||
end
|
end
|
||||||
wsBottomImage=DOGC(L)
|
wsBottomImage=GC.DO(L)
|
||||||
end
|
end
|
||||||
local ws_deadImg=DOGC{20,20,
|
local ws_deadImg=GC.DO{20,20,
|
||||||
{'setFT',20},
|
{'setFT',20},
|
||||||
{'setCL',1,.3,.3},
|
{'setCL',1,.3,.3},
|
||||||
{'print',"X",3,-4},
|
{'print',"X",3,-4},
|
||||||
}
|
}
|
||||||
local ws_connectingImg=DOGC{20,20,
|
local ws_connectingImg=GC.DO{20,20,
|
||||||
{'setLW',3},
|
{'setLW',3},
|
||||||
{'dArc',11.5,10,6.26,1,5.28},
|
{'dArc',11.5,10,6.26,1,5.28},
|
||||||
}
|
}
|
||||||
local ws_runningImg=DOGC{20,20,
|
local ws_runningImg=GC.DO{20,20,
|
||||||
{'setFT',20},
|
{'setFT',20},
|
||||||
{'setCL',.5,1,0},
|
{'setCL',.5,1,0},
|
||||||
{'print',"R",3,-4},
|
{'print',"R",3,-4},
|
||||||
}
|
}
|
||||||
local cursorImg=DOGC{16,16,
|
local cursorImg=GC.DO{16,16,
|
||||||
{'fCirc',8,8,4},
|
{'fCirc',8,8,4},
|
||||||
{'setCL',1,1,1,.7},
|
{'setCL',1,1,1,.7},
|
||||||
{'fCirc',8,8,6},
|
{'fCirc',8,8,6},
|
||||||
}
|
}
|
||||||
local cursor_holdImg=DOGC{16,16,
|
local cursor_holdImg=GC.DO{16,16,
|
||||||
{'setLW',2},
|
{'setLW',2},
|
||||||
{'dCirc',8,8,7},
|
{'dCirc',8,8,7},
|
||||||
{'fCirc',8,8,3},
|
{'fCirc',8,8,3},
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ local ins,rem=table.insert,table.remove
|
|||||||
|
|
||||||
local mesList={}
|
local mesList={}
|
||||||
local mesIcon={
|
local mesIcon={
|
||||||
check=DOGC{40,40,
|
check=GC.DO{40,40,
|
||||||
{'setLW',10},
|
{'setLW',10},
|
||||||
{'setCL',0,0,0},
|
{'setCL',0,0,0},
|
||||||
{'line',4,19,15,30,36,9},
|
{'line',4,19,15,30,36,9},
|
||||||
@@ -14,7 +14,7 @@ local mesIcon={
|
|||||||
{'setCL',.7,1,.6},
|
{'setCL',.7,1,.6},
|
||||||
{'line',5,20,15,30,35,10},
|
{'line',5,20,15,30,35,10},
|
||||||
},
|
},
|
||||||
info=DOGC{40,40,
|
info=GC.DO{40,40,
|
||||||
{'setCL',.2,.25,.85},
|
{'setCL',.2,.25,.85},
|
||||||
{'fCirc',20,20,15},
|
{'fCirc',20,20,15},
|
||||||
{'setCL',1,1,1},
|
{'setCL',1,1,1},
|
||||||
@@ -23,7 +23,7 @@ local mesIcon={
|
|||||||
{'fRect',18,11,4,4},
|
{'fRect',18,11,4,4},
|
||||||
{'fRect',18,17,4,12},
|
{'fRect',18,17,4,12},
|
||||||
},
|
},
|
||||||
broadcast=DOGC{40,40,
|
broadcast=GC.DO{40,40,
|
||||||
{'setCL',1,1,1},
|
{'setCL',1,1,1},
|
||||||
{'fRect',2,4,36,26,3},
|
{'fRect',2,4,36,26,3},
|
||||||
{'fPoly',2,27,2,37,14,25},
|
{'fPoly',2,27,2,37,14,25},
|
||||||
@@ -31,7 +31,7 @@ local mesIcon={
|
|||||||
{'fRect',6,11,4,4},{'fRect',14,11,19,4},
|
{'fRect',6,11,4,4},{'fRect',14,11,19,4},
|
||||||
{'fRect',6,19,4,4},{'fRect',14,19,19,4},
|
{'fRect',6,19,4,4},{'fRect',14,19,19,4},
|
||||||
},
|
},
|
||||||
warn=DOGC{40,40,
|
warn=GC.DO{40,40,
|
||||||
{'setCL',.95,.83,.4},
|
{'setCL',.95,.83,.4},
|
||||||
{'fPoly',20.5,1,0,38,40,38},
|
{'fPoly',20.5,1,0,38,40,38},
|
||||||
{'setCL',0,0,0},
|
{'setCL',0,0,0},
|
||||||
@@ -42,7 +42,7 @@ local mesIcon={
|
|||||||
{'fRect',18,11,5,16},
|
{'fRect',18,11,5,16},
|
||||||
{'fRect',18,30,5,5},
|
{'fRect',18,30,5,5},
|
||||||
},
|
},
|
||||||
error=DOGC{40,40,
|
error=GC.DO{40,40,
|
||||||
{'setCL',.95,.3,.3},
|
{'setCL',.95,.3,.3},
|
||||||
{'fCirc',20,20,19},
|
{'fCirc',20,20,19},
|
||||||
{'setCL',0,0,0},
|
{'setCL',0,0,0},
|
||||||
@@ -92,7 +92,7 @@ function MES.new(icon,str,time)
|
|||||||
startTime=.5,
|
startTime=.5,
|
||||||
endTime=.5,
|
endTime=.5,
|
||||||
time=time or 3,
|
time=time or 3,
|
||||||
canvas=DOGC(L),
|
canvas=GC.DO(L),
|
||||||
width=w,height=h,
|
width=w,height=h,
|
||||||
scale=h>400 and 1/math.min(h/400,2.6)or 1
|
scale=h>400 and 1/math.min(h/400,2.6)or 1
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -19,22 +19,22 @@ local getFont,setFont,mStr=getFont,setFont,mStr
|
|||||||
local mDraw,mDraw_X,mDraw_Y=GC.draw,GC.simpX,GC.simpY
|
local mDraw,mDraw_X,mDraw_Y=GC.draw,GC.simpX,GC.simpY
|
||||||
local xOy=SCR.xOy
|
local xOy=SCR.xOy
|
||||||
|
|
||||||
local downArrowIcon=DOGC{40,25,{'fPoly',0,0,20,25,40,0}}
|
local downArrowIcon=GC.DO{40,25,{'fPoly',0,0,20,25,40,0}}
|
||||||
local upArrowIcon=DOGC{40,25,{'fPoly',0,25,20,0,40,25}}
|
local upArrowIcon=GC.DO{40,25,{'fPoly',0,25,20,0,40,25}}
|
||||||
local clearIcon=DOGC{40,40,
|
local clearIcon=GC.DO{40,40,
|
||||||
{'fRect',16,5,8,3},
|
{'fRect',16,5,8,3},
|
||||||
{'fRect',8,8,24,3},
|
{'fRect',8,8,24,3},
|
||||||
{'fRect',11,14,18,21},
|
{'fRect',11,14,18,21},
|
||||||
}
|
}
|
||||||
local sureIcon=DOGC{40,40,
|
local sureIcon=GC.DO{40,40,
|
||||||
{'setFT',35},
|
{'setFT',35},
|
||||||
{'mText',"?",20,-6},
|
{'mText',"?",20,-6},
|
||||||
}
|
}
|
||||||
local smallerThen=DOGC{20,20,
|
local smallerThen=GC.DO{20,20,
|
||||||
{'setLW',5},
|
{'setLW',5},
|
||||||
{'line',18,2,1,10,18,18},
|
{'line',18,2,1,10,18,18},
|
||||||
}
|
}
|
||||||
local largerThen=DOGC{20,20,
|
local largerThen=GC.DO{20,20,
|
||||||
{'setLW',5},
|
{'setLW',5},
|
||||||
{'line',2,2,19,10,2,18},
|
{'line',2,2,19,10,2,18},
|
||||||
}
|
}
|
||||||
@@ -1452,7 +1452,7 @@ local widgetCover do
|
|||||||
ins(L,{'fRect',0,i,1,2})
|
ins(L,{'fRect',0,i,1,2})
|
||||||
ins(L,{'fRect',0,360-i,1,2})
|
ins(L,{'fRect',0,360-i,1,2})
|
||||||
end
|
end
|
||||||
widgetCover=DOGC(L)
|
widgetCover=GC.DO(L)
|
||||||
end
|
end
|
||||||
local scr_w,scr_h
|
local scr_w,scr_h
|
||||||
function WIDGET.resize(w,h)
|
function WIDGET.resize(w,h)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ local upCover do
|
|||||||
table.insert(L,{'setCL',.6,1,1,i*.01})
|
table.insert(L,{'setCL',.6,1,1,i*.01})
|
||||||
table.insert(L,{'fRect',0,63-i,1,1})
|
table.insert(L,{'fRect',0,63-i,1,1})
|
||||||
end
|
end
|
||||||
upCover=DOGC(L)
|
upCover=GC.DO(L)
|
||||||
end
|
end
|
||||||
local downCover do
|
local downCover do
|
||||||
local L={1,64}
|
local L={1,64}
|
||||||
@@ -16,7 +16,7 @@ local downCover do
|
|||||||
table.insert(L,{'setCL',1,.5,.8,i*.01})
|
table.insert(L,{'setCL',1,.5,.8,i*.01})
|
||||||
table.insert(L,{'fRect',0,i,1,1})
|
table.insert(L,{'fRect',0,i,1,1})
|
||||||
end
|
end
|
||||||
downCover=DOGC(L)
|
downCover=GC.DO(L)
|
||||||
end
|
end
|
||||||
|
|
||||||
local W,H
|
local W,H
|
||||||
|
|||||||
@@ -598,7 +598,7 @@ do--function drawSelfProfile()
|
|||||||
ins(img,{"dRect",2,2,21,21})
|
ins(img,{"dRect",2,2,21,21})
|
||||||
--TODO: draw with lv
|
--TODO: draw with lv
|
||||||
|
|
||||||
img=DOGC(img)
|
img=GC.DO(img)
|
||||||
rawset(self,lv,img)
|
rawset(self,lv,img)
|
||||||
return img
|
return img
|
||||||
end})
|
end})
|
||||||
|
|||||||
@@ -29,21 +29,21 @@ local hideBoardStencil={
|
|||||||
down=function()gc_rectangle('fill',0,300,300,300)end,
|
down=function()gc_rectangle('fill',0,300,300,300)end,
|
||||||
all=function()gc_rectangle('fill',0,0,300,600)end,
|
all=function()gc_rectangle('fill',0,0,300,600)end,
|
||||||
}
|
}
|
||||||
local dialFrame=DOGC{97,32,
|
local dialFrame=GC.DO{97,32,
|
||||||
{'setLW',2},
|
{'setLW',2},
|
||||||
{'dRect',1,1,30,30,3},
|
{'dRect',1,1,30,30,3},
|
||||||
{'dRect',36,1,60,30,3},
|
{'dRect',36,1,60,30,3},
|
||||||
}
|
}
|
||||||
local dialNeedle=DOGC{22,4,
|
local dialNeedle=GC.DO{22,4,
|
||||||
{'fRect',0,1,20,2},
|
{'fRect',0,1,20,2},
|
||||||
{'fCirc',20,2,2},
|
{'fCirc',20,2,2},
|
||||||
}
|
}
|
||||||
local multiple=DOGC{15,15,
|
local multiple=GC.DO{15,15,
|
||||||
{'setLW',3},
|
{'setLW',3},
|
||||||
{'line',2,2,12,12},
|
{'line',2,2,12,12},
|
||||||
{'line',2,12,12,2},
|
{'line',2,12,12,2},
|
||||||
}
|
}
|
||||||
local spinCenterImg=DOGC{9,9,
|
local spinCenterImg=GC.DO{9,9,
|
||||||
{'setCL',1,1,1,.2},
|
{'setCL',1,1,1,.2},
|
||||||
{'fRect',0,0,9,9},
|
{'fRect',0,0,9,9},
|
||||||
{'setCL',1,1,1,.6},
|
{'setCL',1,1,1,.6},
|
||||||
@@ -53,7 +53,7 @@ local spinCenterImg=DOGC{9,9,
|
|||||||
{'setCL',1,1,1},
|
{'setCL',1,1,1},
|
||||||
{'fRect',3,3,3,3},
|
{'fRect',3,3,3,3},
|
||||||
}
|
}
|
||||||
local playerBoarders=DOGC{334,620,
|
local playerBoarders=GC.DO{334,620,
|
||||||
{'setLW',2},
|
{'setLW',2},
|
||||||
{'setCL',.97,.97,.975},
|
{'setCL',.97,.97,.975},
|
||||||
{'dRect',16,1,302,618,7},
|
{'dRect',16,1,302,618,7},
|
||||||
@@ -65,15 +65,15 @@ local gridLines do
|
|||||||
local L={300,640,{'setLW',2}}
|
local L={300,640,{'setLW',2}}
|
||||||
for x=1,9 do table.insert(L,{'line',30*x,0,30*x,640})end
|
for x=1,9 do table.insert(L,{'line',30*x,0,30*x,640})end
|
||||||
for y=0,20 do table.insert(L,{'line',0,10+30*y,300,10+30*y})end
|
for y=0,20 do table.insert(L,{'line',0,10+30*y,300,10+30*y})end
|
||||||
gridLines=DOGC(L)
|
gridLines=GC.DO(L)
|
||||||
end
|
end
|
||||||
local LDmarks=gc.newSpriteBatch(DOGC{14,5,{'fRect',0,0,14,5,3}},15,'static')
|
local LDmarks=gc.newSpriteBatch(GC.DO{14,5,{'fRect',0,0,14,5,3}},15,'static')
|
||||||
for i=0,14 do LDmarks:add(3+20*i,615)end
|
for i=0,14 do LDmarks:add(3+20*i,615)end
|
||||||
local bpmImage=DOGC{31,12,
|
local bpmImage=GC.DO{31,12,
|
||||||
{'setFT',15},
|
{'setFT',15},
|
||||||
{'print',"BPM",0,-5}
|
{'print',"BPM",0,-5}
|
||||||
}
|
}
|
||||||
local kpmImage=DOGC{31,12,
|
local kpmImage=GC.DO{31,12,
|
||||||
{'setFT',15},
|
{'setFT',15},
|
||||||
{'print',"KPM",0,-5}
|
{'print',"KPM",0,-5}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,13 +26,13 @@ local loadingThread=coroutine.wrap(function()
|
|||||||
|
|
||||||
YIELD('loadModeIcon')
|
YIELD('loadModeIcon')
|
||||||
local modeIcons={}
|
local modeIcons={}
|
||||||
modeIcons.marathon=DOGC{32,32,
|
modeIcons.marathon=GC.DO{32,32,
|
||||||
{'move',3,1},
|
{'move',3,1},
|
||||||
{'fRect',10,4,-2,23},
|
{'fRect',10,4,-2,23},
|
||||||
{'fPoly',10,4,24,10,10,16.5},
|
{'fPoly',10,4,24,10,10,16.5},
|
||||||
{'fRect',4,24,10,3},
|
{'fRect',4,24,10,3},
|
||||||
}
|
}
|
||||||
modeIcons.infinite=DOGC{64,64,
|
modeIcons.infinite=GC.DO{64,64,
|
||||||
{'setLW',4},
|
{'setLW',4},
|
||||||
{'dCirc',32,32,28},
|
{'dCirc',32,32,28},
|
||||||
{'line',32,32,32,14},
|
{'line',32,32,32,14},
|
||||||
@@ -43,14 +43,14 @@ local loadingThread=coroutine.wrap(function()
|
|||||||
{'fRect',52,30,4,4},
|
{'fRect',52,30,4,4},
|
||||||
{'fRect',30,52,4,4},
|
{'fRect',30,52,4,4},
|
||||||
}
|
}
|
||||||
modeIcons.classic=DOGC{64,64,
|
modeIcons.classic=GC.DO{64,64,
|
||||||
{'setLW',6},
|
{'setLW',6},
|
||||||
{'dRect',10,24,12,12},
|
{'dRect',10,24,12,12},
|
||||||
{'dRect',26,24,12,12},
|
{'dRect',26,24,12,12},
|
||||||
{'dRect',42,24,12,12},
|
{'dRect',42,24,12,12},
|
||||||
{'dRect',26,40,12,12},
|
{'dRect',26,40,12,12},
|
||||||
}
|
}
|
||||||
modeIcons.tsd=DOGC{64,64,
|
modeIcons.tsd=GC.DO{64,64,
|
||||||
{'fRect',7,7,16,16},
|
{'fRect',7,7,16,16},
|
||||||
{'fRect',7,41,16,16},
|
{'fRect',7,41,16,16},
|
||||||
{'fRect',41,41,16,16},
|
{'fRect',41,41,16,16},
|
||||||
@@ -58,7 +58,7 @@ local loadingThread=coroutine.wrap(function()
|
|||||||
{'setLW',1},
|
{'setLW',1},
|
||||||
{'dPoly',7,24,56,24,56,39,39,39,39,56,24,56,24,39,7,39},
|
{'dPoly',7,24,56,24,56,39,39,39,39,56,24,56,24,39,7,39},
|
||||||
}
|
}
|
||||||
modeIcons.t49=DOGC{64,64,
|
modeIcons.t49=GC.DO{64,64,
|
||||||
{'setLW',2},
|
{'setLW',2},
|
||||||
{'dRect',05,05,10,20},{'dRect',49,05,10,20},
|
{'dRect',05,05,10,20},{'dRect',49,05,10,20},
|
||||||
{'dRect',05,39,10,20},{'dRect',49,39,10,20},
|
{'dRect',05,39,10,20},{'dRect',49,39,10,20},
|
||||||
@@ -66,7 +66,7 @@ local loadingThread=coroutine.wrap(function()
|
|||||||
{'setCL',1,1,1,.7},
|
{'setCL',1,1,1,.7},
|
||||||
{'fRect',20,10,23,43},
|
{'fRect',20,10,23,43},
|
||||||
}
|
}
|
||||||
modeIcons.t99=DOGC{64,64,
|
modeIcons.t99=GC.DO{64,64,
|
||||||
{'setLW',2},
|
{'setLW',2},
|
||||||
{'dRect',02,02,6,12},{'dRect',11,02,6,12},
|
{'dRect',02,02,6,12},{'dRect',11,02,6,12},
|
||||||
{'dRect',02,18,6,12},{'dRect',11,18,6,12},
|
{'dRect',02,18,6,12},{'dRect',11,18,6,12},
|
||||||
|
|||||||
@@ -100,9 +100,9 @@ scene.widgetList={
|
|||||||
WIDGET.newText{name="arrow", x=270, y=360,font=45,align='L'},
|
WIDGET.newText{name="arrow", x=270, y=360,font=45,align='L'},
|
||||||
WIDGET.newText{name="now", x=700, y=500,font=50,align='R',hideF=function()return not BGM.nowPlay end},
|
WIDGET.newText{name="now", x=700, y=500,font=50,align='R',hideF=function()return not BGM.nowPlay end},
|
||||||
WIDGET.newSlider{name="bgm", x=760, y=80,w=400,disp=SETval("bgm"),code=function(v)SETTING.bgm=v BGM.freshVolume()end},
|
WIDGET.newSlider{name="bgm", x=760, y=80,w=400,disp=SETval("bgm"),code=function(v)SETTING.bgm=v BGM.freshVolume()end},
|
||||||
WIDGET.newButton{name="up", x=200, y=250,w=120,code=pressKey"up",hideF=function()return selected==1 end,fText=DOGC{32,32,{'setLW',4},{'line',2,28,16,4,30,28}}},
|
WIDGET.newButton{name="up", x=200, y=250,w=120,code=pressKey"up",hideF=function()return selected==1 end,fText=GC.DO{32,32,{'setLW',4},{'line',2,28,16,4,30,28}}},
|
||||||
WIDGET.newButton{name="play", x=200, y=390,w=120,code=pressKey"space",fText=DOGC{64,64,{'fPoly',14+3,10,14+3,54,55+3,32}}},
|
WIDGET.newButton{name="play", x=200, y=390,w=120,code=pressKey"space",fText=GC.DO{64,64,{'fPoly',14+3,10,14+3,54,55+3,32}}},
|
||||||
WIDGET.newButton{name="down", x=200, y=530,w=120,code=pressKey"down",hideF=function()return selected==#bgmList end,fText=DOGC{32,32,{'setLW',4},{'line',2,4,16,28,30,4}}},
|
WIDGET.newButton{name="down", x=200, y=530,w=120,code=pressKey"down",hideF=function()return selected==#bgmList end,fText=GC.DO{32,32,{'setLW',4},{'line',2,4,16,28,30,4}}},
|
||||||
WIDGET.newButton{name="sound", x=1140, y=540,w=170,h=80,font=40,code=pressKey"tab"},
|
WIDGET.newButton{name="sound", x=1140, y=540,w=170,h=80,font=40,code=pressKey"tab"},
|
||||||
WIDGET.newButton{name="back", x=1140, y=640,w=170,h=80,fText=TEXTURE.back,code=backScene},
|
WIDGET.newButton{name="back", x=1140, y=640,w=170,h=80,fText=TEXTURE.back,code=backScene},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -150,10 +150,10 @@ end
|
|||||||
|
|
||||||
scene.widgetList={
|
scene.widgetList={
|
||||||
listBox,
|
listBox,
|
||||||
WIDGET.newButton{name="export",x=200,y=640,w=70,color='lG',code=pressKey"cC",fText=DOGC{50,50,{'fRect',8,44,34,4},{'fRect',22,17,6,23},{'fPoly',25,5,10,20,40,20}}},
|
WIDGET.newButton{name="export",x=200,y=640,w=70,color='lG',code=pressKey"cC",fText=GC.DO{50,50,{'fRect',8,44,34,4},{'fRect',22,17,6,23},{'fPoly',25,5,10,20,40,20}}},
|
||||||
WIDGET.newButton{name="import",x=300,y=640,w=70,color='lN',code=pressKey"cV",fText=DOGC{50,50,{'fRect',8,44,34,4},{'fRect',22,5,6,23},{'fPoly',25,40,10,25,40,25}}},
|
WIDGET.newButton{name="import",x=300,y=640,w=70,color='lN',code=pressKey"cV",fText=GC.DO{50,50,{'fRect',8,44,34,4},{'fRect',22,5,6,23},{'fPoly',25,40,10,25,40,25}}},
|
||||||
WIDGET.newButton{name="play",x=700,y=640,w=170,h=80,color='lY',code=pressKey"return",fText=DOGC{50,50,{'fPoly',10,0,49,24,10,49}}},
|
WIDGET.newButton{name="play",x=700,y=640,w=170,h=80,color='lY',code=pressKey"return",fText=GC.DO{50,50,{'fPoly',10,0,49,24,10,49}}},
|
||||||
WIDGET.newButton{name="delete",x=850,y=640,w=80,h=80,color='lR',code=pressKey"delete",fText=DOGC{50,50,{'setLW',8},{'line',5,5,45,45},{'line',5,45,45,5}}},
|
WIDGET.newButton{name="delete",x=850,y=640,w=80,h=80,color='lR',code=pressKey"delete",fText=GC.DO{50,50,{'setLW',8},{'line',5,5,45,45},{'line',5,45,45,5}}},
|
||||||
WIDGET.newButton{name="back",x=1140,y=640,w=170,h=80,fText=TEXTURE.back,code=backScene},
|
WIDGET.newButton{name="back",x=1140,y=640,w=170,h=80,fText=TEXTURE.back,code=backScene},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,21 +27,21 @@ end
|
|||||||
gc.setLineWidth(2)
|
gc.setLineWidth(2)
|
||||||
TEXTURE.puzzleMark={}
|
TEXTURE.puzzleMark={}
|
||||||
for i=1,17 do
|
for i=1,17 do
|
||||||
TEXTURE.puzzleMark[i]=DOGC{30,30,
|
TEXTURE.puzzleMark[i]=GC.DO{30,30,
|
||||||
{'setCL',minoColor[i][1],minoColor[i][2],minoColor[i][3],.6},
|
{'setCL',minoColor[i][1],minoColor[i][2],minoColor[i][3],.6},
|
||||||
{'dRect',5,5,20,20},
|
{'dRect',5,5,20,20},
|
||||||
{'dRect',10,10,10,10},
|
{'dRect',10,10,10,10},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
for i=18,24 do
|
for i=18,24 do
|
||||||
TEXTURE.puzzleMark[i]=DOGC{30,30,
|
TEXTURE.puzzleMark[i]=GC.DO{30,30,
|
||||||
{'setCL',minoColor[i]},
|
{'setCL',minoColor[i]},
|
||||||
{'dRect',7,7,16,16},
|
{'dRect',7,7,16,16},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
TEXTURE.puzzleMark[-1]=DOGC{30,30,
|
TEXTURE.puzzleMark[-1]=GC.DO{30,30,
|
||||||
{'setCL',1,1,1,.8},
|
{'setCL',1,1,1,.8},
|
||||||
{'draw',DOGC{30,30,
|
{'draw',GC.DO{30,30,
|
||||||
{'setLW',3},
|
{'setLW',3},
|
||||||
{'line',5,5,25,25},
|
{'line',5,5,25,25},
|
||||||
{'line',5,25,25,5},
|
{'line',5,25,25,5},
|
||||||
@@ -51,7 +51,7 @@ TEXTURE.puzzleMark[-1]=DOGC{30,30,
|
|||||||
--A simple pixel font
|
--A simple pixel font
|
||||||
TEXTURE.pixelNum={}
|
TEXTURE.pixelNum={}
|
||||||
for i=0,9 do
|
for i=0,9 do
|
||||||
TEXTURE.pixelNum[i]=DOGC{5,9,
|
TEXTURE.pixelNum[i]=GC.DO{5,9,
|
||||||
{('1011011111'):byte(i+1)>48,'fRect',1,0,3,1},--up
|
{('1011011111'):byte(i+1)>48,'fRect',1,0,3,1},--up
|
||||||
{('0011111011'):byte(i+1)>48,'fRect',1,4,3,1},--middle
|
{('0011111011'):byte(i+1)>48,'fRect',1,4,3,1},--middle
|
||||||
{('1011011011'):byte(i+1)>48,'fRect',1,8,3,1},--down
|
{('1011011011'):byte(i+1)>48,'fRect',1,8,3,1},--down
|
||||||
@@ -108,7 +108,7 @@ for i=1,8 do
|
|||||||
end
|
end
|
||||||
|
|
||||||
--Sure mark
|
--Sure mark
|
||||||
TEXTURE.sure=DOGC{48,64,
|
TEXTURE.sure=GC.DO{48,64,
|
||||||
{'fRect',0,0,10,27},
|
{'fRect',0,0,10,27},
|
||||||
{'fRect',0,0,48,10},
|
{'fRect',0,0,48,10},
|
||||||
{'fRect',38,10,10,15},
|
{'fRect',38,10,10,15},
|
||||||
@@ -118,7 +118,7 @@ TEXTURE.sure=DOGC{48,64,
|
|||||||
}
|
}
|
||||||
|
|
||||||
--Setting icon
|
--Setting icon
|
||||||
TEXTURE.setting=DOGC{64,64,
|
TEXTURE.setting=GC.DO{64,64,
|
||||||
{'setLW',8},
|
{'setLW',8},
|
||||||
{'dCirc',32,32,18},
|
{'dCirc',32,32,18},
|
||||||
{'setLW',10},
|
{'setLW',10},
|
||||||
@@ -133,7 +133,7 @@ TEXTURE.setting=DOGC{64,64,
|
|||||||
}
|
}
|
||||||
|
|
||||||
--Music mark
|
--Music mark
|
||||||
TEXTURE.music=DOGC{64,64,
|
TEXTURE.music=GC.DO{64,64,
|
||||||
{'setLW',6},
|
{'setLW',6},
|
||||||
{'line',19,9,60,7},
|
{'line',19,9,60,7},
|
||||||
{'setLW',2},
|
{'setLW',2},
|
||||||
@@ -144,14 +144,14 @@ TEXTURE.music=DOGC{64,64,
|
|||||||
}
|
}
|
||||||
|
|
||||||
--Mute mark
|
--Mute mark
|
||||||
TEXTURE.mute=DOGC{64,64,
|
TEXTURE.mute=GC.DO{64,64,
|
||||||
{'mDraw',TEXTURE.music,32,32,0,.9},
|
{'mDraw',TEXTURE.music,32,32,0,.9},
|
||||||
{'setLW',4},
|
{'setLW',4},
|
||||||
{'line',6,6,57,57},
|
{'line',6,6,57,57},
|
||||||
}
|
}
|
||||||
|
|
||||||
--Language mark
|
--Language mark
|
||||||
TEXTURE.language=DOGC{64,64,
|
TEXTURE.language=GC.DO{64,64,
|
||||||
{'setLW',2},
|
{'setLW',2},
|
||||||
{'dCirc',32,32,30},
|
{'dCirc',32,32,30},
|
||||||
{'line',2,31,62,31},
|
{'line',2,31,62,31},
|
||||||
@@ -161,7 +161,7 @@ TEXTURE.language=DOGC{64,64,
|
|||||||
}
|
}
|
||||||
|
|
||||||
--Info. mark
|
--Info. mark
|
||||||
TEXTURE.info=DOGC{50,50,
|
TEXTURE.info=GC.DO{50,50,
|
||||||
{'setLW',3},
|
{'setLW',3},
|
||||||
{'dCirc',25,25,22},
|
{'dCirc',25,25,22},
|
||||||
{'fRect',22,11,6,6},
|
{'fRect',22,11,6,6},
|
||||||
@@ -169,7 +169,7 @@ TEXTURE.info=DOGC{50,50,
|
|||||||
}
|
}
|
||||||
|
|
||||||
--Question mark
|
--Question mark
|
||||||
TEXTURE.question=DOGC{50,50,
|
TEXTURE.question=GC.DO{50,50,
|
||||||
{'setLW',3},
|
{'setLW',3},
|
||||||
{'dCirc',25,25,22},
|
{'dCirc',25,25,22},
|
||||||
{'setFT',40},
|
{'setFT',40},
|
||||||
@@ -177,14 +177,14 @@ TEXTURE.question=DOGC{50,50,
|
|||||||
}
|
}
|
||||||
|
|
||||||
--More mark
|
--More mark
|
||||||
TEXTURE.more=DOGC{60,15,
|
TEXTURE.more=GC.DO{60,15,
|
||||||
{'fCirc',10,7,6},
|
{'fCirc',10,7,6},
|
||||||
{'fCirc',30,7,6},
|
{'fCirc',30,7,6},
|
||||||
{'fCirc',50,7,6},
|
{'fCirc',50,7,6},
|
||||||
}
|
}
|
||||||
|
|
||||||
--Back mark
|
--Back mark
|
||||||
TEXTURE.back=DOGC{60,55,
|
TEXTURE.back=GC.DO{60,55,
|
||||||
{'setLW',6},
|
{'setLW',6},
|
||||||
{'line',11,10,40,10},
|
{'line',11,10,40,10},
|
||||||
{'line',10,40,40,40},
|
{'line',10,40,40,40},
|
||||||
@@ -194,9 +194,9 @@ TEXTURE.back=DOGC{60,55,
|
|||||||
}
|
}
|
||||||
|
|
||||||
--Quit mark
|
--Quit mark
|
||||||
TEXTURE.quit=DOGC{50,50,
|
TEXTURE.quit=GC.DO{50,50,
|
||||||
{'setCL',1,1,1},
|
{'setCL',1,1,1},
|
||||||
{'draw',DOGC{50,50,
|
{'draw',GC.DO{50,50,
|
||||||
{'setLW',7},
|
{'setLW',7},
|
||||||
{'line',5,5,45,45},
|
{'line',5,5,45,45},
|
||||||
{'line',5,45,45,5},
|
{'line',5,45,45,5},
|
||||||
@@ -204,9 +204,9 @@ TEXTURE.quit=DOGC{50,50,
|
|||||||
}
|
}
|
||||||
|
|
||||||
--Quit mark (small)
|
--Quit mark (small)
|
||||||
TEXTURE.quit_small=DOGC{30,30,
|
TEXTURE.quit_small=GC.DO{30,30,
|
||||||
{'setCL',1,1,1},
|
{'setCL',1,1,1},
|
||||||
{'draw',DOGC{30,30,
|
{'draw',GC.DO{30,30,
|
||||||
{'setLW',4},
|
{'setLW',4},
|
||||||
{'line',2,2,28,28},
|
{'line',2,2,28,28},
|
||||||
{'line',2,28,28,2},
|
{'line',2,28,28,2},
|
||||||
@@ -214,19 +214,19 @@ TEXTURE.quit_small=DOGC{30,30,
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEXTURE.game={
|
TEXTURE.game={
|
||||||
restart=DOGC{32,32,{'setLW',3},{'dArc',16,16,11,.7,5.5},{'setLW',2.5},{'line',21,.7,24,8,16,11}},
|
restart=GC.DO{32,32,{'setLW',3},{'dArc',16,16,11,.7,5.5},{'setLW',2.5},{'line',21,.7,24,8,16,11}},
|
||||||
pause=DOGC{18,23,{'fRect',0,0,3,23},{'fRect',15,0,3,23}},
|
pause=GC.DO{18,23,{'fRect',0,0,3,23},{'fRect',15,0,3,23}},
|
||||||
}
|
}
|
||||||
|
|
||||||
--Replay speed buttons
|
--Replay speed buttons
|
||||||
TEXTURE.rep={
|
TEXTURE.rep={
|
||||||
rep0=DOGC{50,50,{'fRect',11,8,8,34},{'fRect',31,8,8,34}},
|
rep0=GC.DO{50,50,{'fRect',11,8,8,34},{'fRect',31,8,8,34}},
|
||||||
repP8=DOGC{50,50,{'setFT',15},{'print',"0.125x",0,15}},
|
repP8=GC.DO{50,50,{'setFT',15},{'print',"0.125x",0,15}},
|
||||||
repP2=DOGC{50,50,{'setFT',25},{'print',"0.5x",0,8}},
|
repP2=GC.DO{50,50,{'setFT',25},{'print',"0.5x",0,8}},
|
||||||
rep1=DOGC{50,50,{'setFT',30},{'print',"1x",7,3}},
|
rep1=GC.DO{50,50,{'setFT',30},{'print',"1x",7,3}},
|
||||||
rep2=DOGC{50,50,{'setFT',30},{'print',"2x",7,3}},
|
rep2=GC.DO{50,50,{'setFT',30},{'print',"2x",7,3}},
|
||||||
rep5=DOGC{50,50,{'setFT',30},{'print',"5x",7,3}},
|
rep5=GC.DO{50,50,{'setFT',30},{'print',"5x",7,3}},
|
||||||
step=DOGC{50,50,{'setFT',30},{'fRect',12,7,4,36},{'setLW',4},{'line',25,14,41,25,25,36}},
|
step=GC.DO{50,50,{'setFT',30},{'fRect',12,7,4,36},{'setLW',4},{'line',25,14,41,25,25,36}},
|
||||||
}
|
}
|
||||||
|
|
||||||
gc.setCanvas()
|
gc.setCanvas()
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ return STRING.split([=[
|
|||||||
REPLAY不再需要保存到本地的数据,每次启动自动刷新录像文件列表
|
REPLAY不再需要保存到本地的数据,每次启动自动刷新录像文件列表
|
||||||
字符串拓展模块和DATA模块新增方法
|
字符串拓展模块和DATA模块新增方法
|
||||||
修复:
|
修复:
|
||||||
DOGC模块创建超过系统限制大小的画布导致报错
|
GC.DO模块创建超过系统限制大小的画布导致报错
|
||||||
玩家退出房间时移除键错误导致崩溃
|
玩家退出房间时移除键错误导致崩溃
|
||||||
|
|
||||||
0.15.4: 近地轨道 Low Earth Orbit
|
0.15.4: 近地轨道 Low Earth Orbit
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ local emptyUser={
|
|||||||
local defaultAvatar={}
|
local defaultAvatar={}
|
||||||
for i=1,29 do
|
for i=1,29 do
|
||||||
local img=TEXTURE.miniBlock[i]
|
local img=TEXTURE.miniBlock[i]
|
||||||
defaultAvatar[i]=DOGC{128,128,
|
defaultAvatar[i]=GC.DO{128,128,
|
||||||
{'clear',.1,.1,.1},
|
{'clear',.1,.1,.1},
|
||||||
{'draw',img,63,63,.2,30,30,img:getWidth()/2,img:getHeight()/2},
|
{'draw',img,63,63,.2,30,30,img:getWidth()/2,img:getHeight()/2},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
local errorAvatar=DOGC{128,128,
|
local errorAvatar=GC.DO{128,128,
|
||||||
{'setCL',1,.2,.15},
|
{'setCL',1,.2,.15},
|
||||||
{'setLW',10},
|
{'setLW',10},
|
||||||
{'line',10,10,117,117},
|
{'line',10,10,117,117},
|
||||||
|
|||||||
@@ -8,31 +8,31 @@ local VK_org=VK_org
|
|||||||
|
|
||||||
local skin=1
|
local skin=1
|
||||||
local buttonImages={
|
local buttonImages={
|
||||||
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98},{'dCirc',100,100,90}},
|
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98},{'dCirc',100,100,90}},
|
||||||
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,8},{'dCirc',100,100,90,8}},
|
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,8},{'dCirc',100,100,90,8}},
|
||||||
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,6},{'dCirc',100,100,90,6}},
|
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,6},{'dCirc',100,100,90,6}},
|
||||||
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,4},{'dCirc',100,100,89,4}},
|
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,4},{'dCirc',100,100,89,4}},
|
||||||
DOGC{200,200,{'setLW',4},{'dRect',31,31,138,138},{'dRect',39,39,122,122}},
|
GC.DO{200,200,{'setLW',4},{'dRect',31,31,138,138},{'dRect',39,39,122,122}},
|
||||||
}
|
}
|
||||||
local rippleImages={
|
local rippleImages={
|
||||||
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98}},
|
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98}},
|
||||||
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,8}},
|
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,8}},
|
||||||
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,6}},
|
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,6}},
|
||||||
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,4}},
|
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,4}},
|
||||||
DOGC{200,200,{'setLW',4},{'dRect',31,31,138,138}},
|
GC.DO{200,200,{'setLW',4},{'dRect',31,31,138,138}},
|
||||||
}
|
}
|
||||||
local holdImages={
|
local holdImages={
|
||||||
DOGC{200,200,{'fCirc',100,100,86}},
|
GC.DO{200,200,{'fCirc',100,100,86}},
|
||||||
DOGC{200,200,{'fCirc',100,100,86,8}},
|
GC.DO{200,200,{'fCirc',100,100,86,8}},
|
||||||
DOGC{200,200,{'fCirc',100,100,85,6}},
|
GC.DO{200,200,{'fCirc',100,100,85,6}},
|
||||||
DOGC{200,200,{'fCirc',100,100,83,4}},
|
GC.DO{200,200,{'fCirc',100,100,83,4}},
|
||||||
DOGC{200,200,{'fRect',43,43,114,114}},
|
GC.DO{200,200,{'fRect',43,43,114,114}},
|
||||||
}
|
}
|
||||||
--Virtualkey icons
|
--Virtualkey icons
|
||||||
local VKIcon={}
|
local VKIcon={}
|
||||||
gc.setDefaultFilter('nearest','nearest')
|
gc.setDefaultFilter('nearest','nearest')
|
||||||
local VKI=gc.newImage("media/image/virtualkey.png")
|
local VKI=gc.newImage("media/image/virtualkey.png")
|
||||||
for i=1,20 do VKIcon[i]=DOGC{36,36,{'draw',VKI,(i-1)%5*-36,math.floor((i-1)*.2)*-36}}end
|
for i=1,20 do VKIcon[i]=GC.DO{36,36,{'draw',VKI,(i-1)%5*-36,math.floor((i-1)*.2)*-36}}end
|
||||||
gc.setDefaultFilter('linear','linear')
|
gc.setDefaultFilter('linear','linear')
|
||||||
|
|
||||||
--In-game virtualkey layout data
|
--In-game virtualkey layout data
|
||||||
|
|||||||
Reference in New Issue
Block a user