Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
918d17ad9a |
9
conf.lua
9
conf.lua
@@ -1,5 +1,5 @@
|
||||
math.randomseed(os.time())
|
||||
gameVersion="Alpha V0.7.34"
|
||||
gameVersion="Alpha V0.7.35"
|
||||
function love.conf(t)
|
||||
t.identity="Techmino"--Save directory name
|
||||
t.version="11.1"
|
||||
@@ -10,12 +10,7 @@ function love.conf(t)
|
||||
t.audio.mixwithsystem=true--Switch on to keep sysBGM
|
||||
|
||||
local W=t.window
|
||||
if math.random()>.26 then
|
||||
W.title="Techmino "..gameVersion
|
||||
else
|
||||
math.randomseed(tonumber(os.date("%Y%j")))
|
||||
W.title="Your lucky number today:"..math.random(100,626)
|
||||
end
|
||||
W.title="Techmino "..gameVersion
|
||||
W.icon="/image/icon.png"
|
||||
W.width,W.height=1280,720
|
||||
W.minwidth,W.minheight=640,360
|
||||
|
||||
@@ -141,10 +141,11 @@ return{
|
||||
"有疑问?先看设置有没有你想要的",
|
||||
"有建议的话可以把信息反馈给作者~",
|
||||
"不要按F8",
|
||||
"秘密代码:626",
|
||||
"秘密数字:626",
|
||||
"CLASSIC SEXY RUSSIAN BLOCKS",
|
||||
"戴上耳机获得最佳体验",
|
||||
"戴上耳机以获得最佳体验",
|
||||
"LrL,RlR LLr,RRl RRR/LLL F!!",--ZSLJTTI
|
||||
"(第一次才准)今日幸运数字:"..math.random(100,626),
|
||||
},
|
||||
stat={
|
||||
"游戏运行次数:",
|
||||
@@ -298,7 +299,7 @@ return{
|
||||
bgm="音乐",
|
||||
vib="震动",
|
||||
voc="语音",
|
||||
stereo="双声道",
|
||||
stereo="立体声",
|
||||
back=BK,
|
||||
},
|
||||
setting_key={
|
||||
|
||||
@@ -141,10 +141,11 @@ return{
|
||||
"有疑问?先看设置有没有你想要的",
|
||||
"有建议的话可以把信息反馈给作者~",
|
||||
"不要按F8",
|
||||
"秘密代码:626",
|
||||
"秘密数字:626",
|
||||
"CLASSIC SEXY RUSSIAN BLOCKS",
|
||||
"戴上耳机获得最佳体验",
|
||||
"戴上耳机以获得最佳体验",
|
||||
"LrL,RlR LLr,RRl RRR/LLL F!!",--ZSLJTTI
|
||||
"(第一次才准)今日幸运数字:"..math.random(100,626),
|
||||
},
|
||||
stat={
|
||||
"游戏运行次数:",
|
||||
@@ -299,7 +300,7 @@ return{
|
||||
bgm="音乐",
|
||||
vib="震动",
|
||||
voc="语音",
|
||||
stereo="双声道",
|
||||
stereo="立体声",
|
||||
back=BK,
|
||||
},
|
||||
setting_key={
|
||||
|
||||
@@ -139,11 +139,12 @@ return{
|
||||
"Find out what's in the setting!",
|
||||
"Any suggestions to author!",
|
||||
"DO NOT PRESS F8",
|
||||
"Secret code:626",
|
||||
"Secret num:626",
|
||||
"Techmino=Technique+Tetromino",
|
||||
"CLASSIC SEXY RUSSIAN BLOCKS",
|
||||
"Headphones for better experience",
|
||||
"LrL,RlR LLr,RRl RRR/LLL F!!",--ZSLJTTI
|
||||
"(first effective)Your luck number today:"..math.random(100,626),
|
||||
},
|
||||
stat={
|
||||
"Games run:",
|
||||
|
||||
63
player.lua
63
player.lua
@@ -1649,6 +1649,33 @@ function player:drop()--Place piece
|
||||
dospin=dospin+2
|
||||
end--Immobile
|
||||
end
|
||||
|
||||
--极简检测(遮挡)
|
||||
local finesse
|
||||
if self.curY>18 then
|
||||
finesse=true--高处防误判直接最简
|
||||
else
|
||||
local y0=self.curY
|
||||
local x,c=self.curX,self.c
|
||||
|
||||
local B=self.cur.bk
|
||||
for x=1,c do
|
||||
local y
|
||||
for i=#B,1,-1 do
|
||||
if B[i][x]then y=i;goto L2 end
|
||||
end
|
||||
goto L1
|
||||
::L2::
|
||||
if y then
|
||||
x=self.curX+x-1
|
||||
for y=y0+y,#self.field do
|
||||
if solid(self,x,y)then finesse=true;goto L1 end--有遮挡视为最简
|
||||
end
|
||||
end
|
||||
end
|
||||
::L1::
|
||||
end
|
||||
|
||||
self:lock()
|
||||
local CHN=getFreeVoiceChannel()
|
||||
local cc,send,exblock=checkrow(self,self.curY,self.r),0,0--Currect clear&send&sendTime
|
||||
@@ -1674,27 +1701,8 @@ function player:drop()--Place piece
|
||||
dospin=false
|
||||
end
|
||||
|
||||
--极简检测
|
||||
if self.curY>18 then goto 通过测试 end--高处易误判
|
||||
do
|
||||
local y0=self.curY
|
||||
local x,c=self.curX,self.c
|
||||
local B=self.cur.bk
|
||||
for x=1,c do
|
||||
local y
|
||||
for i=#B,1,-1 do
|
||||
if B[i][x]then y=i;goto 继续 end
|
||||
end
|
||||
goto 操作判断法
|
||||
::继续::
|
||||
if y then
|
||||
x=self.curX+x-1
|
||||
for y=y0+y,#self.field do
|
||||
if solid(self,x,y)then goto 通过测试 end
|
||||
end
|
||||
end
|
||||
end--遮挡暂时都算最简
|
||||
::操作判断法::
|
||||
--极简检测(操作)
|
||||
if not finesse then
|
||||
if dospin then self.ctrlCount=self.ctrlCount-2 end--对无遮挡spin宽松两步
|
||||
local id=self.cur.id
|
||||
local dir=self.dir+1
|
||||
@@ -1705,15 +1713,14 @@ function player:drop()--Place piece
|
||||
end--SZI的逆态视为顺态
|
||||
local R,I=self.ctrlCount,finesseCtrlPar[id][dir][self.curX]--Real key/Ideal key
|
||||
local d=R-I
|
||||
if d<=0 then
|
||||
goto 通过测试
|
||||
if d>0 then
|
||||
if I==0 then I=1 end
|
||||
local rate=R/I
|
||||
if rate>2.5 then rate=2.5 end
|
||||
self:fineError(rate)
|
||||
--非最简
|
||||
end
|
||||
if I==0 then I=1 end
|
||||
local rate=R/I
|
||||
if rate>2.5 then rate=2.5 end
|
||||
self:fineError(rate)
|
||||
end
|
||||
::通过测试::
|
||||
|
||||
if cc>0 then
|
||||
self.combo=self.combo+1
|
||||
|
||||
@@ -132,8 +132,8 @@ local swap={
|
||||
gc.setColor(0,0,0,t)
|
||||
gc.rectangle("fill",0,0,1280,720)
|
||||
end},
|
||||
slowFade={120,40,function(t)
|
||||
local t=t>40 and 1.5-t/80 or t/40
|
||||
slowFade={180,90,function(t)
|
||||
local t=t>90 and 2-t/90 or t/90
|
||||
gc.setColor(0,0,0,t)
|
||||
gc.rectangle("fill",0,0,1280,720)
|
||||
end},
|
||||
|
||||
@@ -161,6 +161,7 @@ function SFX(s,v,pos)
|
||||
end
|
||||
end
|
||||
S:setVolume((v or 1)*setting.sfx*.1)
|
||||
print((v or 1)*setting.sfx*.1)
|
||||
S:play()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,7 +4,7 @@ Patron(rmb10+):
|
||||
[D*a]?
|
||||
|
||||
Future outlook:
|
||||
Normal Things:
|
||||
Normal:
|
||||
powerinfo switch
|
||||
splashing block
|
||||
ajustable next count
|
||||
@@ -18,13 +18,15 @@ Future outlook:
|
||||
game recording
|
||||
new AI:task-Z
|
||||
auto GUI in any screen size
|
||||
|
||||
Technical things:
|
||||
Hard:
|
||||
Encrypt source code(compile to byte code)
|
||||
infinite 1v1
|
||||
square mode
|
||||
more FXs & 3d features & animations
|
||||
|
||||
0.7.35:
|
||||
bug fixed
|
||||
0.7.34:
|
||||
shaking FX more natural
|
||||
0.7.33+:
|
||||
MORE POWERFUL 9-stack AI
|
||||
add stereo-setting slider
|
||||
|
||||
Reference in New Issue
Block a user