亲宝软件园·资讯

展开

易语言消除游戏 易语言使用动画框做消除游戏的代码

易语言源码教程 人气:0

全局变量表

.版本 2
.全局变量 得分总和, 整数型
.全局变量 最高得分, 整数型
.全局变量 关卡, 整数型

利用动画框做的一个消除游戏

.版本 2
.支持库 iext2
.支持库 iext
.程序集 窗口程序集1
.程序集变量 标识1, 整数型, , "100"
.程序集变量 角度, 整数型
.程序集变量 是否开始, 逻辑型
.子程序 初始化
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 C, 整数型
.局部变量 d, 整数型
置随机数种子 ()
d = 1
.计次循环首 (10, a)
  .计次循环首 (10, b)
    C = 取随机数 (1, 5)
    标识1 [d] = 动画框1.创建物体 (方块1, (b - 1) × 40, (a - 1) × 40, , )
    动画框1.置类型 (标识1 [d], d)
    动画框1.置图片 (标识1 [d], 取图片组图片 (#图片组1, C - 1, ), )
    动画框1.置附加文本 (标识1 [d], 到文本 (C - 1))
    动画框1.置角度 (标识1 [d], 180)
    动画框1.自动前进 (标识1 [d], 5, 1, , , , , , , )
    d = d + 1
  .计次循环尾 ()
.计次循环尾 ()
.如果 (关卡 = 1)
  当前关卡.标题 = “第” + 到文本 (关卡) + “关” + “目标:” + “1000”
.否则
  .如果 (关卡 = 2)
    当前关卡.标题 = “第” + 到文本 (关卡) + “关” + “目标:” + “3000”
  .否则
    .如果 (关卡 ≥ 3 且 关卡 < 10)
      当前关卡.标题 = “第” + 到文本 (关卡) + “关” + “目标:” + 到文本 ((关卡 - 1) × 3000)
    .否则
      当前关卡.标题 = “第” + 到文本 (关卡) + “关” + “目标:” + 到文本 ((关卡 - 1) × 4000)
    .如果结束
  .如果结束
.如果结束
.子程序 __启动窗口_创建完毕
关卡 = 1
初始化 ()
.如果真 (寻找文件 (取运行目录 () + “\win.ini”, ) = “”)
  写配置项 (取运行目录 () + “\win.ini”, “userdata”, “最高得分”, 到文本 (最高得分))
.如果真结束
最高得分 = 到整数 (读配置项 (取运行目录 () + “\win.ini”, “userdata”, “最高得分”, ))
最高得分1.标题 = “最高得分:” + 到文本 (最高得分)
.子程序 _动画框1_碰撞到边界, 逻辑型
.参数 物体标识值, 整数型
.参数 碰撞前横坐标, 整数型
.参数 碰撞前纵坐标, 整数型
.参数 边界类型, 整数型
.如果 (边界类型 = 8 且 边界类型 = 1)
  动画框1.置物体位置 (物体标识值, 碰撞前横坐标, 碰撞前纵坐标, 真)
  动画框1.停止自动前进 (物体标识值)
.否则
  .如果 (边界类型 = 8 且 动画框1.取角度 (物体标识值) = 180)
    动画框1.置物体位置 (物体标识值, 碰撞前横坐标, 碰撞前纵坐标, 真)
    动画框1.停止自动前进 (物体标识值)
  .否则
  .如果结束
.如果结束
.子程序 _动画框1_碰撞到物体
.参数 碰撞物体标识值, 整数型
.参数 碰撞前横坐标, 整数型
.参数 碰撞前纵坐标, 整数型
.参数 被碰撞物体标识值, 整数型
动画框1.置物体位置 (碰撞物体标识值, 碰撞前横坐标, 碰撞前纵坐标, 真)
.子程序 _动画框1_双击物体
.参数 物体标识值, 整数型
.局部变量 连定, 整数型, , "5"
.局部变量 计数, 整数型
.局部变量 计次, 整数型
.局部变量 计次1, 整数型
.局部变量 计次2, 整数型
.局部变量 计次3, 整数型
.局部变量 计次4, 整数型
.局部变量 A, 整数型
.局部变量 B, 整数型
.局部变量 有无, 逻辑型
.局部变量 确定相连, 整数型, , "100"
.局部变量 横坐标, 整数型
.局部变量 有没, 逻辑型
.局部变量 定位1, 整数型
.局部变量 剩余, 整数型
计数 = 1
.如果真 (物体标识值 ≤ 0)
  返回 ()
.如果真结束
连定 [1] = 物体标识值
确定相连 [计数] = 连定 [1]
连定 [2] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) - 40) ' 上
.如果真 (连定 [2] ≠ -1)
  .如果真 (动画框1.取附加文本 (连定 [2]) = 动画框1.取附加文本 (连定 [1]))
    计数 = 计数 + 1
    确定相连 [计数] = 连定 [2]
  .如果真结束
