doGC模块支持条件绘制,进一步淘汰TEXTURE模块中NSC+代码式的材质生成方法
This commit is contained in:
@@ -13,7 +13,7 @@ local cmds={
|
||||
setLJ="setLineJoin",
|
||||
|
||||
setFT=function(...)setFont(...)end,
|
||||
dText="print",
|
||||
print="print",
|
||||
mText=function(...)ADRAW.str(...)end,
|
||||
mDraw=function(...)ADRAW.draw(...)end,
|
||||
|
||||
@@ -41,13 +41,19 @@ return function(L)
|
||||
gc.setColor(1,1,1)
|
||||
gc.setLineWidth(1)
|
||||
for i=3,#L do
|
||||
local cmd=cmds[L[i][1]]
|
||||
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
|
||||
gc[cmd](unpack(L[i],2))
|
||||
elseif cmd then
|
||||
cmd(unpack(L[i],2))
|
||||
else
|
||||
error("No gc command: "..(L[i][1]or"[nil]"))
|
||||
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()
|
||||
|
||||
@@ -30,16 +30,17 @@ end
|
||||
gc.setLineWidth(2)
|
||||
TEXTURE.puzzleMark={}
|
||||
for i=1,17 do
|
||||
TEXTURE.puzzleMark[i]=NSC(30,30)
|
||||
local _=minoColor[i]
|
||||
gc.setColor(_[1],_[2],_[3],.6)
|
||||
gc.rectangle("line",5,5,20,20)
|
||||
gc.rectangle("line",10,10,10,10)
|
||||
TEXTURE.puzzleMark[i]=DOGC{30,30,
|
||||
{"setCL",minoColor[i][1],minoColor[i][2],minoColor[i][3],.6},
|
||||
{"dRect",5,5,20,20},
|
||||
{"dRect",10,10,10,10},
|
||||
}
|
||||
end
|
||||
for i=18,24 do
|
||||
TEXTURE.puzzleMark[i]=NSC(30,30)
|
||||
gc.setColor(minoColor[i])
|
||||
gc.rectangle("line",7,7,16,16)
|
||||
TEXTURE.puzzleMark[i]=DOGC{30,30,
|
||||
{"setCL",minoColor[i]},
|
||||
{"dRect",7,7,16,16},
|
||||
}
|
||||
end
|
||||
TEXTURE.puzzleMark[-1]=DOGC{30,30,
|
||||
{"setCL",1,1,1,.8},
|
||||
@@ -52,38 +53,38 @@ TEXTURE.puzzleMark[-1]=DOGC{30,30,
|
||||
|
||||
--A simple pixel font
|
||||
TEXTURE.pixelNum={}
|
||||
gc.setColor(1,1,1)
|
||||
for i=0,9 do
|
||||
TEXTURE.pixelNum[i]=NSC(5,9)
|
||||
if("1011011111"):byte(i+1)==49 then gc.rectangle("fill",1,0,3,1)end--up
|
||||
if("0011111011"):byte(i+1)==49 then gc.rectangle("fill",1,4,3,1)end--middle
|
||||
if("1011011011"):byte(i+1)==49 then gc.rectangle("fill",1,8,3,1)end--down
|
||||
if("1000111011"):byte(i+1)==49 then gc.rectangle("fill",0,1,1,3)end--up-left
|
||||
if("1111100111"):byte(i+1)==49 then gc.rectangle("fill",4,1,1,3)end--up-right
|
||||
if("1010001010"):byte(i+1)==49 then gc.rectangle("fill",0,5,1,3)end--down-left
|
||||
if("1101111111"):byte(i+1)==49 then gc.rectangle("fill",4,5,1,3)end--down-right
|
||||
TEXTURE.pixelNum[i]=DOGC{5,9,
|
||||
{("1011011111"):byte(i+1)==49,"fRect",1,0,3,1},--up
|
||||
{("0011111011"):byte(i+1)==49,"fRect",1,4,3,1},--middle
|
||||
{("1011011011"):byte(i+1)==49,"fRect",1,8,3,1},--down
|
||||
{("1000111011"):byte(i+1)==49,"fRect",0,1,1,3},--up-left
|
||||
{("1111100111"):byte(i+1)==49,"fRect",4,1,1,3},--up-right
|
||||
{("1010001010"):byte(i+1)==49,"fRect",0,5,1,3},--down-left
|
||||
{("1101111111"):byte(i+1)==49,"fRect",4,5,1,3},--down-right
|
||||
}
|
||||
end
|
||||
|
||||
--Cursor
|
||||
TEXTURE.cursor=NSC(16,16)
|
||||
gc.setColor(1,1,1,.7)
|
||||
gc.circle("fill",8,8,6)
|
||||
gc.setColor(1,1,1)
|
||||
gc.circle("fill",8,8,4)
|
||||
TEXTURE.cursor=DOGC{16,16,
|
||||
{"fCirc",8,8,4},
|
||||
{"setCL",1,1,1,.7},
|
||||
{"fCirc",8,8,6},
|
||||
}
|
||||
|
||||
--Cursor while hold
|
||||
TEXTURE.cursor_hold=NSC(16,16)
|
||||
gc.setLineWidth(2)
|
||||
gc.setColor(1,1,1)
|
||||
gc.circle("line",8,8,7)
|
||||
gc.circle("fill",8,8,3)
|
||||
TEXTURE.cursor_hold=DOGC{16,16,
|
||||
{"setLW",2},
|
||||
{"dCirc",8,8,7},
|
||||
{"fCirc",8,8,3},
|
||||
}
|
||||
|
||||
TEXTURE.lvIcon=setmetatable({},{__index=function(self,lv)
|
||||
local img={25,25}
|
||||
|
||||
ins(img,{"clear",0,0,0})
|
||||
ins(img,{"setLW",4})
|
||||
ins(img,{"setCL",COLOR.lN})
|
||||
ins(img,{"setCL",.5,.8,1})
|
||||
ins(img,{"dRect",2,2,21,21})
|
||||
--TODO: draw with lv
|
||||
|
||||
@@ -115,17 +116,8 @@ for i=1,8 do
|
||||
|
||||
gc.translate(-12*i,i==1 and -8 or -14)
|
||||
end
|
||||
local titleColor={COLOR.lP,COLOR.lC,COLOR.lB,COLOR.lO,COLOR.lF,COLOR.lM,COLOR.lG,COLOR.lY}
|
||||
TEXTURE.title_color=NSC(1160,236)
|
||||
local titleColor={
|
||||
COLOR.lP,
|
||||
COLOR.lC,
|
||||
COLOR.lB,
|
||||
COLOR.lO,
|
||||
COLOR.lF,
|
||||
COLOR.lM,
|
||||
COLOR.lG,
|
||||
COLOR.lY,
|
||||
}
|
||||
for i=1,8 do
|
||||
gc.translate(12*i,i==1 and 8 or 14)
|
||||
|
||||
@@ -151,16 +143,18 @@ end
|
||||
|
||||
--WS icons
|
||||
setFont(20)
|
||||
TEXTURE.ws_dead=NSC(20,20)
|
||||
gc.setColor(1,.3,.3)
|
||||
gc.print("X",3,-4)
|
||||
TEXTURE.ws_connecting=NSC(20,20)
|
||||
gc.setLineWidth(3)
|
||||
gc.setColor(1,1,1)
|
||||
gc.arc("line","open",11.5,10,6.26,1,5.28)
|
||||
TEXTURE.ws_running=NSC(20,20)
|
||||
gc.setColor(.5,1,0)
|
||||
gc.print("R",3,-4)
|
||||
TEXTURE.ws_dead=DOGC{20,20,
|
||||
{"setCL",1,.3,.3},
|
||||
{"print","X",3,-4},
|
||||
}
|
||||
TEXTURE.ws_connecting=DOGC{20,20,
|
||||
{"setLW",3},
|
||||
{"dArc",11.5,10,6.26,1,5.28},
|
||||
}
|
||||
TEXTURE.ws_running=DOGC{20,20,
|
||||
{"setCL",.5,1,0},
|
||||
{"print","R",3,-4},
|
||||
}
|
||||
|
||||
|
||||
gc.setCanvas()
|
||||
|
||||
Reference in New Issue
Block a user