doGC模块支持条件绘制,进一步淘汰TEXTURE模块中NSC+代码式的材质生成方法

This commit is contained in:
MrZ626
2021-04-25 14:28:22 +08:00
parent 46f118bbb9
commit cb16482a61
2 changed files with 55 additions and 55 deletions

View File

@@ -13,7 +13,7 @@ local cmds={
setLJ="setLineJoin", setLJ="setLineJoin",
setFT=function(...)setFont(...)end, setFT=function(...)setFont(...)end,
dText="print", print="print",
mText=function(...)ADRAW.str(...)end, mText=function(...)ADRAW.str(...)end,
mDraw=function(...)ADRAW.draw(...)end, mDraw=function(...)ADRAW.draw(...)end,
@@ -41,13 +41,19 @@ return function(L)
gc.setColor(1,1,1) gc.setColor(1,1,1)
gc.setLineWidth(1) gc.setLineWidth(1)
for i=3,#L do 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 if type(cmd)=="string"then
gc[cmd](unpack(L[i],2)) local func=cmds[cmd]
elseif cmd then if type(func)=="string"then func=gc[func]end
cmd(unpack(L[i],2)) if func then
else func(unpack(L[i],2))
error("No gc command: "..(L[i][1]or"[nil]")) else
error("No gc command: "..cmd)
end
end end
end end
gc.setCanvas() gc.setCanvas()

View File

@@ -30,16 +30,17 @@ end
gc.setLineWidth(2) gc.setLineWidth(2)
TEXTURE.puzzleMark={} TEXTURE.puzzleMark={}
for i=1,17 do for i=1,17 do
TEXTURE.puzzleMark[i]=NSC(30,30) TEXTURE.puzzleMark[i]=DOGC{30,30,
local _=minoColor[i] {"setCL",minoColor[i][1],minoColor[i][2],minoColor[i][3],.6},
gc.setColor(_[1],_[2],_[3],.6) {"dRect",5,5,20,20},
gc.rectangle("line",5,5,20,20) {"dRect",10,10,10,10},
gc.rectangle("line",10,10,10,10) }
end end
for i=18,24 do for i=18,24 do
TEXTURE.puzzleMark[i]=NSC(30,30) TEXTURE.puzzleMark[i]=DOGC{30,30,
gc.setColor(minoColor[i]) {"setCL",minoColor[i]},
gc.rectangle("line",7,7,16,16) {"dRect",7,7,16,16},
}
end end
TEXTURE.puzzleMark[-1]=DOGC{30,30, TEXTURE.puzzleMark[-1]=DOGC{30,30,
{"setCL",1,1,1,.8}, {"setCL",1,1,1,.8},
@@ -52,38 +53,38 @@ TEXTURE.puzzleMark[-1]=DOGC{30,30,
--A simple pixel font --A simple pixel font
TEXTURE.pixelNum={} TEXTURE.pixelNum={}
gc.setColor(1,1,1)
for i=0,9 do for i=0,9 do
TEXTURE.pixelNum[i]=NSC(5,9) TEXTURE.pixelNum[i]=DOGC{5,9,
if("1011011111"):byte(i+1)==49 then gc.rectangle("fill",1,0,3,1)end--up {("1011011111"):byte(i+1)==49,"fRect",1,0,3,1},--up
if("0011111011"):byte(i+1)==49 then gc.rectangle("fill",1,4,3,1)end--middle {("0011111011"):byte(i+1)==49,"fRect",1,4,3,1},--middle
if("1011011011"):byte(i+1)==49 then gc.rectangle("fill",1,8,3,1)end--down {("1011011011"):byte(i+1)==49,"fRect",1,8,3,1},--down
if("1000111011"):byte(i+1)==49 then gc.rectangle("fill",0,1,1,3)end--up-left {("1000111011"):byte(i+1)==49,"fRect",0,1,1,3},--up-left
if("1111100111"):byte(i+1)==49 then gc.rectangle("fill",4,1,1,3)end--up-right {("1111100111"):byte(i+1)==49,"fRect",4,1,1,3},--up-right
if("1010001010"):byte(i+1)==49 then gc.rectangle("fill",0,5,1,3)end--down-left {("1010001010"):byte(i+1)==49,"fRect",0,5,1,3},--down-left
if("1101111111"):byte(i+1)==49 then gc.rectangle("fill",4,5,1,3)end--down-right {("1101111111"):byte(i+1)==49,"fRect",4,5,1,3},--down-right
}
end end
--Cursor --Cursor
TEXTURE.cursor=NSC(16,16) TEXTURE.cursor=DOGC{16,16,
gc.setColor(1,1,1,.7) {"fCirc",8,8,4},
gc.circle("fill",8,8,6) {"setCL",1,1,1,.7},
gc.setColor(1,1,1) {"fCirc",8,8,6},
gc.circle("fill",8,8,4) }
--Cursor while hold --Cursor while hold
TEXTURE.cursor_hold=NSC(16,16) TEXTURE.cursor_hold=DOGC{16,16,
gc.setLineWidth(2) {"setLW",2},
gc.setColor(1,1,1) {"dCirc",8,8,7},
gc.circle("line",8,8,7) {"fCirc",8,8,3},
gc.circle("fill",8,8,3) }
TEXTURE.lvIcon=setmetatable({},{__index=function(self,lv) TEXTURE.lvIcon=setmetatable({},{__index=function(self,lv)
local img={25,25} local img={25,25}
ins(img,{"clear",0,0,0}) ins(img,{"clear",0,0,0})
ins(img,{"setLW",4}) ins(img,{"setLW",4})
ins(img,{"setCL",COLOR.lN}) ins(img,{"setCL",.5,.8,1})
ins(img,{"dRect",2,2,21,21}) ins(img,{"dRect",2,2,21,21})
--TODO: draw with lv --TODO: draw with lv
@@ -115,17 +116,8 @@ for i=1,8 do
gc.translate(-12*i,i==1 and -8 or -14) gc.translate(-12*i,i==1 and -8 or -14)
end 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) 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 for i=1,8 do
gc.translate(12*i,i==1 and 8 or 14) gc.translate(12*i,i==1 and 8 or 14)
@@ -151,16 +143,18 @@ end
--WS icons --WS icons
setFont(20) setFont(20)
TEXTURE.ws_dead=NSC(20,20) TEXTURE.ws_dead=DOGC{20,20,
gc.setColor(1,.3,.3) {"setCL",1,.3,.3},
gc.print("X",3,-4) {"print","X",3,-4},
TEXTURE.ws_connecting=NSC(20,20) }
gc.setLineWidth(3) TEXTURE.ws_connecting=DOGC{20,20,
gc.setColor(1,1,1) {"setLW",3},
gc.arc("line","open",11.5,10,6.26,1,5.28) {"dArc",11.5,10,6.26,1,5.28},
TEXTURE.ws_running=NSC(20,20) }
gc.setColor(.5,1,0) TEXTURE.ws_running=DOGC{20,20,
gc.print("R",3,-4) {"setCL",.5,1,0},
{"print","R",3,-4},
}
gc.setCanvas() gc.setCanvas()