新tips,修复手机旋屏bug,各种调平,统计数据简化

This commit is contained in:
MrZ_26
2020-07-19 21:33:03 +08:00
parent 74bc1a2544
commit 60cbc83313
21 changed files with 127 additions and 122 deletions

View File

@@ -369,7 +369,7 @@ function keyDown.sequence(key)
elseif key=="delete"then
if sceneTemp.sure>20 then
preBag={}
sceneTemp.cur=7
sceneTemp.cur=0
sceneTemp.sure=0
else
sceneTemp.sure=50
@@ -720,7 +720,7 @@ function keyDown.staff(key,RESET)
if key=="escape"then
SCN.back()
elseif key=="\122"then
if kb.isDown("\109")and kb.isDown("\114")or RESET then
if RESET or kb.isDown("\109")and kb.isDown("\114")then
sceneTemp.ct=sceneTemp.ct+1
if sceneTemp.ct==5 then
TEXT.show("What are you up to?",640,200,40,"appear",.5)
@@ -1021,7 +1021,11 @@ function love.resize(w,h)
SHADER.warning:send("h",h*scr.dpi)
end
function love.focus(f)
if SCN.cur=="play"and not f and setting.autoPause then pauseGame()end
if f then
TASK.new(TICK.autoResize,{0})
elseif SCN.cur=="play"and setting.autoPause then
pauseGame()
end
end
local scs={1,2,1,2,1,2,1,2,1,2,1.5,1.5,.5,2.5}
local devColor={

View File

@@ -1,7 +1,7 @@
local langList={
{
anykey="按任意键继续",
newVersion="检测到更新!存档格式可能更新,设置已重置",
newVersion="检测到更新!存档格式已修改",
marking="游戏作者:MrZ_26\n任何视频/直播不得出现此水印\n任何转述声明无效",
lang="中文",
atkModeName={"随机","徽章","击杀","反击"},
@@ -442,7 +442,7 @@ local langList={
},
{
anykey="按任意键继续",
newVersion="检测到更新!存档格式可能更新,设置已重置",
newVersion="检测到更新!存档格式已修改",
marking="游戏作者:MrZ_26\n任何视频/直播不得出现此水印\n任何转述声明无效",
lang="全中文",
atkModeName={"随机","徽章","击杀","反击"},
@@ -880,7 +880,7 @@ local langList={
},
{
anykey="Press any button",
newVersion="Updating detected! Save format may have been updated, settings reseted",
newVersion="Updating detected! Saving format updated",
marking="Game Author:MrZ_26\nIllegal recording if see this\nAny explanation invalid",
lang="English",
atkModeName={"Random","Badges","K.O.s","Attackers"},
@@ -1307,7 +1307,7 @@ local langList={
},
{
anykey="↓□↓",
newVersion="&!!! ___/_?_ R",
newVersion="&!!! ___!",
marking="Game Author:MrZ_26\nIllegal recording if see this\nAny explanation invalid",
lang="?????",
atkModeName={"?","( )","!","←→"},

View File

@@ -118,8 +118,8 @@ function sceneInit.pause(org)
format("%d(%d) %.2fLPM",S.row,S.dig,S.row/S.time*60),
format("%d(%d)",S.atk,S.digatk),
format("%d(%d-%d)",S.pend,S.recv,S.recv-S.pend),
format("%d/%d/%d/%d",S.clear_S[1],S.clear_S[2],S.clear_S[3],S.clear_S[4]),
format("(%d)/%d/%d/%d",S.spin_S[1],S.spin_S[2],S.spin_S[3],S.spin_S[4]),
format("%d/%d/%d/%d",S.clears[1],S.clears[2],S.clears[3],S.clears[4]),
format("(%d)/%d/%d/%d",S.spins[1],S.spins[2],S.spins[3],S.spins[4]),
format("%d(+%d)/%d(%d)",S.b2b,S.b3b,S.pc,S.hpc),
format("%d[%.2f%%]",S.extraPiece,100*max(1-S.extraRate/S.piece,0)),
},
@@ -223,12 +223,22 @@ function sceneInit.staff()
end
function sceneInit.stat()
local S=stat
local X1,X2,Y1,Y2={0,0,0,0},{0,0,0,0},{},{}
for i=1,7 do
local S,C=S.spin[i],S.clear[i]
Y1[i]=S[1]+S[2]+S[3]+S[4]
Y2[i]=C[1]+C[2]+C[3]+C[4]
for j=1,4 do
X1[j]=X1[j]+S[j]
X2[j]=X2[j]+C[j]
end
end
sceneTemp={
count=0,
chart={
A1=S.spin,A2=S.clear,
X1=S.spin_S,X2=S.clear_S,
Y1=S.spin_B,Y2=S.clear_B,
X1=X1,X2=X2,
Y1=Y1,Y2=Y2,
},
item={
S.run,

View File

@@ -1,4 +1,4 @@
gameVersion="Alpha V0.9.0"
gameVersion="Alpha V0.9.1"
function love.conf(t)
t.identity="Techmino"--saving folder
t.version="11.1"

BIN
font.ttf

Binary file not shown.

View File

@@ -81,51 +81,8 @@ if fs.getInfo("virtualkey.dat")then FILE.loadVK()end
--update data file
S=stat
if not S.version or S.version=="Alpha V0.8.15"then
S.clear_S={S.clear_1,S.clear_2,S.clear_3,S.clear_4}
S.clear={{},{},{},{},{},{},{}}
local A,B,C,D=int(S.clear_1/7),int(S.clear_2/7),int(S.clear_3/7),S.clear_4
for i=1,7 do
S.clear[i][1]=A
S.clear[i][2]=B
S.clear[i][3]=C
S.clear[i][4]=0
end
S.clear[7][4]=D
for i=1,S.clear_1%7 do S.clear[i][1]=S.clear[i][1]+1 end
for i=1,S.clear_2%7 do S.clear[i][2]=S.clear[i][2]+1 end
for i=1,S.clear_3%7 do S.clear[i][3]=S.clear[i][3]+1 end
S.clear_B={}
for i=1,7 do
S.clear_B[i]=S.clear[i][1]+S.clear[i][2]+S.clear[i][3]+S.clear[i][4]
end
S.spin_S={S.spin_0,S.spin_1,S.spin_2,S.spin_3}
S.spin={{},{},{},{},{},{},{}}
A,B,C,D=int(S.spin_0/7),int(S.spin_1/7),int(S.spin_2/7),int(S.spin_3/7)
for i=1,7 do
S.spin[i][1]=A
S.spin[i][2]=B
S.spin[i][3]=C
S.spin[i][4]=D
end
for i=1,S.spin_0%7 do S.spin[i][1]=S.spin[i][1]+1 end
for i=1,S.spin_1%7 do S.spin[i][2]=S.spin[i][2]+1 end
for i=1,S.spin_2%7 do S.spin[i][3]=S.spin[i][3]+1 end
for i=1,S.spin_3%7 do S.spin[i][4]=S.spin[i][4]+1 end
S.spin_B={}
for i=1,7 do
S.spin_B[i]=S.spin[i][1]+S.spin[i][2]+S.spin[i][3]+S.spin[i][4]
end
S.hpc=S.c
elseif S.version=="Alpha V0.8.16"then
for i=1,6 do
S.clear[7][4]=S.clear[7][4]+S.clear[i][4]
S.clear[i][4]=0
end
end
if not S.clear_B[8]then
S.clear_B,S.clear_S=nil
if not S.clear[1][5]then
for i=1,7 do
S.clear[i][5]=0
S.spin[i][5]=0
@@ -133,21 +90,17 @@ if not S.clear_B[8]then
for i=8,25 do
S.clear[i]={0,0,0,0,0}
S.spin[i]={0,0,0,0,0}
S.spin_B[i]=0
S.clear_B[i]=0
end
S.spin_S[5]=0
S.clear_S[5]=0
end
if S.version=="Alpha V0.8.18"or S.version=="Alpha V0.8.19"then
S.clear[3],S.clear[4]=S.clear[4],S.clear[3]
S.spin[3],S.spin[4]=S.spin[4],S.spin[3]
S.clear_B[3],S.clear_B[4]=S.clear_B[4],S.clear_B[3]
S.spin_B[3],S.spin_B[4]=S.spin_B[4],S.spin_B[3]
end
if S.version=="Alpha V0.8.22"then
if not S.off then
S.off=S.recv-S.pend
end
if S.clear[1][4]>0 then
for i=1,6 do
S.clear[7][4]=S.clear[7][4]+S.clear[i][4]
S.clear[i][4]=0
end
end
while #modeRanks>73 do
table.remove(modeRanks)
end

View File

@@ -45,7 +45,7 @@ return{
mStr(P.modeData.event,-81,110)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clear_S[4],-81,340)
mStr(P.stat.clears[4],-81,340)
end,
score=function(P)return{P.modeData.point,P.stat.score}end,
scoreDisp=function(D)return sectionName[int(D[1]*.1)+1].." "..D[2]end,

View File

@@ -18,7 +18,7 @@ return{
mText(drawableText.techrash,-81,420)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clear_S[4],-81,340)
mStr(P.stat.clears[4],-81,340)
end,
score=function(P)return{min(P.stat.row or 200),P.stat.time}end,
scoreDisp=function(D)return D[1].." Lines "..toTime(D[2])end,

View File

@@ -21,7 +21,7 @@ return{
mText(drawableText.techrash,-81,420)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clear_S[4],-81,340)
mStr(P.stat.clears[4],-81,340)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,120,0,2.6)
end,

View File

@@ -22,7 +22,7 @@ return{
mText(drawableText.techrash,-81,420)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clear_S[4],-81,340)
mStr(P.stat.clears[4],-81,340)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,120,0,2.6)
end,

View File

@@ -20,7 +20,7 @@ return{
mText(drawableText.techrash,-81,420)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clear_S[4],-81,340)
mStr(P.stat.clears[4],-81,340)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,120,0,2.6)
end,

View File

@@ -23,7 +23,7 @@ return{
mText(drawableText.techrash,-81,420)
setFont(75)
mStr(P.stat.row,-81,220)
mStr(P.stat.clear_S[4],-81,340)
mStr(P.stat.clears[4],-81,340)
gc.setColor(1,1,1,.2)
gc.draw(IMG.electric,-26,120,0,2.6)
end,

View File

@@ -10,13 +10,19 @@ return{
if not P.next[1] then
local height=freeRow.get(0)
local max=#P.field
for x=1,10 do
local h=max
while P.field[h][x]==0 and h>1 do
h=h-1
if max>0 then
for x=1,10 do
local h=max
while P.field[h][x]==0 and h>1 do
h=h-1
end
height[x]=h
end--get heights
else
for x=1,10 do
height[x]=0
end
height[x]=h
end--get heights
end
height[11]=999
local res={1,1,2,2,3,4}
@@ -27,9 +33,11 @@ return{
end
if d<40 or P.stat.row>2*42 then
A=#res+1
for i=A,A+5 do
res[i]=1
res[i+6]=2
for i=1,4 do
res[A]=1
res[A+1]=2
res[A+2]=6
A=A+3
end
goto END
end

View File

@@ -63,7 +63,7 @@ return{
getRank=function(P)
local S=P.modeData.point
if S==500 then
local T=P.modeData.time
local T=P.stat.time
return
T<=118 and 5 or
T<=148 and 4 or

View File

@@ -67,7 +67,7 @@ return{
getRank=function(P)
local S=P.modeData.point
if S==500 then
local L=P.stat.clear_S[4]
local L=P.stat.clears[4]
return
L>=30 and 5 or
L>=25 and 4 or

View File

@@ -60,14 +60,11 @@ s={
piece=0,row=0,dig=0,
atk=0,digatk=0,
send=0,recv=0,pend=0,off=0,
clear={},clear_B={},clear_S={0,0,0,0,0},
spin={},spin_B={},spin_S={0,0,0,0,0},
clear={},spin={},
pc=0,hpc=0,b2b=0,b3b=0,score=0,
lastPlay="sprint_10",--last played mode ID
}
for i=1,25 do
s.clear_B[i]=0
s.spin_B[i]=0
s.clear[i]={0,0,0,0,0}
s.spin[i]={0,0,0,0,0}
end

View File

@@ -109,9 +109,13 @@ end
function mergeStat(stat,delta)
for k,v in next,delta do
if type(v)=="table"then
mergeStat(stat[k],v)
if type(stat[k])=="table"then
mergeStat(stat[k],v)
end
else
stat[k]=stat[k]+v
if stat[k]then
stat[k]=stat[k]+v
end
end
end
end

View File

@@ -2,6 +2,7 @@ local L
if setting.lang==1 or setting.lang==2 then
L={
"ZS JL T O I",
"uid:225238922",
"tetr.js 也很好玩!",
"tetr.io 也很好玩!",
"Techminohaowan",
@@ -11,7 +12,9 @@ if setting.lang==1 or setting.lang==2 then
"osu好玩!",
"O spin Triple!",
"nullpomino 也很好玩!",
"Naki 可爱!",
"Miya:喵!",
"Miya 可爱!",
"LrL RlR LLr RRl RRR LLL FFF RfR RRf rFF",
"Let-The-Bass-Kick!",
"l-=-1",
@@ -31,6 +34,7 @@ if setting.lang==1 or setting.lang==2 then
"有建议的话可以把信息反馈给作者~",
"学会使用两个旋转键, 三个更好",
"享受特色旋转系统!",
"无聊翻翻设置是好习惯",
"我的世界好玩!",
"提前旋转等设置可以用来救命",
"泰拉瑞亚好玩!",
@@ -38,20 +42,23 @@ if setting.lang==1 or setting.lang==2 then
"使用love2d引擎制作",
"少女祈祷中",
"扫雷好玩!",
"哦,我的上帝",
"你可以从统计页面打开游戏存档目录",
"你好 世界!",
"魔方好玩!",
"秘密数字:626",
"每个虚拟按键都可以隐藏/显示",
"每个块的出现方向可以自定义",
"联网还没做呢, 别急",
"键位是可以自定义的",
"合群了就会消失, 但是消失不代表没有意义",
"更小的DAS和ARR拥有更高的操作上限(如果你还能控制得了的话)",
"俄罗斯方块环游记也不错",
"俄罗斯方块环游记也不错!",
"调到特殊的日期也不会发生什么的",
"低帧率会降低游戏体验",
"戴上耳机以获得最佳体验",
"大满贯10连击消四全清!",
"车车人在此",
"草(日本语)",
"不要在上课时玩游戏!",
"不要盯着bug不放",
@@ -59,9 +66,9 @@ if setting.lang==1 or setting.lang==2 then
"不是动画,真的在加载!",
"本游戏难度上限很高, 做好心理准备",
"本游戏可不是休闲游戏",
"啊这,不会吧不会吧",
"3.1415926535897932384",
"26连T2来一个?",
"225238922 哔哩哔哩 干杯~",
"20G本质是一套全新的游戏规则",
"20连PC来一个?",
"2+2=Miya",
@@ -70,13 +77,15 @@ if setting.lang==1 or setting.lang==2 then
"11renPC!",
"<方块研究所>有一个Nspire-CX版本!",
"↑↑↓↓←→←→BABA",
"\"免费吃鸡方块\"",
'"免费吃鸡方块"',
"(RUR'U')R'FR2U'R'U'(RUR'F')",
}
elseif setting.lang==3 then
L={
"ZS JL T O I",
"You can set orientation for each block",
"You can open saving directory from stat. page",
"You are Grand Master",
"wwwwww",
"Who is diao",
"What about 26 TSDs?",
@@ -101,7 +110,9 @@ elseif setting.lang==3 then
"O spin triple!",
"Nothing will happen when some special day come",
"Not animation,real loading!",
"Naki so cute!",
"Miya:Nya!",
"Miya so cute!",
"Minesweeper is fun!",
"Minecraft is fun!",
"LrL RlR LLr RRl RRR LLL FFF RfR RRf rFF",
@@ -121,7 +132,6 @@ elseif setting.lang==3 then
"DO NOT PRESS F10",
"Do not play game in class!",
"Disappearing doesn't mean useless",
"diaoyoumei so bully",
"diao so bully",
"COOL!!",
"CLASSIC SEXY RUSSIAN BLOCKS",
@@ -145,7 +155,10 @@ elseif setting.lang==3 then
"11renPC!",
"↑↑↓↓←→←→BABA",
"\"Free block game with royale mode\"",
"/osk/",
"/jezevec/",
"(RUR'U')R'FR2U'R'U'(RUR'F')",
":pog:",
}
elseif setting.lang==4 then
L={'!','@','#','$','%','^','&','*','(',')','-','=','_','+','[',']','{','}','\\','|',';',':','\'','"',',','<','.','>','/','?'}

View File

@@ -309,7 +309,7 @@ local function Pupdate_alive(P,dt)
if P.keyPressing[2]then
if arr>0 then
if mov==das+arr or mov==das then
if P:ifoverlap(P.cur.bk,P.curX+1,P.curY)then
if not P.cur or P:ifoverlap(P.cur.bk,P.curX+1,P.curY)then
mov=das+arr-1
else
P.act.moveRight(P,true)
@@ -334,7 +334,7 @@ local function Pupdate_alive(P,dt)
if P.keyPressing[1]then
if arr>0 then
if mov==das+arr or mov==das then
if P:ifoverlap(P.cur.bk,P.curX-1,P.curY)then
if not P.cur or P:ifoverlap(P.cur.bk,P.curX-1,P.curY)then
mov=das+arr-1
else
P.act.moveLeft(P,true)
@@ -728,7 +728,7 @@ local function Pdraw_norm(P)
if P.gameEnv.bagLine then
local L=P.gameEnv.bagLen
local C=-P.pieceCount%L--phase
gc.setColor(.5,.5,.5)
gc.setColor(.8,.5,.5)
for i=C,N-1,L do
local y=72*i+36
gc.line(321+P.fieldOff.x,y,441,y)
@@ -1018,15 +1018,14 @@ local function getNewStatTable()
piece=0,row=0,dig=0,
atk=0,digatk=0,
send=0,recv=0,pend=0,off=0,
clear={},clear_B={},clear_S={0,0,0,0,0},
spin={},spin_B={},spin_S={0,0,0,0,0},
clear={},clears={},spin={},spins={},
pc=0,hpc=0,b2b=0,b3b=0,
}
for i=1,25 do
T.clear[i]={0,0,0,0,0}
T.spin[i]={0,0,0,0,0}
T.clear_B[i]=0
T.spin_B[i]=0
T.clears[i]=0
T.spins[i]=0
end
return T
end
@@ -1811,12 +1810,10 @@ function player.drop(P)--Place piece
local n=P.cur.name
if dospin then
_=STAT.spin[n] _[cc+1]=_[cc+1]+1--spin[1~25][0~4]
_=STAT.spin_S _[cc+1]=_[cc+1]+1--spin[0~4]
_=STAT.spin_B _[n]=_[n]+1--spin[1~25]
_=STAT.spins _[cc+1]=_[cc+1]+1--spin[0~4]
elseif cc>0 then
_=STAT.clear[n] _[cc]=_[cc]+1--clear[1~25][1~5]
_=STAT.clear_S _[cc]=_[cc]+1--clear[1~5]
_=STAT.clear_B _[n]=_[n]+1--clear[1~25]
_=STAT.clears _[cc]=_[cc]+1--clear[1~5]
end
--Update stat

View File

@@ -1,3 +1,4 @@
local gc=love.graphics
local Tick={}
function Tick.finish(P)
P.endCounter=P.endCounter+1
@@ -69,4 +70,14 @@ function Tick.autoPause(data)
return true
end
end
function Tick.autoResize(data)
data[1]=data[1]+1
if data[1]==62 then
local w,h=gc.getWidth(),gc.getHeight()
if w<h then
love.resize(w,h)
end
return true
end
end
return Tick

View File

@@ -1,23 +1,22 @@
local S=[=[
"Patron"(time ordered,may not accurate):
[rmb100+]:
那没事了(T6300) 加油啊,钉钉动了的大哥哥(T3228)
弥佑瑶 Alan
幽灵3383 靏鸖龘龘
込余 saki
那没事了(T6300) 加油啊,钉钉动了的大哥哥(T3228)
弥佑瑶 Alan 幽灵3383
靏鸖龘龘 込余 saki
[rmb10+]:
八零哥 蕴空之灵 gggf127 dtg
ThTsOd Fireboos 金巧 10元
立斐 Deep_Sea 时雪 yyangdid
sfqr 心痕 Sasoric 夏小亚
仁参 乐↗乐↘ 喜欢c4w的ztcjoin 面包
蠢熏 潘一栗 Lied 星街书婉
祝西 829 e m*12 我永远爱白银诺艾尔(鹏
PCX kagura77 呆喂 GlowingEmbers
轩辕辚 HimuroAki TCV100 tech有养成系统了@7065
HAGE KANOBU 闪电和拐棍 葡萄味的曼妥思 世界沃德
蓝绿 天生的魔法师 琳雨空 T8779.易缄 吃水榴莲
八零哥 蕴空之灵 gggf127 dtg
ThTsOd Fireboos 金巧 10元
立斐 Deep_Sea 时雪 yyangdid
sfqr 心痕 Sasoric 夏小亚 仁参
乐↗乐↘ 喜欢c4w的ztcjoin 面包 蠢熏
潘一栗 Lied 星街书婉 祝西 829
e m*12 我永远爱白银诺艾尔(鹏 PCX
kagura77 呆喂 GlowingEmbers 轩辕辚
HimuroAki TCV100 tech有养成系统了@7065
HAGE KANOBU 闪电和拐棍 葡萄味的曼妥思
世界沃德 蓝绿 天生的魔法师 琳雨空
T8779.易缄 吃水榴莲 诗情画意 星姐阿夸双推Man暗炎
Thanks!!!
Future outlook:
@@ -72,6 +71,12 @@ Future outlook:
network game
new AI: task-Z
0.9.1: Bug fixed
code:
render background to canvas first, not redering each frame
fixed:
error when moving [nothing] when arr>0
error when complete master-advanced
0.9.0: Custom Sequence Update
new:
custom sequence
@@ -88,14 +93,17 @@ Future outlook:
easier to get S in infinite mode, c4w, PC
harder to unlock sprint-400/1000
harder to get high rank of sprint-1000
harder drought-lunatic
code:
file sorted
task system rewrited, now perfect (maybe)
remove scissors/blendMode setting in drawing players
fixed:
screen orientation sometimes error after wake up the phone
hard move won't deactive "spin"
do not clear dead enemies' field
show ghost's center when ghost is off
error when get a PC in drought-lunatic
0.8.24: Bug Fixed
new: