DOGC移入GC拓展模块,GC.DO添加dRPol(圆角正多边形)命令

This commit is contained in:
MrZ626
2021-08-07 14:54:52 +08:00
parent 1d7e58d3bf
commit f6e3b35482
14 changed files with 196 additions and 95 deletions

View File

@@ -8,7 +8,7 @@ local upCover do
table.insert(L,{'setCL',.6,1,1,i*.01})
table.insert(L,{'fRect',0,63-i,1,1})
end
upCover=DOGC(L)
upCover=GC.DO(L)
end
local downCover do
local L={1,64}
@@ -16,7 +16,7 @@ local downCover do
table.insert(L,{'setCL',1,.5,.8,i*.01})
table.insert(L,{'fRect',0,i,1,1})
end
downCover=DOGC(L)
downCover=GC.DO(L)
end
local W,H

View File

@@ -598,7 +598,7 @@ do--function drawSelfProfile()
ins(img,{"dRect",2,2,21,21})
--TODO: draw with lv
img=DOGC(img)
img=GC.DO(img)
rawset(self,lv,img)
return img
end})

View File

@@ -29,21 +29,21 @@ local hideBoardStencil={
down=function()gc_rectangle('fill',0,300,300,300)end,
all=function()gc_rectangle('fill',0,0,300,600)end,
}
local dialFrame=DOGC{97,32,
local dialFrame=GC.DO{97,32,
{'setLW',2},
{'dRect',1,1,30,30,3},
{'dRect',36,1,60,30,3},
}
local dialNeedle=DOGC{22,4,
local dialNeedle=GC.DO{22,4,
{'fRect',0,1,20,2},
{'fCirc',20,2,2},
}
local multiple=DOGC{15,15,
local multiple=GC.DO{15,15,
{'setLW',3},
{'line',2,2,12,12},
{'line',2,12,12,2},
}
local spinCenterImg=DOGC{9,9,
local spinCenterImg=GC.DO{9,9,
{'setCL',1,1,1,.2},
{'fRect',0,0,9,9},
{'setCL',1,1,1,.6},
@@ -53,7 +53,7 @@ local spinCenterImg=DOGC{9,9,
{'setCL',1,1,1},
{'fRect',3,3,3,3},
}
local playerBoarders=DOGC{334,620,
local playerBoarders=GC.DO{334,620,
{'setLW',2},
{'setCL',.97,.97,.975},
{'dRect',16,1,302,618,7},
@@ -65,15 +65,15 @@ local gridLines do
local L={300,640,{'setLW',2}}
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
gridLines=DOGC(L)
gridLines=GC.DO(L)
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
local bpmImage=DOGC{31,12,
local bpmImage=GC.DO{31,12,
{'setFT',15},
{'print',"BPM",0,-5}
}
local kpmImage=DOGC{31,12,
local kpmImage=GC.DO{31,12,
{'setFT',15},
{'print',"KPM",0,-5}
}

View File

@@ -26,13 +26,13 @@ local loadingThread=coroutine.wrap(function()
YIELD('loadModeIcon')
local modeIcons={}
modeIcons.marathon=DOGC{32,32,
modeIcons.marathon=GC.DO{32,32,
{'move',3,1},
{'fRect',10,4,-2,23},
{'fPoly',10,4,24,10,10,16.5},
{'fRect',4,24,10,3},
}
modeIcons.infinite=DOGC{64,64,
modeIcons.infinite=GC.DO{64,64,
{'setLW',4},
{'dCirc',32,32,28},
{'line',32,32,32,14},
@@ -43,14 +43,14 @@ local loadingThread=coroutine.wrap(function()
{'fRect',52,30,4,4},
{'fRect',30,52,4,4},
}
modeIcons.classic=DOGC{64,64,
modeIcons.classic=GC.DO{64,64,
{'setLW',6},
{'dRect',10,24,12,12},
{'dRect',26,24,12,12},
{'dRect',42,24,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,41,16,16},
{'fRect',41,41,16,16},
@@ -58,7 +58,7 @@ local loadingThread=coroutine.wrap(function()
{'setLW',1},
{'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},
{'dRect',05,05,10,20},{'dRect',49,05,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},
{'fRect',20,10,23,43},
}
modeIcons.t99=DOGC{64,64,
modeIcons.t99=GC.DO{64,64,
{'setLW',2},
{'dRect',02,02,6,12},{'dRect',11,02,6,12},
{'dRect',02,18,6,12},{'dRect',11,18,6,12},

View File

@@ -100,9 +100,9 @@ scene.widgetList={
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.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="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="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="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=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=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="back", x=1140, y=640,w=170,h=80,fText=TEXTURE.back,code=backScene},
}

View File

@@ -150,10 +150,10 @@ end
scene.widgetList={
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="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="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="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="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=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=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=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},
}

View File

@@ -27,21 +27,21 @@ end
gc.setLineWidth(2)
TEXTURE.puzzleMark={}
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},
{'dRect',5,5,20,20},
{'dRect',10,10,10,10},
}
end
for i=18,24 do
TEXTURE.puzzleMark[i]=DOGC{30,30,
TEXTURE.puzzleMark[i]=GC.DO{30,30,
{'setCL',minoColor[i]},
{'dRect',7,7,16,16},
}
end
TEXTURE.puzzleMark[-1]=DOGC{30,30,
TEXTURE.puzzleMark[-1]=GC.DO{30,30,
{'setCL',1,1,1,.8},
{'draw',DOGC{30,30,
{'draw',GC.DO{30,30,
{'setLW',3},
{'line',5,5,25,25},
{'line',5,25,25,5},
@@ -51,7 +51,7 @@ TEXTURE.puzzleMark[-1]=DOGC{30,30,
--A simple pixel font
TEXTURE.pixelNum={}
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
{('0011111011'):byte(i+1)>48,'fRect',1,4,3,1},--middle
{('1011011011'):byte(i+1)>48,'fRect',1,8,3,1},--down
@@ -108,7 +108,7 @@ for i=1,8 do
end
--Sure mark
TEXTURE.sure=DOGC{48,64,
TEXTURE.sure=GC.DO{48,64,
{'fRect',0,0,10,27},
{'fRect',0,0,48,10},
{'fRect',38,10,10,15},
@@ -118,7 +118,7 @@ TEXTURE.sure=DOGC{48,64,
}
--Setting icon
TEXTURE.setting=DOGC{64,64,
TEXTURE.setting=GC.DO{64,64,
{'setLW',8},
{'dCirc',32,32,18},
{'setLW',10},
@@ -133,7 +133,7 @@ TEXTURE.setting=DOGC{64,64,
}
--Music mark
TEXTURE.music=DOGC{64,64,
TEXTURE.music=GC.DO{64,64,
{'setLW',6},
{'line',19,9,60,7},
{'setLW',2},
@@ -144,14 +144,14 @@ TEXTURE.music=DOGC{64,64,
}
--Mute mark
TEXTURE.mute=DOGC{64,64,
TEXTURE.mute=GC.DO{64,64,
{'mDraw',TEXTURE.music,32,32,0,.9},
{'setLW',4},
{'line',6,6,57,57},
}
--Language mark
TEXTURE.language=DOGC{64,64,
TEXTURE.language=GC.DO{64,64,
{'setLW',2},
{'dCirc',32,32,30},
{'line',2,31,62,31},
@@ -161,7 +161,7 @@ TEXTURE.language=DOGC{64,64,
}
--Info. mark
TEXTURE.info=DOGC{50,50,
TEXTURE.info=GC.DO{50,50,
{'setLW',3},
{'dCirc',25,25,22},
{'fRect',22,11,6,6},
@@ -169,7 +169,7 @@ TEXTURE.info=DOGC{50,50,
}
--Question mark
TEXTURE.question=DOGC{50,50,
TEXTURE.question=GC.DO{50,50,
{'setLW',3},
{'dCirc',25,25,22},
{'setFT',40},
@@ -177,14 +177,14 @@ TEXTURE.question=DOGC{50,50,
}
--More mark
TEXTURE.more=DOGC{60,15,
TEXTURE.more=GC.DO{60,15,
{'fCirc',10,7,6},
{'fCirc',30,7,6},
{'fCirc',50,7,6},
}
--Back mark
TEXTURE.back=DOGC{60,55,
TEXTURE.back=GC.DO{60,55,
{'setLW',6},
{'line',11,10,40,10},
{'line',10,40,40,40},
@@ -194,9 +194,9 @@ TEXTURE.back=DOGC{60,55,
}
--Quit mark
TEXTURE.quit=DOGC{50,50,
TEXTURE.quit=GC.DO{50,50,
{'setCL',1,1,1},
{'draw',DOGC{50,50,
{'draw',GC.DO{50,50,
{'setLW',7},
{'line',5,5,45,45},
{'line',5,45,45,5},
@@ -204,9 +204,9 @@ TEXTURE.quit=DOGC{50,50,
}
--Quit mark (small)
TEXTURE.quit_small=DOGC{30,30,
TEXTURE.quit_small=GC.DO{30,30,
{'setCL',1,1,1},
{'draw',DOGC{30,30,
{'draw',GC.DO{30,30,
{'setLW',4},
{'line',2,2,28,28},
{'line',2,28,28,2},
@@ -214,19 +214,19 @@ TEXTURE.quit_small=DOGC{30,30,
}
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}},
pause=DOGC{18,23,{'fRect',0,0,3,23},{'fRect',15,0,3,23}},
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=GC.DO{18,23,{'fRect',0,0,3,23},{'fRect',15,0,3,23}},
}
--Replay speed buttons
TEXTURE.rep={
rep0=DOGC{50,50,{'fRect',11,8,8,34},{'fRect',31,8,8,34}},
repP8=DOGC{50,50,{'setFT',15},{'print',"0.125x",0,15}},
repP2=DOGC{50,50,{'setFT',25},{'print',"0.5x",0,8}},
rep1=DOGC{50,50,{'setFT',30},{'print',"1x",7,3}},
rep2=DOGC{50,50,{'setFT',30},{'print',"2x",7,3}},
rep5=DOGC{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}},
rep0=GC.DO{50,50,{'fRect',11,8,8,34},{'fRect',31,8,8,34}},
repP8=GC.DO{50,50,{'setFT',15},{'print',"0.125x",0,15}},
repP2=GC.DO{50,50,{'setFT',25},{'print',"0.5x",0,8}},
rep1=GC.DO{50,50,{'setFT',30},{'print',"1x",7,3}},
rep2=GC.DO{50,50,{'setFT',30},{'print',"2x",7,3}},
rep5=GC.DO{50,50,{'setFT',30},{'print',"5x",7,3}},
step=GC.DO{50,50,{'setFT',30},{'fRect',12,7,4,36},{'setLW',4},{'line',25,14,41,25,25,36}},
}
gc.setCanvas()

View File

@@ -142,7 +142,7 @@ return STRING.split([=[
REPLAY不再需要保存到本地的数据,每次启动自动刷新录像文件列表
字符串拓展模块和DATA模块新增方法
修复:
DOGC模块创建超过系统限制大小的画布导致报错
GC.DO模块创建超过系统限制大小的画布导致报错
玩家退出房间时移除键错误导致崩溃
0.15.4: 近地轨道 Low Earth Orbit

View File

@@ -9,12 +9,12 @@ local emptyUser={
local defaultAvatar={}
for i=1,29 do
local img=TEXTURE.miniBlock[i]
defaultAvatar[i]=DOGC{128,128,
defaultAvatar[i]=GC.DO{128,128,
{'clear',.1,.1,.1},
{'draw',img,63,63,.2,30,30,img:getWidth()/2,img:getHeight()/2},
}
end
local errorAvatar=DOGC{128,128,
local errorAvatar=GC.DO{128,128,
{'setCL',1,.2,.15},
{'setLW',10},
{'line',10,10,117,117},

View File

@@ -8,31 +8,31 @@ local VK_org=VK_org
local skin=1
local buttonImages={
DOGC{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}},
DOGC{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}},
DOGC{200,200,{'setLW',4},{'dRect',31,31,138,138},{'dRect',39,39,122,122}},
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98},{'dCirc',100,100,90}},
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,8},{'dCirc',100,100,90,8}},
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,6},{'dCirc',100,100,90,6}},
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,4},{'dCirc',100,100,89,4}},
GC.DO{200,200,{'setLW',4},{'dRect',31,31,138,138},{'dRect',39,39,122,122}},
}
local rippleImages={
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98}},
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,8}},
DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,6}},
DOGC{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},{'dCirc',100,100,98}},
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,8}},
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,6}},
GC.DO{200,200,{'setLW',4},{'dCirc',100,100,98,4}},
GC.DO{200,200,{'setLW',4},{'dRect',31,31,138,138}},
}
local holdImages={
DOGC{200,200,{'fCirc',100,100,86}},
DOGC{200,200,{'fCirc',100,100,86,8}},
DOGC{200,200,{'fCirc',100,100,85,6}},
DOGC{200,200,{'fCirc',100,100,83,4}},
DOGC{200,200,{'fRect',43,43,114,114}},
GC.DO{200,200,{'fCirc',100,100,86}},
GC.DO{200,200,{'fCirc',100,100,86,8}},
GC.DO{200,200,{'fCirc',100,100,85,6}},
GC.DO{200,200,{'fCirc',100,100,83,4}},
GC.DO{200,200,{'fRect',43,43,114,114}},
}
--Virtualkey icons
local VKIcon={}
gc.setDefaultFilter('nearest','nearest')
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')
--In-game virtualkey layout data