.如果真结束
连定 [3] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) + 40) ' 下
.如果真 (连定 [3] ≠ -1)
  .如果真 (动画框1.取附加文本 (连定 [3]) = 动画框1.取附加文本 (连定 [1]))
    计数 = 计数 + 1
    确定相连 [计数] = 连定 [3]
  .如果真结束
.如果真结束
连定 [4] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) - 40, 动画框1.取物体顶边 (连定 [1])) ' 左
.如果真 (连定 [4] ≠ -1)
  .如果真 (动画框1.取附加文本 (连定 [4]) = 动画框1.取附加文本 (连定 [1]))
    计数 = 计数 + 1
    确定相连 [计数] = 连定 [4]
  .如果真结束
.如果真结束
连定 [5] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) + 40, 动画框1.取物体顶边 (连定 [1])) ' 右
.如果真 (连定 [5] ≠ -1)
  .如果真 (动画框1.取附加文本 (连定 [5]) = 动画框1.取附加文本 (连定 [1]))
    计数 = 计数 + 1
    确定相连 [计数] = 连定 [5]
  .如果真结束
.如果真结束
.如果真 (动画框1.取附加文本 (连定 [2]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [3]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [4]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [5]) ≠ 动画框1.取附加文本 (连定 [1]))
  返回 ()
.如果真结束
.计次循环首 (计数 + 20, 计次)
  .如果真 (确定相连 [计次 + 1] = 0 或 计次 + 1 > 计数)
    跳出循环 ()
  .如果真结束
  连定 [1] = 确定相连 [计次 + 1]
  .如果真 (有无 = 真)
    有无 = 假
  .如果真结束
  连定 [2] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) - 40) ' 上
  .如果真 (连定 [2] ≠ -1)
    .如果真 (动画框1.取附加文本 (连定 [2]) = 动画框1.取附加文本 (连定 [1]))
      .计次循环首 (计数, A)
        .如果真 (连定 [2] = 确定相连 [A])
          有无 = 真
          跳出循环 ()
        .如果真结束
      .计次循环尾 ()
      .如果真 (有无 = 假)
        计数 = 计数 + 1
        确定相连 [计数] = 连定 [2]
      .如果真结束
      有无 = 假
    .如果真结束
  .如果真结束
  连定 [3] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) + 40) ' 下
  .如果真 (连定 [3] ≠ -1)
    .如果真 (动画框1.取附加文本 (连定 [3]) = 动画框1.取附加文本 (连定 [1]))
      .计次循环首 (计数, A)
        .如果真 (连定 [3] = 确定相连 [A])
          有无 = 真
          跳出循环 ()
        .如果真结束
      .计次循环尾 ()
      .如果真 (有无 = 假)
        计数 = 计数 + 1
        确定相连 [计数] = 连定 [3]
      .如果真结束
      有无 = 假
    .如果真结束
  .如果真结束
  连定 [4] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) - 40, 动画框1.取物体顶边 (连定 [1])) ' 左
  .如果真 (连定 [4] ≠ -1)
    .如果真 (动画框1.取附加文本 (连定 [4]) = 动画框1.取附加文本 (连定 [1]))
      .计次循环首 (计数, A)
        .如果真 (连定 [4] = 确定相连 [A])
          有无 = 真
          跳出循环 ()
        .如果真结束
      .计次循环尾 ()
      .如果真 (有无 = 假)
        计数 = 计数 + 1
        确定相连 [计数] = 连定 [4]
      .如果真结束
      有无 = 假
    .如果真结束
  .如果真结束
  连定 [5] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) + 40, 动画框1.取物体顶边 (连定 [1])) ' 右
  .如果真 (连定 [5] ≠ -1)
    .如果真 (动画框1.取附加文本 (连定 [5]) = 动画框1.取附加文本 (连定 [1]))
      .计次循环首 (计数, A)
        .如果真 (连定 [5] = 确定相连 [A])
          有无 = 真
          跳出循环 ()
        .如果真结束
      .计次循环尾 ()
      .如果真 (有无 = 假)
        计数 = 计数 + 1
        确定相连 [计数] = 连定 [5]
      .如果真结束
      有无 = 假
    .如果真结束
  .如果真结束
