shell脚本编写的俄罗斯方块游戏代码

2019-09-23 09:40:36丽君

                        kill -$sig $pidDisplayer
                fi
        done
}

#退出前的恢复
function MyExitNoSub()
{
        local y

        #恢复终端属性
        stty $sTTY
        ((y = iTop + iTrayHeight + 4))

        #显示光标
        echo -e "33[?25h33[${y};0H"
        exit
}

 
function MyExit()
{
        #通知显示进程需要退出
        kill -$sigExit $pidDisplayer

        MyExitNoSub
}

 
#处理显示和游戏流程的主函数
function RunAsDisplayer()
{
        local sigThis
        InitDraw

        #挂载各种信号的处理函数
        trap "sig=$sigRotate;" $sigRotate
        trap "sig=$sigLeft;" $sigLeft
        trap "sig=$sigRight;" $sigRight
        trap "sig=$sigDown;" $sigDown
        trap "sig=$sigAllDown;" $sigAllDown
        trap "ShowExit;" $sigExit

        while :
        do
                #根据当前的速度级iLevel不同,设定相应的循环的次数
                for ((i = 0; i < 21 - iLevel; i++))
                do
                        sleep 0.02
                        sigThis=$sig
                        sig=0

                        #根据sig变量判断是否接受到相应的信号
                        if ((sigThis == sigRotate)); then BoxRotate;        #旋转