mesDisp加入eventSet

eventSet中的规则不在覆盖,而是全部同时生效
调整部分模式的信息显示
自定义游戏可以选择部分eventSet
整理代码
警告:可能部分模式有问题,需要测试
This commit is contained in:
MrZ626
2021-08-28 04:01:58 +08:00
parent 5963db479e
commit 7f7f7e752e
141 changed files with 628 additions and 767 deletions

View File

@@ -82,9 +82,10 @@
missionKill false 是否开启强制任务
noInitSZO false 是否禁止SZO块开局如果禁止开局序列会自动跳过最多连续五个SZO
task NULL 每帧会*继续执行*的函数(或函数列表,依次执行,返回true会把自身从队列里清除)(初始化时会执行一次,可以用来设置场地等),输入玩家对象,注意:使用协程技术
mesDisp NULL 需要在玩家侧边栏显示的信息(或函数列表,依次执行,可以显示在外面但是强烈不建议),输入玩家对象
dropPiece NULL 放一块后要执行的函数(或函数列表,依次执行),输入玩家对象
eventSet false 使用预设事件套件名称(字符串),如果指定,套件中的事件将会替换上面这几个事件(如果有)
task NULL 每帧会*继续执行*的函数(或函数列表,依次执行,返回true会把自身从队列里清除)(初始化时会执行一次,可以用来设置场地等),输入玩家对象,注意:使用协程技术
eventSet false 使用预设事件套件名称(字符串),和上面三个套件会叠加,使用时请小心,尽量不要同时指定太多组件
bg 'none' 背景,只能填写内置背景的名字
bgm 'race' 背景音乐名(或者列表随机,例如{'race','push'}),只能用内置音乐库的音乐名
@@ -94,11 +95,6 @@
模式初始化函数,一般创建一个玩家即可
无输入
无输出
mesDisp:
必选
模式显示信息,是一个绘图函数,坐标系原点是玩家对象最左上角
输入玩家对象
无输出
score:
可选(不填就没有分数保存和计算)
@@ -130,19 +126,12 @@ return{--返回一个table你也可以在之前定义一些常量或者函数
color=COLOR.green,--颜色
env={--模式环境变量
drop=60,lock=60,
eventSet='checkLine_40',
eventSet='checkLine_40',--这个预设eventSet包含了dropPiece和mesDisp就是40行需要的东西
bg='bg2',bgm='race',
},
load=function()--模式加载函数,这里只生成了一个玩家,常用的单人模式可以不写,默认使用这个函数
PLY.newPlayer(1)--1是玩家编号默认用户控制1号玩家
end,
mesDisp=function(P)--40行模式需要显示的信息
setFont(55)
local r=40-P.stat.row
if r<0 then r=0 end
mStr(r,63,265)--把计算出来的剩余行数r显示出来
PLY.draw.drawTargetLine(P,r)--使用自带的境界高度线绘制函数
end,
score=function(P)return{P.stat.time,P.stat.piece}end,--游戏结束时需要保存的本局关键信息
scoreDisp=function(D)return STRING.time(D[1]).." "..D[2].." Pieces"end,--把score返回的数据显示出来的方法
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,--按照时间排序,时间一样就看块数