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",
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()

View File

@@ -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()