.计次循环尾 ()
.计次循环首 (计数, 计次)
  动画框1.销毁物体 (确定相连 [计次])
.计次循环尾 ()
.计次循环首 (9, 计次3)
  .计次循环首 (11, 计次)
    横坐标 = (计次 - 1) × 40
    .计次循环首 (100, 计次1)
      .如果真 (动画框1.是否在区域内 (标识1 [计次1], , , 横坐标, 0, 40, 500))
        有没 = 真
        跳出循环 ()
      .如果真结束
    .计次循环尾 ()
    .如果真 (有没 = 假)
      .计次循环首 (20 - 计次, 计次1)
        .计次循环首 (20 - 计次, 计次2)
          .如果真 (动画框1.定位物体 (横坐标 + 40 × 计次1, 动画框1.高度 - 40 × (计次2 - 1)) ≠ -1)
            定位1 = 动画框1.定位物体 (横坐标 + 40 × 计次1, 动画框1.高度 - 40 × (计次2 - 1))
            动画框1.置角度 (定位1, 270)
            动画框1.前进 (定位1, 40)
            动画框1.置角度 (定位1, 180)
          .如果真结束
        .计次循环尾 ()
      .计次循环尾 ()
    .如果真结束
    有没 = 假
  .计次循环尾 ()
.计次循环尾 ()
得分总和 = 得分总和 + 计数 × 计数 × 5
当前得分.标题 = 到文本 (得分总和)
.计次循环首 (100, 计次3)
  .如果真 (动画框1.是否已显示 (标识1 [计次3]))
    连定 [1] = 标识1 [计次3]
    连定 [2] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) - 40)
    连定 [3] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) + 40)
    连定 [4] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) - 40, 动画框1.取物体顶边 (连定 [1]))
    连定 [5] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) + 40, 动画框1.取物体顶边 (连定 [1]))
    .如果真 (连定 [2] ≠ -1 且 动画框1.取附加文本 (连定 [2]) = 动画框1.取附加文本 (连定 [1]))
      有没 = 假
      返回 ()
    .如果真结束
    .如果真 (连定 [3] ≠ -1 且 动画框1.取附加文本 (连定 [3]) = 动画框1.取附加文本 (连定 [1]))
      有没 = 假
      返回 ()
    .如果真结束
    .如果真 (连定 [4] ≠ -1 且 动画框1.取附加文本 (连定 [4]) = 动画框1.取附加文本 (连定 [1]))
      有没 = 假
      返回 ()
    .如果真结束
    .如果真 (连定 [5] ≠ -1 且 动画框1.取附加文本 (连定 [5]) = 动画框1.取附加文本 (连定 [1]))
      有没 = 假
      返回 ()
    .如果真结束
  .如果真结束
  .如果真 (计次3 = 100 且 有没 = 假)
    有没 = 真
  .如果真结束
