wm_xf 发表于 2018-5-30 19:37:49

【5.30】(易语言)测试眼力教程附exe

本帖最后由 wm_xf 于 2018-5-30 19:41 编辑

要的组件:动画框1   画板1   画板3都要一个工作夹:
.版本 2
.支持库 iext2
.支持库 spec

.程序集 窗口程序集_启动窗口
.程序集变量 矩形位置, 巨型数据
.程序集变量 点击次数, 整数型

.子程序 _按钮1_被单击

子程序1 (取随机数 (2, 10))

.子程序 子程序1
.参数 几个, 整数型
.局部变量 间隔, 双精度小数型
.局部变量 行循环, 整数型
.局部变量 列循环, 整数型
.局部变量 每块列大小, 双精度小数型
.局部变量 每块行大小, 双精度小数型
.局部变量 颜色值, 整数型
.局部变量 b, 整数型
.局部变量 c, 整数型
.局部变量 单独颜色值, 整数型

置随机数种子 ()
动画框1.重画 ()
动画框1.清除背景 (, , , )
间隔 = 1
每块列大小 = (动画框1.宽度 - 3) ÷ 几个
每块行大小 = (动画框1.高度 - 3) ÷ 几个
颜色值 = 取颜色值 (取随机数 (50, 120), 取随机数 (50, 100), 取随机数 (50, 140))
单独颜色值 = 取随机数 (1, 几个 × 几个)
点击次数 = 点击次数 + 1
.变量循环首 (1, 几个, 1, 行循环)
    .变量循环首 (1, 几个, 1, 列循环)
      c = c + 1
      .如果 (c = 单独颜色值)
            动画框1.刷子颜色 = 颜色值 + 100 - 点击次数
            矩形位置.左边 = (行循环 - 1) × 每块列大小 + 间隔
            矩形位置.顶边 = (列循环 - 1) × 每块行大小 + 间隔
            矩形位置.右边 = (行循环 - 1) × 每块列大小 + 每块列大小
            矩形位置.下边 = (列循环 - 1) × 每块行大小 + 每块行大小
      .否则
            动画框1.刷子颜色 = 颜色值

      .如果结束
      ' 调试输出 (行循环, 列循环, c, b, 几个, 颜色值)
      动画框1.画圆角矩形 ((行循环 - 1) × 每块列大小 + 间隔, (列循环 - 1) × 每块行大小 + 间隔, (行循环 - 1) × 每块列大小 + 每块列大小, (列循环 - 1) × 每块行大小 + 每块行大小, 1, 1)

      ' 动画框1.定位写出 ((行循环 - 1) × 每块列大小 + 间隔, (列循环 - 1) × 每块行大小 + 间隔, 到文本 (行循环) + “|” + 到文本 (列循环))
    .变量循环尾 ()
.变量循环尾 ()
' 调试输出 (矩形位置.左边, 矩形位置.顶边, 矩形位置.右边, 矩形位置.下边, 颜色值, 点击次数)


.子程序 _动画框1_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 格子数, 整数型

.如果真 (横向位置 > 矩形位置.左边 且 横向位置 < 矩形位置.右边)
    .如果真 (纵向位置 > 矩形位置.顶边 且 纵向位置 < 矩形位置.下边)
      ' 调试输出 (横向位置, 纵向位置)
      调试输出 (点击次数)
      .判断开始 (点击次数 ≤ 3)
            格子数 = 2
      .判断 (点击次数 > 3 且 点击次数 ≤ 7)
            格子数 = 3
      .判断 (点击次数 > 7 且 点击次数 ≤ 10)
            格子数 = 5
      .判断 (点击次数 > 10 且 点击次数 ≤ 14)
            格子数 = 7
      .判断 (点击次数 > 14 且 点击次数 ≤ 20)
            格子数 = 10
      .判断 (点击次数 > 20 且 点击次数 ≤ 30)
            格子数 = 14
      .判断 (点击次数 > 30 且 点击次数 ≤ 40)
            格子数 = 20
      .判断 (点击次数 > 40 且 点击次数 ≤ 50)
            格子数 = 25
      .判断 (点击次数 > 50 且 点击次数 ≤ 70)
            格子数 = 30
      .判断 (点击次数 > 70 且 点击次数 ≤ 90)
            格子数 = 35
      .判断 (点击次数 > 90 且 点击次数 ≤ 100)
            格子数 = 40
      .默认

      .判断结束
      子程序1 (格子数)
      画星级进度 (画板3, 0, 100, 点击次数, 9, , , , )

    .如果真结束

.如果真结束






.子程序 __启动窗口_创建完毕

子程序1 (2)
时钟1.时钟周期 = 1000
画星级进度 (画板3, 0, 100, 点击次数, 9, , , , )


.子程序 _时钟1_周期事件
.局部变量 a, 整数型, 静态

.如果 (a < 60)
    a = a + 1
.否则
    a = 0
    时钟1.时钟周期 = 0
.如果结束
画进度 (画板1, 60, 0, a, , , , 真, 到文本 (60 - a))

新建个程序集
.版本 2

.程序集 程序集1

.子程序 画星级进度
.参数 画板, 画板
.参数 最小位置, 双精度小数型
.参数 最大位置, 双精度小数型
.参数 当前位置, 双精度小数型
.参数 共几星, 整数型
.参数 刷子类型, 整数型, 可空, 参考画板属性里的刷子类型
.参数 进度条颜色, 整数型, 可空, 注意:如果填写为黑色(黑色的颜色值=0)在(#黑色+1 或 1+#黑色) 默认为0(保持在属性里修改的值)
.参数 画板背景色, 整数型, 可空, 注意:如果填写为黑色(黑色的颜色值=0)在(#黑色+1 或 1+#黑色) 默认为0(保持在属性里修改的值)
.参数 显示文本, 逻辑型, 可空, 默认为“假”不显示 为“真”时在进度条上显示文本
.参数 自定义文本, 文本型, 可空, 默认为“2位小数的百分比”
.局部变量 横变量, 双精度小数型
.局部变量 纵变量, 双精度小数型
.局部变量 记录最大位置, 整数型, 静态
.局部变量 i, 整数型
.局部变量 每星位置, 双精度小数型
.局部变量 每星数, 双精度小数型

画板.清除 (, , , )
画板.自动重画 = 真
.如果 (进度条颜色 = 0)
    画板.刷子颜色 = 画板.刷子颜色
.否则
    画板.刷子颜色 = 进度条颜色
.如果结束
.如果 (画板背景色 = 0)
    画板.画板背景色 = 画板.画板背景色
.否则
    画板.画板背景色 = 画板背景色
.如果结束
每星位置 = 画板.宽度 ÷ 共几星
横变量 = 到整数 (当前位置 - 最小位置) ÷ 到整数 (最大位置 - 最小位置) × 画板.宽度
画板.填充矩形 (画板.画笔粗细, 画板.画笔粗细, 到数值 (横变量), 画板.高度 - 画板.字体.字体大小 × 2 - 2)
.计次循环首 (共几星, i)
    画板.画直线 (到整数 (每星位置 × i - 每星位置 - 1), 0, 到整数 (每星位置 × i - 每星位置 - 1), 画板.高度 - 画板.字体.字体大小 × 2 - 2)
    每星数 = 最大位置 ÷ 共几星
    画板.定位写出 (每星位置 × i - 每星位置 - 1 + 到数值 (每星位置 ÷ 2 - 画板.字体.字体大小), 画板.高度 - 画板.字体.字体大小 × 2 + 2, 到文本 (i) + “★”)
.计次循环尾 ()
画板.画直线 (0, 画板.高度 - 画板.字体.字体大小 × 2 - 2, 画板.宽度, 画板.高度 - 画板.字体.字体大小 × 2 - 2)
.计次循环首 (共几星, i)
    .如果 (当前位置 ≤ 每星数 × i)
      .如果 (i + 1 > 共几星)
            ' 标签5.标题 = 到文本 (到整数 (当前位置)) + “/” + 到文本 (到整数 (每星数) × i) + “距满星还差:” + 到文本 (到整数 (每星数) × i - 当前位置)
      .否则
            ' 标签5.标题 = 到文本 (到整数 (当前位置)) + “/” + 到文本 (到整数 (每星数) × i) + “距” + 到文本 (i + 1) + “星还差:” + 到文本 (到整数 (每星数) × i - 当前位置)

      .如果结束
      ' 标签6.标题 = “当前:” + 到文本 (i) + #星星
      跳出循环 ()
    .否则
      ' 标签5.标题 = “满星”
    .如果结束

.计次循环尾 ()
.如果真 (显示文本 = 真)
    .如果 (自定义文本 = “”)
      画板.定位写出 (到数值 (画板.宽度 ÷ 2 - 画板.字体.字体大小 ÷ 2), 到数值 (画板.高度 - 画板.字体.字体大小) ÷ 2 - 2, 到文本 (四舍五入 (到数值 (当前位置 - 最小位置) ÷ 到数值 (最大位置 - 最小位置) × 100, 2)) + “%”)
    .否则
      画板.定位写出 (到数值 (画板.宽度 - 画板.字体.字体大小) ÷ 2 - 取文本长度 (自定义文本) × 2, 到数值 (画板.高度 - 画板.字体.字体大小) ÷ 2 - 2, 自定义文本)
    .如果结束

.如果真结束
' __________________________________________________________________________________________________
' 如果真 (记录最大位置 < 最大位置)
' 记录最大位置 = 最大位置



.子程序 画进度
.参数 画板, 画板
.参数 最小位置, 双精度小数型
.参数 最大位置, 双精度小数型
.参数 当前位置, 双精度小数型
.参数 刷子类型, 整数型, 可空, 参考画板属性里的刷子类型
.参数 进度条颜色, 整数型, 可空, 注意:如果填写为黑色(黑色的颜色值=0)在(#黑色+1 或 1+#黑色) 默认为0(保持在属性里修改的值)
.参数 画板背景色, 整数型, 可空, 注意:如果填写为黑色(黑色的颜色值=0)在(#黑色+1 或 1+#黑色) 默认为0(保持在属性里修改的值)
.参数 显示文本, 逻辑型, 可空, 默认为“假”不显示 为“真”时在进度条上显示文本
.参数 自定义文本, 文本型, 可空, 默认为“2位小数的百分比”
.局部变量 横变量, 双精度小数型
.局部变量 纵变量, 双精度小数型
.局部变量 记录最大位置, 整数型, 静态

画板.清除 (, , , )
画板.自动重画 = 真
.如果 (进度条颜色 = 0)
    画板.刷子颜色 = 画板.刷子颜色
.否则
    画板.刷子颜色 = 进度条颜色
.如果结束
.如果 (画板背景色 = 0)
    画板.画板背景色 = 画板.画板背景色
.否则
    画板.画板背景色 = 画板背景色
.如果结束
横变量 = 到数值 (当前位置 - 最小位置) ÷ 到数值 (最大位置 - 最小位置) × 画板.宽度
' 画板.填充矩形 (画板.画笔粗细 + 1, 画板.画笔粗细 + 1, 横变量 - 3, 画板.高度 - 3)
画板.填充矩形 (画板.画笔粗细, 画板.画笔粗细, 到数值 (横变量), 画板.高度)
' 标签1.标题 = 到文本 (取绝对值 (当前位置 - 最小位置)) + “/” + 到文本 (取绝对值 (最大位置 - 最小位置))
.如果真 (显示文本 = 真)
    .如果 (自定义文本 = “”)
      画板.定位写出 (到数值 (画板.宽度 ÷ 2 - 画板.字体.字体大小 ÷ 2), 到数值 (画板.高度 - 画板.字体.字体大小) ÷ 2 - 2, 到文本 (四舍五入 (到数值 (当前位置 - 最小位置) ÷ 到数值 (最大位置 - 最小位置) × 100, 2)) + “%”)
    .否则
      画板.定位写出 (到数值 (画板.宽度 - 画板.字体.字体大小) ÷ 2 - 取文本长度 (自定义文本) × 2, 到数值 (画板.高度 - 画板.字体.字体大小) ÷ 2 - 2, 自定义文本)
    .如果结束

.如果真结束
' __________________________________________________________________________________________________
' 如果真 (记录最大位置 < 最大位置)
' 记录最大位置 = 最大位置



建一个自定义数据类型表
.版本 2

.数据类型 巨型数据
    .成员 左边, 整数型
    .成员 顶边, 整数型
    .成员 右边, 整数型
    .成员 下边, 整数型


wm_xf 发表于 2018-5-30 19:38:56

累死我了{:4_102:}{:4_102:}

wm_xf 发表于 2018-5-30 19:42:26

眼睛都看花了

北夜笙歌 发表于 2018-5-30 20:00:42

可以教我易语言么

wm_xf 发表于 2018-5-30 20:05:42

怎么不可以
页: [1]
查看完整版本: 【5.30】(易语言)测试眼力教程附exe