管道
由1(宽)X4(长)单元像素组成一个基本单位,管道就是由这样的基本单位组成,因此管道要遵循长度4单位的规则(比如管道的宽度是5个像素点,那么这个基本单位长度就是20个像素点),管道转弯也不能在一个基本单位内转弯;
之所以需要1X4来组成基本单位,就是需要使用4个点来完成管道的滚动显示,详细见下表:其中0表示暗背景,X表示亮前景;
模式mode | 点 | 说明 |
---|---|---|
0 | 0000 | 无液体 |
1 | XX00-0XX0-00XX-X00X | 正向流动 |
2 | XX00-X00X-00XX-0XX0 | 反向流动 |
3 | XXXX | 满液体,静止 |
管道的路线可以由字符串来表示,命令参见下表:
命令 | 说明 |
---|---|
B | 按起点开始计算 |
Un | 向上n格 |
Rn | 向右n格 |
Dn | 向下n格 |
Ln | 向左n格 |
K | 当前方向空一格 |
En | 节点位置,并且记录,按当前方向前进一格 |
Sn | 从En的位置开始启动新起点位置(节点) |
在使用的时候,首先要确定原点,然后使用R2就可以在原点的基础上,向右走1X8单位,K命令可以空出一个单位(用于绘制阀门、开关等元件);对于管道分支,可以绘制到分支点,使用En记录该点坐标,绘制完主体管道后使用Sn跳到记录点,然后再绘制分支;
详细参见:设置管道路线
管道绘制语句只能绘制,并不能实现动态效果,要实现动态效果,需要专用控件,利用控件的定时器不停的按规则绘制,就形成了滚动的效果。