.计次循环尾 ()
.如果真 (有没)
  剩余 = 动画框1.取物体数 ()
  .如果真 (剩余 < 10)
    得分总和 = 得分总和 + 2000 - 剩余 × 剩余 × 20
    当前得分.标题 = 到文本 (得分总和)
  .如果真结束
  .如果真 (得分总和 > 最高得分)
    最高得分 = 得分总和
    当前得分.标题 = 到文本 (得分总和)
    最高得分1.标题 = “最高得分:” + 到文本 (最高得分)
  .如果真结束
  .如果真 (关卡 = 1)
    .如果 (到整数 (当前得分.标题) ≥ 1000)
      信息框 (“闯关成功!”, 0, )
      关卡 = 关卡 + 1
      当前得分.标题 = 到文本 (得分总和)
      动画框1.销毁所有物体 ()
      初始化 ()
      返回 ()
    .否则
      信息框 (“闯关失败!”, 0, )
      关卡 = 1
      当前得分.标题 = “0”
      动画框1.销毁所有物体 ()
      初始化 ()
      返回 ()
    .如果结束
  .如果真结束
  .如果真 (关卡 = 2)
    .如果 (到整数 (当前得分.标题) ≥ 3000)
      信息框 (“闯关成功!”, 0, )
      关卡 = 关卡 + 1
      当前得分.标题 = 到文本 (得分总和)
      动画框1.销毁所有物体 ()
      初始化 ()
      返回 ()
    .否则
      信息框 (“闯关失败!”, 0, )
      关卡 = 1
      当前得分.标题 = “0”
      动画框1.销毁所有物体 ()
      初始化 ()
      返回 ()
    .如果结束
  .如果真结束
  .如果真 (关卡 ≥ 3 且 关卡 < 10)
    .如果 (到整数 (当前得分.标题) ≥ (关卡 - 1) × 3000)
      信息框 (“闯关成功!”, 0, )
      关卡 = 关卡 + 1
      当前得分.标题 = 到文本 (得分总和)
      动画框1.销毁所有物体 ()
      初始化 ()
      返回 ()
    .否则
      信息框 (“闯关失败!”, 0, )
      关卡 = 1
      当前得分.标题 = “0”
      动画框1.销毁所有物体 ()
      初始化 ()
      返回 ()
    .如果结束
  .如果真结束
  .如果真 (关卡 ≥ 10)
    .如果 (到整数 (当前得分.标题) ≥ (关卡 - 1) × 4000)
      信息框 (“闯关成功!”, 0, )
      关卡 = 关卡 + 1
      当前得分.标题 = 到文本 (得分总和)
      动画框1.销毁所有物体 ()
      初始化 ()
      返回 ()
    .否则
      信息框 (“闯关失败!”, 0, )
      关卡 = 1
      当前得分.标题 = “0”
      动画框1.销毁所有物体 ()
      初始化 ()
      返回 ()
    .如果结束
  .如果真结束
  动画框1.销毁所有物体 ()
