shell练习之绘图工具

用这个脚本再加一些自己的东西,可以制作出小游戏或者是某些需要键盘控制的脚本。

先上图

wasd来上下左右移动,空格来变换绘画或者是清除模式,p退出脚本

 

1.可以把移动路径保存到数组里,下次循环调用可以把绘制过得图再显示出来

2.可以把空格改为发射子弹什么的

 

以下是代码,欢迎交流学习

#!/bin/bash
#qq 1969679546
#brief 移动小球
#date 2017.10.1
#y为行,x为列
#linux中2列的像素等于1行的像素


qiu_x=15 #小球的竖
qiu_y=30 #小球的横
hua=0

p_exit() {
echo -e "\033[?25h"    #显示光标
stty echo    #显示输出内容
exit
}

trap "p_exit;" INT TERM    #当按ctl+c强制退出则执行p_exit函数内容


qiu_clear() {
if [ $hua -eq 1 ];then
    echo -e "\033["40"m\033[${qiu_x};${qiu_y}H       \033[0m"
fi
}

shang() { #向上移动先把原来坐标小点抹去,把x轴-1
    qiu_clear
    let qiu_x-=1
    echo -e "\033["41"m\033[${qiu_x};${qiu_y}H  \033[0m"
}

xia() {
    qiu_clear
    let qiu_x+=1
    echo -e "\033["41"m\033[${qiu_x};${qiu_y}H  \033[0m"
}

zuo() {
    qiu_clear
    let qiu_y-=2 #像素问题
    echo -e "\033["41"m\033[${qiu_x};${qiu_y}H  \033[0m"
}

you() {
    qiu_clear
    let qiu_y+=2
    echo -e "\033["41"m\033[${qiu_x};${qiu_y}H  \033[0m"
}



#脚本主体
clear

echo -e "\033[?25l" #隐藏光标
stty -echo #隐藏输入

echo -e "\033["37"m\033[1;1H wasd移动,按空格切换绘画模式,p退出\033[0m"

echo -e "\033["41"m\033[${qiu_x};${qiu_y}H  \033[0m" #先显示一遍小点

while [ 1 ] #支持大小写操作
do
    read -s -n 1 option
    if [[ $option == "w" || $option == "W" ]];then
        shang
    elif [[ $option == "s" ||  $option == "S" ]];then
        xia
    elif [[ $option == "a" ||  $option == "A" ]];then
        zuo
    elif [[ $option == "d" ||  $option == "D" ]];then
        you
    elif [[ "[$option]" == "[]" ]];then #按空格绘制
        if [ $hua -eq 1 ];then
            hua=0
        else
            hua=1
        fi
    elif [[ $option == "p" ||  $option == "P" ]];then
        p_exit
    fi
done

 

转载于:https://www.cnblogs.com/zjswdbk/p/7614106.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值