.如果真结束
.子程序 _重开按钮_被单击
动画框1.销毁所有物体 ()
得分总和 = 0
初始化 ()
.子程序 _动画框1_物体左键被放开
.参数 物体标识值, 整数型
.参数 已被按下物体, 整数型
.局部变量 连定, 整数型, , "5"
.局部变量 计数, 整数型
.局部变量 计次, 整数型
.局部变量 A, 整数型
.局部变量 有无, 逻辑型
.局部变量 确定相连, 整数型, , "100"
.局部变量 变暗计次, 整数型
.如果真 (物体标识值 + 已被按下物体 > 0 且 物体标识值 = 已被按下物体)
  计数 = 1
  连定 [1] = 物体标识值
  确定相连 [计数] = 连定 [1]
  连定 [2] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) - 40) ' 上
  .如果真 (连定 [2] ≠ -1)
    .如果真 (动画框1.取附加文本 (连定 [2]) = 动画框1.取附加文本 (连定 [1]))
      计数 = 计数 + 1
      确定相连 [计数] = 连定 [2]
    .如果真结束
  .如果真结束
  连定 [3] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) + 40) ' 下
  .如果真 (连定 [3] ≠ -1)
    .如果真 (动画框1.取附加文本 (连定 [3]) = 动画框1.取附加文本 (连定 [1]))
      计数 = 计数 + 1
      确定相连 [计数] = 连定 [3]
    .如果真结束
  .如果真结束
  连定 [4] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) - 40, 动画框1.取物体顶边 (连定 [1])) ' 左
  .如果真 (连定 [4] ≠ -1)
    .如果真 (动画框1.取附加文本 (连定 [4]) = 动画框1.取附加文本 (连定 [1]))
      计数 = 计数 + 1
      确定相连 [计数] = 连定 [4]
    .如果真结束
  .如果真结束
  连定 [5] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) + 40, 动画框1.取物体顶边 (连定 [1])) ' 右
  .如果真 (连定 [5] ≠ -1)
    .如果真 (动画框1.取附加文本 (连定 [5]) = 动画框1.取附加文本 (连定 [1]))
      计数 = 计数 + 1
      确定相连 [计数] = 连定 [5]
    .如果真结束
  .如果真结束
  .如果真 (动画框1.取附加文本 (连定 [2]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [3]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [4]) ≠ 动画框1.取附加文本 (连定 [1]) 且 动画框1.取附加文本 (连定 [5]) ≠ 动画框1.取附加文本 (连定 [1]))
    返回 ()
  .如果真结束
  .计次循环首 (计数 + 20, 计次)
    .如果真 (确定相连 [计次 + 1] = 0 或 计次 + 1 > 计数)
      跳出循环 ()
    .如果真结束
    连定 [1] = 确定相连 [计次 + 1]
    .如果真 (有无 = 真)
      有无 = 假
    .如果真结束
    连定 [2] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) - 40) ' 上
    .如果真 (连定 [2] ≠ -1)
      .如果真 (动画框1.取附加文本 (连定 [2]) = 动画框1.取附加文本 (连定 [1]))
        .计次循环首 (计数, A)
          .如果真 (连定 [2] = 确定相连 [A])
            有无 = 真
            跳出循环 ()
          .如果真结束
        .计次循环尾 ()
        .如果真 (有无 = 假)
          计数 = 计数 + 1
          确定相连 [计数] = 连定 [2]
        .如果真结束
        有无 = 假
      .如果真结束
    .如果真结束
    连定 [3] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]), 动画框1.取物体顶边 (连定 [1]) + 40) ' 下
    .如果真 (连定 [3] ≠ -1)
      .如果真 (动画框1.取附加文本 (连定 [3]) = 动画框1.取附加文本 (连定 [1]))
        .计次循环首 (计数, A)
          .如果真 (连定 [3] = 确定相连 [A])
            有无 = 真
            跳出循环 ()
          .如果真结束
        .计次循环尾 ()
        .如果真 (有无 = 假)
          计数 = 计数 + 1
          确定相连 [计数] = 连定 [3]
        .如果真结束
        有无 = 假
      .如果真结束
    .如果真结束
    连定 [4] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) - 40, 动画框1.取物体顶边 (连定 [1])) ' 左
    .如果真 (连定 [4] ≠ -1)
      .如果真 (动画框1.取附加文本 (连定 [4]) = 动画框1.取附加文本 (连定 [1]))
        .计次循环首 (计数, A)
          .如果真 (连定 [4] = 确定相连 [A])
            有无 = 真
            跳出循环 ()
          .如果真结束
        .计次循环尾 ()
        .如果真 (有无 = 假)
          计数 = 计数 + 1
          确定相连 [计数] = 连定 [4]
        .如果真结束
        有无 = 假
      .如果真结束
    .如果真结束
    连定 [5] = 动画框1.定位物体 (动画框1.取物体左边 (连定 [1]) + 40, 动画框1.取物体顶边 (连定 [1])) ' 右
    .如果真 (连定 [5] ≠ -1)
      .如果真 (动画框1.取附加文本 (连定 [5]) = 动画框1.取附加文本 (连定 [1]))
        .计次循环首 (计数, A)
          .如果真 (连定 [5] = 确定相连 [A])
            有无 = 真
            跳出循环 ()
          .如果真结束
        .计次循环尾 ()
        .如果真 (有无 = 假)
          计数 = 计数 + 1
          确定相连 [计数] = 连定 [5]
        .如果真结束
        有无 = 假
      .如果真结束
    .如果真结束
  .计次循环尾 ()
.如果真结束
.计次循环首 (100, 变暗计次)
  动画框1.置亮度 (标识1 [变暗计次], 0)
.计次循环尾 ()
.计次循环首 (计数, 计次)
  动画框1.置亮度 (确定相连 [计次], 250)
.计次循环尾 ()
本次得分1.标题 = 到文本 (计数 × 计数 × 5)
.子程序 __启动窗口_将被销毁
写配置项 (取运行目录 () + “\win.ini”, “userdata”, “最高得分”, 到文本 (最高得分))

运行结果:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

加载全部内容

相关教程
猜你喜欢
用户评论